Reputation: 11
I have created a simple project of altering table in DB. I am using weblogic server 10.3 and Hibernate (hibernate-core-4.1.0.jar) for jdbc connection. I have created Datasource (oracle.jdbc.xa.client.OracleXADataSource
) in weblogic for connection pooling for the same. when i execute my program following error occoured --
<Forcibly releasing inactive/harvested connection "[weblogic.jdbc.wrapper.JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConnection-OBP_HOST_DS_XA-7306, oracle.jdbc.driver.LogicalConnection@23b35381]" back into the data source connection pool "OBP_HOST_DS_XA", currently reserved by: java.lang.Exception
at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:366)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:373)
at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:339)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:469)
at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:363)
at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:125)
at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:77)
at weblogic.jdbc.jta.DataSource.getXAConnectionFromPool(DataSource.java:1791)
at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1582)
at weblogic.jdbc.jta.DataSource.getConnectionInternal(DataSource.java:499)
at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:483)
at weblogic.jdbc.common.internal.RmiDataSource.getConnectionInternal(RmiDataSource.java:527)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:513)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:506)
at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:277)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:169)
at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.extractPhysicalConnection(ConnectionProxyHandler.java:82)
at org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler.continueInvocation(ConnectionProxyHandler.java:138)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at com.sun.proxy.$Proxy180.getMetaData(Unknown Source)
at com.splwg.base.support.context.ApplicationContext$3.execute(ApplicationContext.java:633)
at org.hibernate.jdbc.WorkExecutor.executeWork(WorkExecutor.java:54)
at org.hibernate.internal.SessionImpl$1.accept(SessionImpl.java:1850)
There is no error in same program when replacing Hibernate Jars 4.1 with 3.6 version. and also same program is working when UCP( Oracle Universal Connection) connection pool is used instead of DataSource. What is the configuration to be done for this to work with Hibernate 4.1 jars?
Upvotes: 1
Views: 8115
Reputation: 11
You have leaked a connection. Didn't close it. It became inactive, but not in the pool. After some time WLS noticed the fact that connection is in fact inactive, i.e. leaked, and forcefully closed it, returning it to the pool.
refer
Force release the connection in weblogic 10.3.4
GMREYES
Upvotes: 1