When you use EntityManager.lock, does it hold on to the same database connection the whole time, not allowing other threads to use that connection?? I seem to be running out of connections in my connection pool, as I am getting the following exception:
| INFO [WorkManager(4)-53846][2007-09-03 04:23:33,657][org.hibernate.event.def.DefaultLoadEventListener] Log4JLogger.java(99): Error performing load command | org.hibernate.exception.GenericJDBCException: Cannot open connection | at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103) | at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) | at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29) | at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420) | at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) | at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) | at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1560) | at org.hibernate.loader.Loader.doQuery(Loader.java:661) | at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) | at org.hibernate.loader.Loader.loadEntity(Loader.java:1784) | at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48) | at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42) | at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2977) | at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:393) | at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:374) | at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:137) | at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:193) | at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:101) | at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878) | at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815) | at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808) | at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:174) | at org.jboss.ejb3.entity.TransactionScopedEntityManager.find(TransactionScopedEntityManager.java:164) | at com.squaretrade.stateful.AbstractStateEngineImpl.loadObject(AbstractStateEngineImpl.java:118) | at com.squaretrade.stateful.AbstractStateEngineImpl.process(AbstractStateEngineImpl.java:31) | at sun.reflect.GeneratedMethodAccessor1671.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) | at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) | at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79) | at org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:253) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.security.AuthenticationInterceptor.invoke(AuthenticationInterceptor.java:77) | at org.jboss.ejb3.security.Ejb3AuthenticationInterceptor.invoke(Ejb3AuthenticationInterceptor.java:102) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:47) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateless.StatelessContainer.localInvoke(StatelessContainer.java:211) | at org.jboss.ejb3.stateless.StatelessLocalProxy.invoke(StatelessLocalProxy.java:79) | at $Proxy339.process(Unknown Source) | at com.squaretrade.stateful.AbstractStateEngineQueueHandler.onMessage(AbstractStateEngineQueueHandler.java:38) | at sun.reflect.GeneratedMethodAccessor1669.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112) | at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166) | at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:54) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:46) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:126) | at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62) | at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) | at org.jboss.ejb3.mdb.MessagingContainer.localInvoke(MessagingContainer.java:245) | at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery(MessageInflowLocalProxy.java:268) | at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke(MessageInflowLocalProxy.java:138) | at $Proxy138.onMessage(Unknown Source) | at org.jboss.resource.adapter.jms.inflow.JmsServerSession.onMessage(JmsServerSession.java:183) | at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:905) | at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170) | at org.jboss.mq.SpySession.run(SpySession.java:323) | at org.jboss.resource.adapter.jms.inflow.JmsServerSession.run(JmsServerSession.java:249) | at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204) | at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275) | at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743) | at java.lang.Thread.run(Thread.java:595) | Caused by: org.jboss.util.NestedSQLException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ); - nested throwable: (javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] )) | at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94) | at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:47) | at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417) | ... 79 more | Caused by: javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ) | at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:289) | at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:529) | at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:341) | at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:301) | at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:396) | at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842) | at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88) | ... 81 more | I was wondering if this could be caused by using EntityManager.lock where the lock is held for about a second. There does not seem to be a deadlock, but the oracle connection pool seems to be running out of connections intermittently, and I'm trying to figure out the possible causes. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4081010#4081010 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4081010 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
