You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by "Clute, Andrew" <An...@osn.state.oh.us> on 2004/02/12 18:38:34 UTC

ManagedConnections not being released

I have the latest from head. I am using Jboss 3.2.3, with CM-tx for my
EJB's. I have my connection pool set to a maximum of 30 connections, but
it fills up real quick. I am closing the PersistenceBroker, and I have
debuged, and I do see the _conn.close() being called on the Jboss
WrappedConnection, but I look and all 30 connections are used.


Thoughts? I apologize in advance if this is a stupid configuration
issue.

-Andrew

Here is my OJB repository datasource description:

<jdbc-connection-descriptor
	jcd-alias="devsql"
	default-connection="true"
   	platform="MsSQLServer"
   	jdbc-level="3.0"
   	jndi-datasource-name="java:MsSqlDevDS"
   	useAutoCommit="2"
   	>
   	<object-cache
class="org.apache.ojb.broker.cache.ObjectCacheDefaultImpl">
            <attribute attribute-name="timeout" attribute-value="900"/>
            <attribute attribute-name="autoSync"
attribute-value="true"/>
       </object-cache>
   		
   	<sequence-manager
 
className="org.apache.ojb.broker.util.sequence.SequenceManagerMSSQLGuidI
mpl" />

</jdbc-connection-descriptor> 

Here is my jBoss Datasource descriptor:

<datasources>
  <local-tx-datasource>
    <jndi-name>MsSqlDevDS</jndi-name>
 
<connection-url>jdbc:inetdae7:192.168.2.30:1433?<removed></connection-ur
l>
    <driver-class>com.inet.tds.TdsDriver</driver-class>
    <min-pool-size>5</min-pool-size>
    <max-pool-size>30</max-pool-size>
    <idle-timeout-minutes>1</idle-timeout-minutes>
    <check-valid-connection-sql>select 1</check-valid-connection-sql>
  </local-tx-datasource> 
</datasources>

And here is the error stack:

12:29:49,906 ERROR [org.jboss.web.localhost.Engine]
StandardWrapperValve[org.osn.webapp.jcore.doclib.docview_jsp]:
Servlet.service() for servlet org.osn.webapp.jcore.doclib.docview_jsp
threw exception
org.apache.ojb.broker.PersistenceBrokerException:
org.apache.ojb.broker.PersistenceBrokerException:
org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager
instance could not obtain a connection
	at
org.apache.ojb.broker.accesslayer.CollectionProxy.loadData(CollectionPro
xy.java:158)
	at
org.apache.ojb.broker.accesslayer.ListProxy.loadData(ListProxy.java:187)
	at
org.apache.ojb.broker.accesslayer.CollectionProxy.getData(CollectionProx
y.java:401)
	at
org.apache.ojb.broker.accesslayer.CollectionProxy.iterator(CollectionPro
xy.java:230)
	at
org.osn.bom.Document.getCurrentDocumentVersion(Document.java:274)
Caused by: org.apache.ojb.broker.PersistenceBrokerException:
org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager
instance could not obtain a connection
	at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Que
ryReferenceBroker.java:250)
	at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1012)
	at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
ery(DelegatingPersistenceBroker.java:312)
	at
org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
ery(DelegatingPersistenceBroker.java:312)
	at
org.apache.ojb.broker.accesslayer.CollectionProxy.loadData(CollectionPro
xy.java:148)
	... 51 more
Caused by: org.apache.ojb.broker.PersistenceBrokerException: Used
ConnectionManager instance could not obtain a connection
	at
org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(
StatementManager.java:680)
	at
org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(JdbcAccess
Impl.java:315)
	at
org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(RsQueryObje
ct.java:113)
	at
org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:211)
	at
org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIter
atorFactoryImpl.java:97)
	at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(
PersistenceBrokerImpl.java:1631)
	at
org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Pe
rsistenceBrokerImpl.java:1136)
	at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Que
ryReferenceBroker.java:143)
	at
org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Que
ryReferenceBroker.java:242)
	... 55 more
Caused by: org.apache.ojb.broker.accesslayer.LookupException:
SQLException thrown while trying to get Connection from Datasource
(java:MsSqlDevDS)
	at
org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConne
ctionFromDataSource(ConnectionFactoryAbstractImpl.java:200)
	at
org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupCo
nnection(ConnectionFactoryAbstractImpl.java:97)
	at
org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl.lookupCon
nection(ConnectionFactoryManagedImpl.java:18)
	at
org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Co
nnectionManagerImpl.java:144)
	at
org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(
StatementManager.java:676)
	... 63 more
Caused by: org.jboss.util.NestedSQLException: No ManagedConnections
available within configured blocking timeout ( 5000 [ms] ); - nested
throwable: (javax.resource.ResourceException: No ManagedConnections
available within configured blocking timeout ( 5000 [ms] ))
	at
org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperD
ataSource.java:106)
	at
org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConne
ctionFromDataSource(ConnectionFactoryAbstractImpl.java:189)
	... 67 more
Caused by: javax.resource.ResourceException: No ManagedConnections
available within configured blocking timeout ( 5000 [ms] )
	at
org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getCo
nnection(InternalManagedConnectionPool.java:250)
	at
org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool
.getConnection(JBossManagedConnectionPool.java:496)
	at
org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedCo
nnection(BaseConnectionManager2.java:425)
	at
org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConne
ction(TxConnectionManager.java:318)
	at
org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConn
ection(BaseConnectionManager2.java:477)
	at
org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionMa
nagerProxy.allocateConnection(BaseConnectionManager2.java:814)
	at
org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperD
ataSource.java:102)
	... 68 more



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org


Re: ManagedConnections not being released

Posted by Armin Waibel <ar...@apache.org>.
Hi,

Clute, Andrew wrote:

> I have the latest from head. I am using Jboss 3.2.3, with CM-tx for my
> EJB's. I have my connection pool set to a maximum of 30 connections, but
> it fills up real quick. I am closing the PersistenceBroker, and I have
> debuged, and I do see the _conn.close() being called on the Jboss
> WrappedConnection, but I look and all 30 connections are used.
> 
> 

hmm, I assume you are using proxy? This is problematic in a 3-tier 
environment, because how should the proxy be materialized on the client 
side? (by the way, try to set useAutoCommit="0")
But I don't know what's the reason for your exhausted con-pool, maybe a 
side-effect of the proxy use?

regards,
Armin

> Thoughts? I apologize in advance if this is a stupid configuration
> issue.
> 
> -Andrew
> 
> Here is my OJB repository datasource description:
> 
> <jdbc-connection-descriptor
> 	jcd-alias="devsql"
> 	default-connection="true"
>    	platform="MsSQLServer"
>    	jdbc-level="3.0"
>    	jndi-datasource-name="java:MsSqlDevDS"
>    	useAutoCommit="2"
>    	>
>    	<object-cache
> class="org.apache.ojb.broker.cache.ObjectCacheDefaultImpl">
>             <attribute attribute-name="timeout" attribute-value="900"/>
>             <attribute attribute-name="autoSync"
> attribute-value="true"/>
>        </object-cache>
>    		
>    	<sequence-manager
>  
> className="org.apache.ojb.broker.util.sequence.SequenceManagerMSSQLGuidI
> mpl" />
> 
> </jdbc-connection-descriptor> 
> 
> Here is my jBoss Datasource descriptor:
> 
> <datasources>
>   <local-tx-datasource>
>     <jndi-name>MsSqlDevDS</jndi-name>
>  
> <connection-url>jdbc:inetdae7:192.168.2.30:1433?<removed></connection-ur
> l>
>     <driver-class>com.inet.tds.TdsDriver</driver-class>
>     <min-pool-size>5</min-pool-size>
>     <max-pool-size>30</max-pool-size>
>     <idle-timeout-minutes>1</idle-timeout-minutes>
>     <check-valid-connection-sql>select 1</check-valid-connection-sql>
>   </local-tx-datasource> 
> </datasources>
> 
> And here is the error stack:
> 
> 12:29:49,906 ERROR [org.jboss.web.localhost.Engine]
> StandardWrapperValve[org.osn.webapp.jcore.doclib.docview_jsp]:
> Servlet.service() for servlet org.osn.webapp.jcore.doclib.docview_jsp
> threw exception
> org.apache.ojb.broker.PersistenceBrokerException:
> org.apache.ojb.broker.PersistenceBrokerException:
> org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager
> instance could not obtain a connection
> 	at
> org.apache.ojb.broker.accesslayer.CollectionProxy.loadData(CollectionPro
> xy.java:158)
> 	at
> org.apache.ojb.broker.accesslayer.ListProxy.loadData(ListProxy.java:187)
> 	at
> org.apache.ojb.broker.accesslayer.CollectionProxy.getData(CollectionProx
> y.java:401)
> 	at
> org.apache.ojb.broker.accesslayer.CollectionProxy.iterator(CollectionPro
> xy.java:230)
> 	at
> org.osn.bom.Document.getCurrentDocumentVersion(Document.java:274)
> Caused by: org.apache.ojb.broker.PersistenceBrokerException:
> org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager
> instance could not obtain a connection
> 	at
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Que
> ryReferenceBroker.java:250)
> 	at
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Pe
> rsistenceBrokerImpl.java:1012)
> 	at
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
> ery(DelegatingPersistenceBroker.java:312)
> 	at
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
> ery(DelegatingPersistenceBroker.java:312)
> 	at
> org.apache.ojb.broker.accesslayer.CollectionProxy.loadData(CollectionPro
> xy.java:148)
> 	... 51 more
> Caused by: org.apache.ojb.broker.PersistenceBrokerException: Used
> ConnectionManager instance could not obtain a connection
> 	at
> org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(
> StatementManager.java:680)
> 	at
> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(JdbcAccess
> Impl.java:315)
> 	at
> org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(RsQueryObje
> ct.java:113)
> 	at
> org.apache.ojb.broker.accesslayer.RsIterator.<init>(RsIterator.java:211)
> 	at
> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsIter
> atorFactoryImpl.java:97)
> 	at
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(
> PersistenceBrokerImpl.java:1631)
> 	at
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Pe
> rsistenceBrokerImpl.java:1136)
> 	at
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Que
> ryReferenceBroker.java:143)
> 	at
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Que
> ryReferenceBroker.java:242)
> 	... 55 more
> Caused by: org.apache.ojb.broker.accesslayer.LookupException:
> SQLException thrown while trying to get Connection from Datasource
> (java:MsSqlDevDS)
> 	at
> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConne
> ctionFromDataSource(ConnectionFactoryAbstractImpl.java:200)
> 	at
> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupCo
> nnection(ConnectionFactoryAbstractImpl.java:97)
> 	at
> org.apache.ojb.broker.accesslayer.ConnectionFactoryManagedImpl.lookupCon
> nection(ConnectionFactoryManagedImpl.java:18)
> 	at
> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Co
> nnectionManagerImpl.java:144)
> 	at
> org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(
> StatementManager.java:676)
> 	... 63 more
> Caused by: org.jboss.util.NestedSQLException: No ManagedConnections
> available within configured blocking timeout ( 5000 [ms] ); - nested
> throwable: (javax.resource.ResourceException: No ManagedConnections
> available within configured blocking timeout ( 5000 [ms] ))
> 	at
> org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperD
> ataSource.java:106)
> 	at
> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConne
> ctionFromDataSource(ConnectionFactoryAbstractImpl.java:189)
> 	... 67 more
> Caused by: javax.resource.ResourceException: No ManagedConnections
> available within configured blocking timeout ( 5000 [ms] )
> 	at
> org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getCo
> nnection(InternalManagedConnectionPool.java:250)
> 	at
> org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool
> .getConnection(JBossManagedConnectionPool.java:496)
> 	at
> org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedCo
> nnection(BaseConnectionManager2.java:425)
> 	at
> org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConne
> ction(TxConnectionManager.java:318)
> 	at
> org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConn
> ection(BaseConnectionManager2.java:477)
> 	at
> org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionMa
> nagerProxy.allocateConnection(BaseConnectionManager2.java:814)
> 	at
> org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperD
> ataSource.java:102)
> 	... 68 more
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-dev-help@db.apache.org
> 
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org