I get this exception in a database service type:
Caused by: java.sql.SQLException: embeddedCon.unlock failed
at org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS.getPooledConnection(DriverAdapterCPDS.java:168)
at org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS.getPooledConnection(DriverAdapterCPDS.java:132)
at org.apache.commons.dbcp.datasources.KeyedCPDSConnectionFactory.makeObject(KeyedCPDSConnectionFactory.java:124)
at org.apache.commons.pool.impl.GenericKeyedObjectPool.borrowObject(GenericKeyedObjectPool.java:747)
at org.apache.commons.dbcp.datasources.SharedPoolDataSource.getPooledConnectionAndInfo(SharedPoolDataSource.java:165)
... 15 more
The database service connects to a SQL server database (jTds driver). The service type is used by 3 processes that do not run at the same time. It sounds like a connection from the database connection pool is not released correctly. Has anyone ever seen this error and could it mean I'm doing something wrong? (the error only happens occasionally).
Thanks!
This has nothing to do with the pooling. The message embeddedCon.unlock failed is an internal message to indicate that a license check for the driver fails.
I am surprised that this part of the code is executed since the jTds driver is not a datadirect driver, which we bundle.
It raises the question though why you prefer jTds over our bundled Progress DataDirect drivers for MQ SQL Server?
Thomas
Thank you for your quick reply, Thomas.
I made a mistake when I mentioned jTds. We are using com.sonicsw.jdbc.sqlserver.SQLServerDriver. I would think that a license check would go wrong every time I try to connect, which is not the case. Still, I'm going check if there might be something wrong with the driver configuration.
com.sonicsw.jdbc.sqlserver.SQLServerDriver is the driver class to use for Sonic 7.6
com.progress.jdbc.sqlserver.SQLServerDriver is the driver class for 8.0.
Maybe this is where the problem lies.