You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "fpientka (JIRA)" <ji...@apache.org> on 2015/07/06 11:46:04 UTC

[jira] [Created] (TOMEE-1609) DataBase Pool gets exception with CMT (Container Managed Transactions)

fpientka created TOMEE-1609:
-------------------------------

             Summary: DataBase Pool gets exception with CMT (Container Managed Transactions)
                 Key: TOMEE-1609
                 URL: https://issues.apache.org/jira/browse/TOMEE-1609
             Project: TomEE
          Issue Type: Bug
         Environment: Using CATALINA_BASE:   "C:\temp\apache-tomee-plus-1.7.2"
Using CATALINA_HOME:   "C:\temp\apache-tomee-plus-1.7.2"
Using CATALINA_TMPDIR: "C:\temp\apache-tomee-plus-1.7.2\temp"
Using JRE_HOME:        "C:\jdk1.7.0_45"
Using CLASSPATH:       "C:\temp\apache-tomee-plus-1.7.2\bin\bootstrap.jar;C:\temp\apache-tomee-plus-1.7.2\bin\tomcat-juli.jar"
Server version: Apache Tomcat/7.0.62
Server built:   May 7 2015 17:14:55 UTC
Server number:  7.0.62.0
OS Name:        Windows 7
OS Version:     6.1
Architecture:   amd64
JVM Version:    1.7.0_45-b18

OPENEJB_INITIAL_CONTEXT_FACTORY=org.openejb.client.RemoteInitialContextFactory
OPENEJB_INITIAL_CONTEXT_FACTORY_LOCAL=org.openejb.client.LocalInitialContextFactory

<Resource id="jdbc/eeg" type="javax.sql.DataSource">
jdbcDriver = oracle.jdbc.xa.client.OracleXADataSource
jdbcUrl = jdbc:oracle:thin:@oracleserver:1521:abc
dataSourceCreator = dbcp
jtaManaged = true
maxActive = 50
maxIdle = 20
maxWaitTime = 10000 millisecond
minIdle = 0
testOnBorrow = true
testOnReturn = false
testWhileIdle = false
removeAbandonedTimeout = 60
removeAbandoned = true
</Resource>
            Reporter: fpientka


MetaDataSessionBean can't get further database connections with CMT (Container Managed Transactions). Initaly it worked, but commited connections are not given back to database pool, so it runs full!
see stacktrace:
org.apache.openejb.core.transaction.EjbTransactionUtil handleSystemException
Schwerwiegend: EjbTransactionUtil.handleSystemException: java.lang.RuntimeException: java.sql.SQLException: Unable to acquire a new connection from the pool
java.lang.RuntimeException: java.lang.RuntimeException: java.sql.SQLException: Unable to acquire a new connection from the pool
	at  fw.ejbaccess.FwServer.handleException(FwServer.java:24)
	at  fw.ejbaccess.MetaDataSessionBean.keyAspectNamesFor(MetaDataSessionBean.java:184)
	at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
	at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:181)
	at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:100)
	at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
	at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
	at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:227)
	at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:194)
	at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:308)
	at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:303)
	at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:92)
	at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:322)
	at com.sun.proxy.$Proxy176.keyAspectNamesFor(Unknown Source)
	at  fw.ejbaccess.ModelBasedQuery.createQueryContainer(ModelBasedQuery.java:1253)
	at  fw.ejbaccess.QuerySessionBean.getDataByQuery(QuerySessionBean.java:83)
	at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
	at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:181)
	at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:100)
	at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
	at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
	at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:227)
	at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:194)
	at org.apache.openejb.core.ivm.EjbObjectProxyHandler.synchronizedBusinessMethod(EjbObjectProxyHandler.java:308)
	at org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:303)
	at org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:92)
	at org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:322)
	at com.sun.proxy.$Proxy175.getDataByQuery(Unknown Source)
	at  fw.ejbaccess.ModelBasedQuery.getContainerCollection(ModelBasedQuery.java:1116)
	at  eeg.persistence.AdressenDAO.readKontaktAdressenMit(AdressenDAO.java:340)
	at  eeg.business.AdressenSessionBean.readAktiveKontaktAdressen(AdressenSessionBean.java:188)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
	at org.apache.openejb.monitoring.StatsInterceptor.record(StatsInterceptor.java:181)
	at org.apache.openejb.monitoring.StatsInterceptor.invoke(StatsInterceptor.java:100)
	at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext$Invocation.invoke(ReflectionInvocationContext.java:192)
	at org.apache.openejb.core.interceptor.ReflectionInvocationContext.proceed(ReflectionInvocationContext.java:173)
	at org.apache.openejb.core.interceptor.InterceptorStack.invoke(InterceptorStack.java:85)
	at org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:227)
	at org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:194)
	at org.apache.openejb.server.ejbd.EjbRequestHandler.doEjbObject_BUSINESS_METHOD(EjbRequestHandler.java:370)
	at org.apache.openejb.server.ejbd.EjbRequestHandler.processRequest(EjbRequestHandler.java:181)
	at org.apache.openejb.server.ejbd.EjbDaemon.processEjbRequest(EjbDaemon.java:344)
	at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:240)
	at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:86)
	at org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.java:58)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:44)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.RuntimeException: java.sql.SQLException: Unable to acquire a new connection from the pool
	at  fw.ejbaccess.FwServer.handleException(FwServer.java:24)
	at  fw.ejbaccess.MetaDataSessionBean.getConnection(MetaDataSessionBean.java:369)
	at  fw.ejbaccess.MetaDataSessionBean.keyAspectNamesFor(MetaDataSessionBean.java:181)
	... 85 more
Caused by: java.sql.SQLException: Unable to acquire a new connection from the pool
	at org.apache.commons.dbcp.managed.ManagedConnection.updateTransactionStatus(ManagedConnection.java:120)
	at org.apache.commons.dbcp.managed.ManagedConnection.<init>(ManagedConnection.java:55)
	at org.apache.commons.dbcp.managed.ManagedDataSource.getConnection(ManagedDataSource.java:77)
	at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
	at  eeg.business.service.EegOracleServiceLocator.getConnection(EegOracleServiceLocator.java:32)
	at  fw.ejbaccess.MetaDataSessionBean.getConnection(MetaDataSessionBean.java:367)
	... 86 more
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
	at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1171)
	at org.apache.commons.dbcp.AbandonedObjectPool.borrowObject(AbandonedObjectPool.java:79)
	at org.apache.commons.dbcp.managed.ManagedConnection.updateTransactionStatus(ManagedConnection.java:117)

    <session>
      <ejb-name>MetaDataSessionBean</ejb-name>
      <home>fw.ejbaccess.MetaDataSessionHome</home>
      <remote>fw.ejbaccess.MetaDataSession</remote>
      <local-home>fw.ejbaccess.MetaDataSessionLocalHome</local-home>
      <local>de.pta.fw.ejbaccess.MetaDataSessionLocal</local>
      <ejb-class>fw.ejbaccess.MetaDataSessionBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>
    </session>



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)