Code Monkey home page Code Monkey logo

transactions-essentials's People

Contributors

guypardon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

transactions-essentials's Issues

Spring boot 2.0 + jta-atomikos 4.0.6 + jpa + mysql combine and use AbstractRoutingDataSource to switch between dynamic data sources

Now the problem code is located at line com.atomikos.util.IntraVmObjectFactory.class 54 row

Try {
         Object existing = IntraVmObjectRegistry.getResource(name);
         If (existing != object) {
                String msg = "Another resource already exists with name " + name + " - pick a different name";
                Throw new NamingException(msg);
          }
     } catch (NameNotFoundException var5) {
          IntraVmObjectRegistry.addResource(name, object);
     }

The details of the problem are described as follows:
There are three data sources: data source A, data source B, and data source C.
In the first initialization, because IntraVmObjectRegistry.getResource(name) did not get the resource, it can run normally.
The second time you need to switch to data source A, or data source B, or data source C, the same name resource already exists when the first initialization occurs.
Object existing = IntraVmObjectRegistry.getResource(name);
If (existing != object) {
      String msg = "Another resource already exists with name " + name + " - pick a different name";
      Throw new NamingException(msg);
 }
And throwing an exception causes the program to not work properly.

Is there a solution that can make
If (existing != object) {
      String msg = "Another resource already exists with name " + name + " - pick a different name";
      Throw new NamingException(msg);
 }
When the condition is met, replace the existing resource existing with object?

NonXa connection factory exhausts the pool during oracle db connection reap in a particular scenario

jta timeout = 120 seconds
non-xa conn factory reap timeout = 180 seconds.

Application has a transaction that runs 1000+ update statements one after the other. The application is expected to complete running all the update statement within 60 seconds. In one particular case, one of the update statement (in our case 119th update statement) was running long due to a row level lock created by a different application. This caused the transaction to take more than 120 seconds and so the jta marked that transaction as timed out, but the update statement still runs in the backend to complete it. When it reaches 180 seconds, the connection is reaped and atomikos sets that connection as erroneous connection.

Still the update statements are being executed, 120th update asks for a connection for this transaction and since this connection is marked as erroneous, a new connection is created and given to application. This connection is not released to pool after the update is complete (my assumption is that the global transaction is not yet complete). When 121st update asks for a connection, expectation is that the pool will give the connection used for 120th update, but it again sees the erroneous connection as the first item in the connection iterator and returns it and eventually fails when attempting to recycling and hence gives a new connection again. So as the updates continues to run, it keeps creating new connections in the pool and it exhausts when it reaches the max pool setting.

Below is the error it puts in the log when it fails to recycle the erroneous connection. My understanding is that this connection must not considered as recyclable in first place.

2018-10-30 00:46:46 DEBUG ConnectionPool:45 - atomikos connection pool '<conn pool>': error while trying to recycle
com.atomikos.datasource.pool.CreateConnectionException: AtomikosNonXAPooledConnection: connection is erroneous

Please let me know if we can overcome this situation by some means, but to me it appears like a gap in the code.

Thanks
Maheedharan

testQuery Fails with ConnectionPool Once Per Day

Hello,

I have an issue where every day Atomikos transactions fail randomly. The issue only happens once, and further transactions are successful. This is occurring on Atomikos transaction essentials 3.9.3.

The transaction happens on two nodes connected over a WAN connection. We are using pooled connections to maintain multiple TCP sockets between the Datasources across the two nodes. Research and past experience has shown firewalls can cause this issue: http://informix-technology.blogspot.in/2016/04/error-76719-erro-76719.html

The user that owns the network infrastructure has informed me that there are not firewalls between the two nodes that would block the traffic.

Any ideas what could cause this issue? Else, any ideas on how to improve tracing to get further information? Here is the full exception stack trace:

122816: Nov 04 7:14:33.709 EDT %MADM-LIB_TPL-7-UNK:SQLState(IX000) vendor code(-79716)
122817: Nov 04 7:14:33.709 EDT %MADM-LIB_TPL-7-UNK:java.sql.SQLException: System or internal error
122818: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408)
122819: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:117)
122820: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java:2153)
122821: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java:2133)
122822: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:362)
122823: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxStatement.a(IfxStatement.java:1144)
122824: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxStatement.executeImpl(IfxStatement.java:1120)
122825: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxStatement.c(IfxStatement.java:866)
122826: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxStatement.execute(IfxStatement.java:784)
122827: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.jdbc.AtomikosXAPooledConnection.testUnderlyingConnection(AtomikosXAPooledConnection.java:124)
122828: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.AbstractXPooledConnection.createConnectionProxy(AbstractXPooledConnection.java:71)
122829: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnection(ConnectionPool.java:209)
122830: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnectionAndGrowPoolIfNecessary(ConnectionPool.java:173)
122831: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.findOrWaitForAnAvailableConnection(ConnectionPool.java:160)
122832: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.borrowConnection(ConnectionPool.java:151)
122833: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:342)
122834: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:394)
122835: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
122836: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:214)
122837: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.sun.proxy.$Proxy80.prepareStatement(Unknown Source)
122838: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
122839: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
122840: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
122841: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
122842: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.doQuery(Loader.java:696)
122843: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
122844: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.doList(Loader.java:2232)
122845: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
122846: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.list(Loader.java:2124)
122847: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
122848: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
122849: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
122850: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
122851: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
122852: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:88)
122853: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:358)
122854: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:328)
122855: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:248)
122856: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.ResourceDAOImpl.saveResource(ResourceDAOImpl.java:471)
122857: Nov 04 7:14:33.710 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.ResourceDAOImpl.txAdd(ResourceDAOImpl.java:431)
122858: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
122859: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
122860: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
122861: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at java.lang.reflect.Method.invoke(Method.java:606)
122862: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
122863: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
122864: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
122865: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
122866: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
122867: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
122868: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.sun.proxy.$Proxy196.txAdd(Unknown Source)
122869: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.wf.admin.icd.AgentHome.save(AgentHome.java:418)
122870: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.wf.admin.iaq.DBIAQConfiguration.saveAgentData(DBIAQConfiguration.java:1085)
122871: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.wf.admin.iaq.DBIAQConfiguration.saveAgentData(DBIAQConfiguration.java:1064)
122872: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.wf.admin.iaq.LDAPIAQWebConfig.saveAgentData(LDAPIAQWebConfig.java:1669)
122873: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.icd.ui.ICDServlet.saveResource(ICDServlet.java:3660)
122874: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.icd.ui.ICDServlet.updateResourceConfig(ICDServlet.java:5144)
122875: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.icd.ui.ICDServlet.execute(ICDServlet.java:327)
122876: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.ui.AppAdminBaseServlet.processService(AppAdminBaseServlet.java:282)
122877: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.ui.AppAdminBaseServlet.doPost(AppAdminBaseServlet.java:189)
122878: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
122879: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
122880: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
122881: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
122882: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
122883: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
122884: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
122885: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
122886: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
122887: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
122888: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
122889: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.esapi.ESAPISecurityFilter.doFilter(ESAPISecurityFilter.java:77)
122890: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
122891: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
122892: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
122893: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
122894: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
122895: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.ccbu.common.ids.SSOValve.invoke(SSOValve.java:174)
122896: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
122897: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
122898: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
122899: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:322)
122900: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
122901: Nov 04 7:14:33.711 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
122902: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-UNK: at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
122903: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-UNK: at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
122904: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-UNK: at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
122905: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-UNK: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
122906: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-UNK: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
122907: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-UNK: at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
122908: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-UNK: at java.lang.Thread.run(Thread.java:745)
122909: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-UNK:source=com.atomikos.datasource.pool.ConnectionPool, level=WARN, message=atomikos connection pool 'XADS-mytestserver-1509607936133': error creating proxy of connection an AtomikosXAPooledConnection with a SessionHandleState with 0 context(s): Exception=com.atomikos.datasource.pool.CreateConnectionException: Error executing testQuery
122910: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION:com.atomikos.datasource.pool.CreateConnectionException: Error executing testQuery
122911: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.jdbc.AtomikosXAPooledConnection.testUnderlyingConnection(AtomikosXAPooledConnection.java:128)
122912: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.AbstractXPooledConnection.createConnectionProxy(AbstractXPooledConnection.java:71)
122913: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnection(ConnectionPool.java:209)
122914: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnectionAndGrowPoolIfNecessary(ConnectionPool.java:173)
122915: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.ConnectionPool.findOrWaitForAnAvailableConnection(ConnectionPool.java:160)
122916: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.ConnectionPool.borrowConnection(ConnectionPool.java:151)
122917: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:342)
122918: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:394)
122919: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
122920: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:214)
122921: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.sun.proxy.$Proxy80.prepareStatement(Unknown Source)
122922: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
122923: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
122924: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
122925: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
122926: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.doQuery(Loader.java:696)
122927: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
122928: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.doList(Loader.java:2232)
122929: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
122930: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.list(Loader.java:2124)
122931: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
122932: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
122933: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
122934: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
122935: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
122936: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:88)
122937: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:358)
122938: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:328)
122939: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:248)
122940: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.ResourceDAOImpl.saveResource(ResourceDAOImpl.java:471)
122941: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.ResourceDAOImpl.txAdd(ResourceDAOImpl.java:431)
122942: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
122943: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
122944: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
122945: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.lang.reflect.Method.invoke(Method.java:606)
122946: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
122947: Nov 04 7:14:33.712 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
122948: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
122949: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
122950: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
122951: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
122952: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.sun.proxy.$Proxy196.txAdd(Unknown Source)
122953: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.wf.admin.icd.AgentHome.save(AgentHome.java:418)
122954: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.wf.admin.iaq.DBIAQConfiguration.saveAgentData(DBIAQConfiguration.java:1085)
122955: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.wf.admin.iaq.DBIAQConfiguration.saveAgentData(DBIAQConfiguration.java:1064)
122956: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.wf.admin.iaq.LDAPIAQWebConfig.saveAgentData(LDAPIAQWebConfig.java:1669)
122957: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.icd.ui.ICDServlet.saveResource(ICDServlet.java:3660)
122958: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.icd.ui.ICDServlet.updateResourceConfig(ICDServlet.java:5144)
122959: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.icd.ui.ICDServlet.execute(ICDServlet.java:327)
122960: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.ui.AppAdminBaseServlet.processService(AppAdminBaseServlet.java:282)
122961: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.ui.AppAdminBaseServlet.doPost(AppAdminBaseServlet.java:189)
122962: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
122963: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
122964: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
122965: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
122966: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
122967: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
122968: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
122969: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
122970: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
122971: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
122972: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
122973: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.esapi.ESAPISecurityFilter.doFilter(ESAPISecurityFilter.java:77)
122974: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
122975: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
122976: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
122977: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
122978: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
122979: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.ccbu.common.ids.SSOValve.invoke(SSOValve.java:174)
122980: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
122981: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
122982: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
122983: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:322)
122984: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
122985: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
122986: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
122987: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
122988: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
122989: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
122990: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
122991: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
122992: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.lang.Thread.run(Thread.java:745)
122993: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION:Caused by: java.sql.SQLException: System or internal error
122994: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408)
122995: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:117)
122996: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java:2153)
122997: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java:2133)
122998: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:362)
122999: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxStatement.a(IfxStatement.java:1144)
123000: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxStatement.executeImpl(IfxStatement.java:1120)
123001: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxStatement.c(IfxStatement.java:866)
123002: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxStatement.execute(IfxStatement.java:784)
123003: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.jdbc.AtomikosXAPooledConnection.testUnderlyingConnection(AtomikosXAPooledConnection.java:124)
123004: Nov 04 7:14:33.713 EDT %MADM-LIB_TPL-7-EXCEPTION: ... 81 more
123005: Nov 04 7:14:33.714 EDT %MADM-LIB_TPL-7-UNK:SQLState(IX000) vendor code(-79716)
123006: Nov 04 7:14:33.714 EDT %MADM-LIB_TPL-7-UNK:java.sql.SQLException: System or internal error java.net.SocketException: Broken pipe
123007: Nov 04 7:14:33.714 EDT %MADM-LIB_TPL-7-UNK: at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:472)
123008: Nov 04 7:14:33.714 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxSqli.a(IfxSqli.java:7866)
123009: Nov 04 7:14:33.714 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxSqli.flip(IfxSqli.java:2455)
123010: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:81)
123011: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbcx.IfxXASqli.executeXAClose(IfxXASqli.java:304)
123012: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbcx.IfxXAPooledConnection.closeDBforXA(IfxXAPooledConnection.java:199)
123013: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbcx.IfxXAReusableConnection.hardClose(IfxXAReusableConnection.java:120)
123014: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbcx.IfxXAPooledConnection.close(IfxXAPooledConnection.java:151)
123015: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.jdbc.AtomikosXAPooledConnection.destroy(AtomikosXAPooledConnection.java:95)
123016: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.destroyPooledConnection(ConnectionPool.java:257)
123017: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnection(ConnectionPool.java:215)
123018: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnectionAndGrowPoolIfNecessary(ConnectionPool.java:173)
123019: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.findOrWaitForAnAvailableConnection(ConnectionPool.java:160)
123020: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.borrowConnection(ConnectionPool.java:151)
123021: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:342)
123022: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:394)
123023: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
123024: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:214)
123025: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at com.sun.proxy.$Proxy80.prepareStatement(Unknown Source)
123026: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
123027: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
123028: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
123029: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
123030: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.doQuery(Loader.java:696)
123031: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
123032: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.doList(Loader.java:2232)
123033: Nov 04 7:14:33.715 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
123034: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.list(Loader.java:2124)
123035: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
123036: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
123037: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
123038: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
123039: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
123040: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:88)
123041: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:358)
123042: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:328)
123043: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:248)
123044: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.ResourceDAOImpl.saveResource(ResourceDAOImpl.java:471)
123045: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.ResourceDAOImpl.txAdd(ResourceDAOImpl.java:431)
123046: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
123047: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
123048: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
123049: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at java.lang.reflect.Method.invoke(Method.java:606)
123050: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
123051: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
123052: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
123053: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
123054: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
123055: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
123056: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at com.sun.proxy.$Proxy196.txAdd(Unknown Source)
123057: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.wf.admin.icd.AgentHome.save(AgentHome.java:418)
123058: Nov 04 7:14:33.716 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.wf.admin.iaq.DBIAQConfiguration.saveAgentData(DBIAQConfiguration.java:1085)
123059: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.wf.admin.iaq.DBIAQConfiguration.saveAgentData(DBIAQConfiguration.java:1064)
123060: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.wf.admin.iaq.LDAPIAQWebConfig.saveAgentData(LDAPIAQWebConfig.java:1669)
123061: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.icd.ui.ICDServlet.saveResource(ICDServlet.java:3660)
123062: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.icd.ui.ICDServlet.updateResourceConfig(ICDServlet.java:5144)
123063: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.icd.ui.ICDServlet.execute(ICDServlet.java:327)
123064: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.ui.AppAdminBaseServlet.processService(AppAdminBaseServlet.java:282)
123065: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.ui.AppAdminBaseServlet.doPost(AppAdminBaseServlet.java:189)
123066: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
123067: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
123068: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
123069: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
123070: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
123071: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
123072: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
123073: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
123074: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
123075: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
123076: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
123077: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.appadmin.esapi.ESAPISecurityFilter.doFilter(ESAPISecurityFilter.java:77)
123078: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
123079: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
123080: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
123081: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
123082: Nov 04 7:14:33.717 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
123083: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at com.cisco.ccbu.common.ids.SSOValve.invoke(SSOValve.java:174)
123084: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
123085: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
123086: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
123087: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:322)
123088: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
123089: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
123090: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
123091: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
123092: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
123093: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
123094: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
123095: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
123096: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK: at java.lang.Thread.run(Thread.java:745)
123097: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-UNK:source=com.atomikos.jdbc.AtomikosXAPooledConnection, level=WARN, message=an AtomikosXAPooledConnection with a SessionHandleState with 0 context(s): error closing XAConnection: : Exception=java.sql.SQLException: System or internal error java.net.SocketException: Broken pipe
123098: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION:java.sql.SQLException: System or internal error java.net.SocketException: Broken pipe
123099: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:472)
123100: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxSqli.a(IfxSqli.java:7866)
123101: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxSqli.flip(IfxSqli.java:2455)
123102: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:81)
123103: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbcx.IfxXASqli.executeXAClose(IfxXASqli.java:304)
123104: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbcx.IfxXAPooledConnection.closeDBforXA(IfxXAPooledConnection.java:199)
123105: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbcx.IfxXAReusableConnection.hardClose(IfxXAReusableConnection.java:120)
123106: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbcx.IfxXAPooledConnection.close(IfxXAPooledConnection.java:151)
123107: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.jdbc.AtomikosXAPooledConnection.destroy(AtomikosXAPooledConnection.java:95)
123108: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.ConnectionPool.destroyPooledConnection(ConnectionPool.java:257)
123109: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnection(ConnectionPool.java:215)
123110: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnectionAndGrowPoolIfNecessary(ConnectionPool.java:173)
123111: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.ConnectionPool.findOrWaitForAnAvailableConnection(ConnectionPool.java:160)
123112: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.datasource.pool.ConnectionPool.borrowConnection(ConnectionPool.java:151)
123113: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:342)
123114: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:394)
123115: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
123116: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:214)
123117: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.sun.proxy.$Proxy80.prepareStatement(Unknown Source)
123118: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
123119: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
123120: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
123121: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
123122: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.doQuery(Loader.java:696)
123123: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
123124: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.doList(Loader.java:2232)
123125: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
123126: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.Loader.list(Loader.java:2124)
123127: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
123128: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
123129: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
123130: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
123131: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
123132: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:88)
123133: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:358)
123134: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:328)
123135: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:248)
123136: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.ResourceDAOImpl.saveResource(ResourceDAOImpl.java:471)
123137: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.persistence.dao.impl.ResourceDAOImpl.txAdd(ResourceDAOImpl.java:431)
123138: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
123139: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
123140: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
123141: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.lang.reflect.Method.invoke(Method.java:606)
123142: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
123143: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
123144: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
123145: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
123146: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
123147: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
123148: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.sun.proxy.$Proxy196.txAdd(Unknown Source)
123149: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.wf.admin.icd.AgentHome.save(AgentHome.java:418)
123150: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.wf.admin.iaq.DBIAQConfiguration.saveAgentData(DBIAQConfiguration.java:1085)
123151: Nov 04 7:14:33.718 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.wf.admin.iaq.DBIAQConfiguration.saveAgentData(DBIAQConfiguration.java:1064)
123152: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.wf.admin.iaq.LDAPIAQWebConfig.saveAgentData(LDAPIAQWebConfig.java:1669)
123153: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.icd.ui.ICDServlet.saveResource(ICDServlet.java:3660)
123154: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.icd.ui.ICDServlet.updateResourceConfig(ICDServlet.java:5144)
123155: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.icd.ui.ICDServlet.execute(ICDServlet.java:327)
123156: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.ui.AppAdminBaseServlet.processService(AppAdminBaseServlet.java:282)
123157: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.ui.AppAdminBaseServlet.doPost(AppAdminBaseServlet.java:189)
123158: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
123159: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
123160: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
123161: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
123162: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
123163: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
123164: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
123165: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
123166: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
123167: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
123168: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
123169: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.appadmin.esapi.ESAPISecurityFilter.doFilter(ESAPISecurityFilter.java:77)
123170: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
123171: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
123172: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
123173: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
123174: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614)
123175: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.cisco.ccbu.common.ids.SSOValve.invoke(SSOValve.java:174)
123176: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
123177: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
123178: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
123179: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:322)
123180: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
123181: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423)
123182: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079)
123183: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
123184: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
123185: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
123186: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
123187: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
123188: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.lang.Thread.run(Thread.java:745)
123189: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION:Caused by: java.net.SocketException: Broken pipe
123190: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.net.SocketOutputStream.socketWrite0(Native Method)
123191: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
123192: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
123193: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
123194: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
123195: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.asf.IfxDataOutputStream.flush(IfxDataOutputStream.java:170)
123196: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxSqli.a(IfxSqli.java:2471)
123197: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxSqli.j(IfxSqli.java:2481)
123198: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: at com.informix.jdbc.IfxSqli.flip(IfxSqli.java:2451)
123199: Nov 04 7:14:33.719 EDT %MADM-LIB_TPL-7-EXCEPTION: ... 87 more

Cheers!
Jared

TMJOIN issue

Hey

We are trying to use Atomikos to perform XA transaction with DB2 and IMS ( IBM SQL Based DB )
The IMS DB is throwing error when a call is made with TMJOIN

XAResource.start ( 31392E33392E35332E3233352E746D30303030333030303733:31392E33392E35332E3233352E746D35 , XAResource.TMJOIN )

javax.transaction.xa.XAException: Transactional protocol violation. Current transactional state: "TRAN_XA_ENDED" Transactional command issued: XA Start

We tried setting the property com.atomikos.icatch.serial_jta_transactions to false still TMJOIN call is being triggered.

It seems like the IMS DB does not support the TMJOIN, as this worked just fine with DB2, MYSQL, H2.
We are trying to get help from the IBM for that.

However we wanted to check with the Atomikos team if we have a workaround to disable the TMJOIN calls in case our DB does not support this.

AtomikosThreadLocalConnection memory issues

The AtomikosThreadLocalConnection is causing OutOfMemoryExceptions in large JPA transactions. The statements are added to the statements list on AbstractConnectionProxy and even if completed/closed (by flush or commit) they cannot be garbage collected until the reaper calls forceCloseAllPendingStatements which may not happen depending on the min/max pool size settings.

Noted Issues:

  1. Statements are not released when the connection is returned to the pool (only when reaped or terminated).
  2. Statements are not released when closed/flushed. Large transactions need to be flushed to the database to free up resources.
  3. The forceCloseAllPendingStatements logs that it's force closing potentially thousands of already closed connections.

This mssql.zip gradle project can be used to demonstrate the issue and potential resolutions. See the projects readme.md.

mssql-atomikos-4 0 6-c300k-fc50k
mssql-atomikos-newcommit-c300k-fc50k
mssql-atomikos-newflushandcommit-c300k-fc50k

NPE in AtomikosConnectionProxy.newInstance

Hi,
Got a NullPointerException twice now. Both occurances occured in a non-transactional context.
Any ideas on why this happened?

Atomikos release: 4.0.6

DataSource setup
Some details have been withheld.

AtomikosDataSourceBean dataSource = new AtomikosDataSourceBean();
dataSource.setUniqueResourceName(...);
dataSource.setXaDataSourceClassName(...);
dataSource.setXaProperties(...);
dataSource.setBorrowConnectionTimeout(...);
dataSource.setLoginTimeout(6);
dataSource.setMinPoolSize(0);
dataSource.setMaxPoolSize(...);
dataSource.setTestQuery("/* ping */ select 1");
dataSource.init();

BR,
Filip

Caused by: java.lang.NullPointerException
at com.atomikos.jdbc.AtomikosConnectionProxy.newInstance(AtomikosConnectionProxy.java:246)
at com.atomikos.jdbc.AtomikosXAPooledConnection.doCreateConnectionProxy(AtomikosXAPooledConnection.java:93)
at com.atomikos.datasource.pool.AbstractXPooledConnection.createConnectionProxy(AbstractXPooledConnection.java:56)
at com.atomikos.datasource.pool.ConnectionPoolWithConcurrentValidation.concurrentlyTryToUse(ConnectionPoolWithConcurrentValidation.java:59)
at com.atomikos.datasource.pool.ConnectionPoolWithConcurrentValidation.retrieveFirstAvailableConnection(ConnectionPoolWithConcurrentValidation.java:41)
at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnectionAndGrowPoolIfNecessary(ConnectionPool.java:153)
at com.atomikos.datasource.pool.ConnectionPool.findOrWaitForAnAvailableConnection(ConnectionPool.java:141)
at com.atomikos.datasource.pool.ConnectionPool.borrowConnection(ConnectionPool.java:132)
at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:346)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111)
at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:225)

Replace no longer supported Atlassian clover product with the free OSS openclover version

Gentlemen,

Your parent pom is referencing the old and no longer supported Atlassian commercial version of the clover code coverage plugin and library

     <plugin>
       <groupId>com.atlassian.maven.plugins</groupId>
       <artifactId>maven-clover2-plugin</artifactId>
       <version>3.0.1</version>
     </plugin>

Were I you I would replace it with the new kid on the block, the free and OSS release from openclover

    <plugin>
      <groupId>org.openclover</groupId>
      <artifactId>clover-maven-plugin</artifactId>
      <version>4.2.1</version>
    </plugin>

Hope that this helps, :-)

Andy

Explicit Last Resource Commit Optimization support

Dear team,

I am wondering whether Atomikos has explicit support for LRCO? We are experiencing rather serious problems with consistency using Atomikos with non-XA resource ... I just want to understand whether try to solve an issue with Atomikos or just to switch to another transaction manager (say Narayana).

Thanks,
Vadim

Welcome to the new Atomikos "forum" - post your questions or issues here from now on!

Hey,

Welcome :-)

If you're looking for our latest forum platform, this is it!

Community issues can now be close to the source code - where they belong. Feel free to post here for anything regarding Atomikos open source.

Before asking questions, please check if there is no available answer in the list of prior issues yet. If you know the answers, feel free to help out...

May the source be with you!

Guy

Deadlock on connection close

When one thread is getting jms connection from pool, while another one is doing jms connection cleanup deadlock occurs in atomikos code. Here is thread dump for version 3.9.3, but the same problem occurs in version 4.0.6.

"DefaultJmsListenerContainer3" - Thread t@153
java.lang.Thread.State: BLOCKED
at com.atomikos.jms.AtomikosPooledJmsConnection.onTerminated(AtomikosPooledJmsConnection.java:125)
- waiting to lock <178e85e> (a com.atomikos.jms.AtomikosPooledJmsConnection) owned by "http-nio-9080-exec-6" t@85
at com.atomikos.datasource.xa.session.SessionHandleState.fireTerminatedEvent(SessionHandleState.java:272)
at com.atomikos.datasource.xa.session.SessionHandleState.notifySessionClosed(SessionHandleState.java:137)
at com.atomikos.jms.AtomikosJmsXaSessionProxy.invoke(AtomikosJmsXaSessionProxy.java:137)
- locked <130910b> (a com.atomikos.jms.AtomikosJmsXaSessionProxy)
at com.sun.proxy.$Proxy138.close(Unknown Source)
at com.atomikos.jms.AtomikosJmsConnectionProxy.close(AtomikosJmsConnectionProxy.java:268)
- locked <15666ee> (a java.util.ArrayList)
at com.atomikos.jms.AtomikosJmsConnectionProxy.invoke(AtomikosJmsConnectionProxy.java:150)
at com.sun.proxy.$Proxy137.close(Unknown Source)

"http-nio-9080-exec-6" - Thread t@85
java.lang.Thread.State: BLOCKED
at com.atomikos.jms.AtomikosJmsConnectionProxy.isAvailable(AtomikosJmsConnectionProxy.java:335)
- waiting to lock <15666ee> (a java.util.ArrayList) owned by "DefaultJmsListenerContainer3" t@153
at com.atomikos.jms.AtomikosPooledJmsConnection.isAvailable(AtomikosPooledJmsConnection.java:95)
- locked <178e85e> (a com.atomikos.jms.AtomikosPooledJmsConnection)
at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnection(ConnectionPool.java:207)
at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnectionAndGrowPoolIfNecessary(ConnectionPool.java:173)
at com.atomikos.datasource.pool.ConnectionPool.findOrWaitForAnAvailableConnection(ConnectionPool.java:160)
at com.atomikos.datasource.pool.ConnectionPool.borrowConnection(ConnectionPool.java:151)
- locked <2dd1f4> (a com.atomikos.datasource.pool.ConnectionPool)
at com.atomikos.jms.AtomikosConnectionFactoryBean.createConnection(AtomikosConnectionFactoryBean.java:616)

testQuery executed multiple times during a transaction

We are using Hibernate in our application and therefore each transaction may execute lots of SQL queries. It seems that Atomikos asks for a connection from pool for each of the queries separately and does not use the same connection for two subsequent queries. This, together with the testQuery-setting causes multiple testQueries to be executed during one transaction.

Is it possible to make use of the same connection for each SQL query during one transaction?

What happens if I disable testQuery and the connection in pool will break and is then given to application? I suppose that the operation in application will then fail and the connection will be removed from pool.

MessageDrivenContainer lacks isActive validation in start method

The start() method in MessageDrivenContainer class in transactions-jms starts number of new consumer sessions based on the poolSize parameter without validating if the sessions are already out there.

If the start() method is called more than once, it creates sessions more than the poolSize parameter and thereby exhausting the overall JMS connection pool.

[DB2] : DB2 LUW 10.5 XA (2 phase commit) Errors

DB2 Error 2 Phase commits with DB2 LUW 10.5.

Architecture

We are in microservice architecture, with servers FRONTEND and BACKEND communicating via an messaging application bus (ActiveMQ).

The applications are developed in JAVA, and are hosted by TOMCAT servers.

The applications on the BACKEND services, uses the JTA ATOMIKOS with function "2 PHASE COMMIT" to update the data in 2 DB2 databases. Databases use the "HADR" function with a Stanby mode server to secure the data.

Problem Description

Randomly, you have an error in ATOMIKOS log :
163012.048//WARNING//com.atomikos.datasource.xa.XAResourceTransaction//XA resource 'BPROD': commit for XID '746D313530373338363631313537393134383932:746D3739313531' raised -4: the supplied XID is invalid for this XA resource//logWarnin

In sametime we have the error in DB2 diag log file :

PID   : 9764         TID : 13344     PROC : db2syscs.exe

INSTANCE: DB2         NODE : 000      DB  : BPROD

APPHDL : 0-23440       APPID: 172.23.3.63.62262.171031194407

AUTHID : BPROD_IDBO_680    HOSTNAME: SDB-DB2-P05

EDUID  : 13344        EDUNAME: db2agent (BPROD) 0

FUNCTION: DB2 UDB, data protection services, sqlpxTEntrySwitchIn, probe:300

MESSAGE : ZRC=0x80100024=-2146435036=SQLP_NOTA "Transaction was not found"

     DIA8036C XA error with request type of "". Transaction was not found.

The transaction is not rollback, and no error raised on the application. So we have an inconsistency between the bases.

We have open a ticket to IBM DB2 support. After few weeks of investigation, the IBM support answer with the following resultat :


  1. In trace jcctraceBPROD.log_xads159, the Xid is tm151179346638104882tm14542, it started a global transaction and trying to commit. The prepare/commit started from Time:2017-11-27-15:37:46.490 as below :
jcc][Time:2017-11-27-15:37:46.396][Thread:messageListenerContainer-1][ResultSet@2c1074a3]closeX (tm151179346638104882tm14542, com.ibm.db2.jcc.t4.T
jcc][Time:2017-11-27-15:37:46.396][Thread:messageListenerContainer-1][ResultSet@2c1074a3]closeX (tm151179346638104882tm14542, com.ibm.db2.jcc.t4.T
jcc][Time:2017-11-27-15:37:46.459][Thread:messageListenerContainer-1][ResultSet@36ba050c]closeX (tm151179346638104882tm14542, com.ibm.db2.jcc.t4.T
jcc][Time:2017-11-27-15:37:46.459][Thread:messageListenerContainer-1][ResultSet@36ba050c]closeX (tm151179346638104882tm14542, com.ibm.db2.jcc.t4.T
jcc][Time:2017-11-27-15:37:46.474][Thread:messageListenerContainer-1][ResultSet@7ec2060b]closeX (tm151179346638104882tm14542, com.ibm.db2.jcc.t4.T
jcc][Time:2017-11-27-15:37:46.474][Thread:messageListenerContainer-1][ResultSet@7ec2060b]closeX (tm151179346638104882tm14542, com.ibm.db2.jcc.t4.T
jcc][Time:2017-11-27-15:37:46.490][Thread:messageListenerContainer-1][T4XAResource@266e0f94]end (tm151179346638104882tm14542, 67108864, 3) called
jcc][Time:2017-11-27-15:37:46.490][Thread:messageListenerContainer-1][T4XAResource@266e0f94]prepare (tm151179346638104882tm14542, 12) called
jcc][Time:2017-11-27-15:37:46.490][Thread:messageListenerContainer-1][T4XAResource@266e0f94]lockForprepare (tm151179346638104882tm14542, 0) called
jcc][Time:2017-11-27-15:37:46.490][Thread:messageListenerContainer-1][T4XAResource@266e0f94]lockForprepare (tm151179346638104882tm14542, 1) called
jcc][Time:2017-11-27-15:37:46.490][Thread:messageListenerContainer-1][T4XAResource@266e0f94]prepareR (tm151179346638104882tm14542, 12) called
jcc][Time:2017-11-27-15:37:46.537][Thread:messageListenerContainer-1][T4XAResource@266e0f94]commit (tm151179346638104882tm14542, false, 7) called
jcc][Time:2017-11-27-15:37:46.537][Thread:messageListenerContainer-1][T4XAResource@266e0f94]lockForcommit (tm151179346638104882tm14542, 0) called
jcc][Time:2017-11-27-15:37:46.537][Thread:messageListenerContainer-1][T4XAResource@266e0f94]lockForcommit (tm151179346638104882tm14542, 1) called
jcc][Time:2017-11-27-15:37:46.537][Thread:messageListenerContainer-1][T4XAResource@266e0f94]commitR (tm151179346638104882tm14542, false, 7) called
  1. But at timestamp Time:2017-11-27-15:37:46.506 in trace file jcctraceBPROD.log_xads_1. The TM had called tollback on same Xid tm151179346638104882tm14542
jcc][Time:2017-11-27-15:37:46.506][Thread:Atomikos:1][T4XAResource@1f6747d8]rollback (tm151179346638104882tm14542, 0) called
[jcc][Time:2017-11-27-15:37:46.506][Thread:Atomikos:1][T4XAResource@1f6747d8]lockForrollback (tm151179346638104882tm14542, 0) cal
[jcc][Time:2017-11-27-15:37:46.506][Thread:Atomikos:1][T4XAResource@1f6747d8]lockForrollback (tm151179346638104882tm14542, 1) cal
[jcc][Time:2017-11-27-15:37:46.506][Thread:Atomikos:1][T4XAResource@1f6747d8]rollbackR (tm151179346638104882tm14542, true) called

and its successful, now as per the JDBC XA specifications, the TM invalidated the Xid tm151179346638104882tm14542

From the perspective of the resource manager, the pointer xid is valid only for the duration of the call to the xa_rollback() function; that is, once the function ends, the transaction manager is permitted to invalidate where xid points. Resource managers are encouraged to use private copies of *xid after the function ends.

Due to this invalidation of Xid (Xid gets cleaned on server) , while commiting at 1st point, there is no valid Xid available

DDM Format: d0 RECV(AR) OBJDSS - Object Data Stream Structure
  LL: 18  CORR: 0001  CHAINED: n  CONT ON ERR: n  SAME CORR FOR NEXT DSS: n  

    NM: SYNCCRD - Sync Point Control Reply
      LL: 12    CP: 1248   
      NM: XARETVAL - XA return Value
        LL: 8    CP: 1904   
        XID does not exist (-4)

And thats why driver(Jcc) throws the expected XAException

[jcc][Time:2017-11-27-15:37:46.537][Thread:messageListenerContainer-1][T4XAResource@266e0f94]xaTransactionFinished (0) called
[jcc][Connection@2399077a] DB2 LUWID: 172.23.131.65.61515.171127143319.0E9F
[jcc] BEGIN TRACE_DIAGNOSTICS
[jcc][Thread:messageListenerContainer-1][XAException@40c34f02] javax.transaction.xa.XAException
[jcc][Thread:messageListenerContainer-1][XAException@40c34f02] Message = [jcc][t4][2041][12326][4.23.1044] Erreur lors de l'exꤵtion de XAResource.commit().  Le serveur a renvoy願AER_NOTA. ERRORCODE=-4203, SQLSTATE=null
[jcc][Thread:messageListenerContainer-1][XAException@40c34f02] Stack trace follows
com.ibm.db2.jcc.am.XaException: [jcc][t4][2041][12326][4.23.1044] Erreur lors de l'exꤵtion de XAResource.commit().  Le serveur a renvoy願AER_NOTA. ERRORCODE=-4203, SQLSTATE=null

So this seems the application usage issue ( if you could know why the rollback happened ?) or it needs to be handled at server TM (Transaction Manager) level.
From Db2 driver (Jcc) point of view, its working as designed.

This issue is similar to PMR : 35998,000,738 (about RollbackException after XAER NOTA(-4)) and the conclusion was same here as well.


Has anyone ever had a similar problem? Could you help us to resolve the problem?

Improve pool: recycleConnectionIfPossible should not give up on exception

Currently, the method recycleConnectionIfPossible ignores any other connections as soon as it encounters and erroneous exception that yields an exception. This creates more connections in the pool than necessary.

A more flexible solution would be to catch exceptions and continue iterating until a suitable candidate connection is found - rather than create new connections.

This would impact both pools: ConnectionPoolWithSynchronizedValidation and ConnectionPoolWithConcurrentValidation - the impact on the latter being somewhat higher.

Originally reported in issue #66

Cannot commit transaction and no exception is thrown

Hi,
We are using Atomikos 4.0.4 integrated with Spring. We randomly get the following error when the transaction try to commit

-XA resource 'XAPPCDataSource': commit for XID '31302E3230312E3230372E3132352E746D313534343133303938373134333036383635:31302E3230312E3230372E3132352E746D36383639' raised -4: the supplied XID is invalid for this XA resource javax.transaction.xa.XAException: The function COMMIT: failed. The status is: -4. Error: "*** SQLJDBC_XA DTC_ERROR Context: xa_commit, state=1, StatusCode:-4 (0xFFFFFFFC) ***" at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:645) at com.microsoft.sqlserver.jdbc.SQLServerXAResource.commit(SQLServerXAResource.java:808) at com.atomikos.datasource.xa.XAResourceTransaction.commit(XAResourceTransaction.java:555) at com.atomikos.icatch.imp.CommitMessage.send(CommitMessage.java:52) at com.atomikos.icatch.imp.CommitMessage.send(CommitMessage.java:23) at com.atomikos.icatch.imp.PropagationMessage.submit(PropagationMessage.java:67) at com.atomikos.icatch.imp.Propagator$PropagatorThread.run(Propagator.java:63) at com.atomikos.icatch.imp.Propagator.submitPropagationMessage(Propagator.java:42) at com.atomikos.icatch.imp.CoordinatorStateHandler.commitFromWithinCallback(CoordinatorStateHandler.java:373) at com.atomikos.icatch.imp.IndoubtStateHandler$1.doCommit(IndoubtStateHandler.java:112) at com.atomikos.icatch.imp.CoordinatorStateHandler.commitWithAfterCompletionNotification(CoordinatorStateHandler.java:581) at com.atomikos.icatch.imp.IndoubtStateHandler.commit(IndoubtStateHandler.java:107) at com.atomikos.icatch.imp.CoordinatorImp.commit(CoordinatorImp.java:548) at com.atomikos.icatch.imp.CoordinatorImp.terminate(CoordinatorImp.java:690) at com.atomikos.icatch.imp.CompositeTransactionImp.commit(CompositeTransactionImp.java:282) at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:172) at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:414) at com.atomikos.icatch.jta.UserTransactionImp.commit(UserTransactionImp.java:86) at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1023) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:730) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:487) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655)

In reality, we had two error like this because we are using 2 databases at the same time. I don't explain why we got such issue randomly (and this is not the purpose of this ticket) but the main issue is that no Exception has been thrown to Spring. Due to this, From the Spring perpective, this commit had been done and I an not getting an error.
The code contains a link to bug 21552 but I am not able to find a bug tracker
Could you explain such a behavior ?
Thanks

Connection pool not getting refreshed after the network outage

Hi,
I am facing a problem where atomikos transaction fails after the network outage.This happens once after the network outage and then subsequent transactions are successful. The transaction happens on two nodes connected over a WAN. We are using the Atomikos Transaction Manager 3.9.3.

From the application stack trace, we see that the Test Query fails with SQLState(IX000) vendor code(-79716) while obtaining connection from the pool on the remote node.

After doing a detailed RCA, we found that after the network outage, the first database operation that does the XA transaction fails to execute the test query while getting the connection. This is because its trying to use and exhaust the stale connections to connect to the remote node. The connection is attempted for around ~100 sec before it fails and then destroys the stale connection. This happens unless all the stale connections are exhausted. So, for example, if there are 5 stale connections in the Connection pool, it would take approximately 5 * 100 sec before the control comes back to the Application. Once all the stale connections are exhausted, the next connection attempt succeeds and the XA transaction goes through fine.

This is the method in atomikos which explains why it would take longer to do the first XA transaction after the network outage:
private Reapable retrieveFirstAvailableConnection(HeuristicMessage hmsg)

We have the following queries:

  1. The Connection Pool is not getting refreshed after the network outage. Is there a way Atomikos can detect the network outage and refresh the connection pool once the network issues are resolved ?

  2. Why does it take around 100 sec or more for the test query to execute and fail in such cases ? Is there a way we can reduce this time and fail fast ?

  3. Are such issues fixed in the later releases of Atomikos, e.g. Atomikos version 4.x ?

Below is the full exception stack trace:

3076044: Oct 04 09:19:20.478 CDT %MADM-LIB_TPL-7-UNK:SQLState(IX000) vendor code(-79716) 3076045: Oct 04 09:19:20.478 CDT %MADM-LIB_TPL-7-UNK:java.sql.SQLException: System or internal error 3076046: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:413) 3076047: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbcx.IfxXASqli.receiveMessage(IfxXASqli.java:140) 3076048: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java:2488) 3076049: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java:2463) 3076050: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxResultSet.b(IfxResultSet.java:394) 3076051: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxStatement.a(IfxStatement.java:1333) 3076052: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxStatement.executeImpl(IfxStatement.java:1303) 3076053: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxStatement.c(IfxStatement.java:1007) 3076054: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.informix.jdbc.IfxStatement.execute(IfxStatement.java:893) 3076055: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.atomikos.jdbc.AtomikosXAPooledConnection.testUnderlyingConnection(AtomikosXAPooledConnection.java:124) 3076056: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.AbstractXPooledConnection.createConnectionProxy(AbstractXPooledConnection.java:71) 3076057: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnection(ConnectionPool.java:209) 3076058: Oct 04 09:19:20.480 CDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.retrieveFirstAvailableConnectionAndGrowPoolIfNecessary(ConnectionPool.java:173) 3076059: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.findOrWaitForAnAvailableConnection(ConnectionPool.java:160) 3076060: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at com.atomikos.datasource.pool.ConnectionPool.borrowConnection(ConnectionPool.java:151) 3076061: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:342) 3076062: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at com.atomikos.jdbc.AbstractDataSourceBean.getConnection(AbstractDataSourceBean.java:394) 3076063: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) 3076064: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:214) 3076065: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at com.sun.proxy.$Proxy36.prepareStatement(Unknown Source) 3076066: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534) 3076067: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452) 3076068: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161) 3076069: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577) 3076070: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.doQuery(Loader.java:696) 3076071: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259) 3076072: Oct 04 09:19:20.481 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.doList(Loader.java:2232) 3076073: Oct 04 09:19:20.482 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129) 3076074: Oct 04 09:19:20.482 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.Loader.list(Loader.java:2124) 3076075: Oct 04 09:19:20.482 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) 3076076: Oct 04 09:19:20.482 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) 3076077: Oct 04 09:19:20.482 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) 3076078: Oct 04 09:19:20.482 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149) 3076079: Oct 04 09:19:20.482 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) 3076080: Oct 04 09:19:20.482 CDT %MADM-LIB_TPL-7-UNK: at org.hibernate.ejb.QueryImpl.getSingleResult(QueryImpl.java:88) 3076081: Oct 04 09:19:20.482 CDT %MADM-LIB_TPL-7-UNK: at com.cisco.persistence.dao.impl.AbstractEntityDAOImpl.getConfigSeedID(AbstractEntityDAOImpl.java:334 ) .... .... 3079752: Oct 04 09:26:28.791 CDT %MADM-ADM_CFG-7-UNK:Exception occurred JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is javax.transaction.RollbackException: Prepare: NO vote

Release notes for 4.0.5

We start experiencing problems with the latest version (4.0.5). Everything works just fine with the version 4.0.4. Could you please publish release notes for 4.0.5? It would be easier to understand changes from release notes rather than comparing sources.

Thanks in advance,
Vadim

MessageDrivenContainer user/password not working with WMQ

I have an application that listens to websphere MQ queues.
I am using

  • AtomikosConnectionFactoryBean which has a WMQ MQXaConnectionFactory as reference xaConnectionFactory.
  • MessageDriverContainer for listener which refers to the above atomikosconnectionfactorybean.

I am using user/password property in MessageDriverContainer, but those parameters are being ignored and using the system user to connect to the queues.

What is the purpose of user/password in MessageDriverContainer? and is there a work around to handle this scenario?

XA resource 'XXXXX': resume for XID

Hi

I am getting below exception while starting the server

Caused by: com.atomikos.datasource.ResourceException: XA resource 'XXXXX': resume for XID '627769496E746572666163656465763132313533313833363830353032333030303031:627769496E74657266616365646576313231' raised -3: the XA resource detected an internal error
at com.atomikos.datasource.xa.XAResourceTransaction.resume(XAResourceTransaction.java:303)
at com.atomikos.datasource.xa.session.BranchEnlistedStateHandler.(BranchEnlistedStateHandler.java:40)
at com.atomikos.datasource.xa.session.NotInBranchStateHandler.checkEnlistBeforeUse(NotInBranchStateHandler.java:46)
at com.atomikos.datasource.xa.session.TransactionContext.checkEnlistBeforeUse(TransactionContext.java:70)
at com.atomikos.datasource.xa.session.SessionHandleState.notifyBeforeUse(SessionHandleState.java:160)
at com.atomikos.jdbc.AtomikosConnectionProxy.enlist(AtomikosConnectionProxy.java:207)
at com.atomikos.jdbc.AtomikosConnectionProxy.invoke(AtomikosConnectionProxy.java:122)
at com.sun.proxy.$Proxy303.prepareStatement(Unknown Source)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1700)
at org.hibernate.loader.Loader.doQuery(Loader.java:801)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
at org.hibernate.loader.Loader.loadEntity(Loader.java:2037)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:86)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:76)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3293)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:496)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:477)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:227)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:285)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1090)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:1005)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:998)
at com.bnymellon.bwi3.sdk.database.hibernate.HibernateDAO.get(HibernateDAO.java:109)
... 82 more
Caused by: oracle.jdbc.xa.OracleXAException
at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1101)
at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:237)
at com.atomikos.datasource.xa.XAResourceTransaction.resume(XAResourceTransaction.java:297)
... 108 more

when I use following db connect string in my data source

"jdbc:Oracle:thin:@(DESCRIPTION =(load_balance=off)(failover=on)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST= host1 )(PORT=port1))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=port2)))(CONNECT_DATA=(SERVICE_NAME=Ser_Name)))

whereas host1 is down and host2 is up.

Please help me to resolve.

Is there a way deploying atomikos in server side.

hi guys

I have known we can startup a atomikos in client side to coordinate transactional resource as XA protocol defined, and XA recovery execute based on local filesystem.
Is there a way that we can deploy atomikos in server side, so transactional resource will be enlisted using http or rpc way? I have reviewed the atomikos recovery, it seems that the uri of participate can start with "http", so atomikos can support server deploy way?

Integration of Spring 5+ Hibernate 5 + Atomikos 4 + Tomcat Unable to locate current JTA transaction

Hello,
I have tried many different solutions, but getting the exception:

org.hibernate.HibernateException: Unable to locate current JTA transaction at org.hibernate.context.internal.JTASessionContext.currentSession(JTASessionContext.java:75) ~[hibernate-core-5.2.12.Final.jar:5.2.12.Final] at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:465) ~[hibernate-core-5.2.12.Final.jar:5.2.12.Final]

I am using Atomikos 4.0.4, Hibernate 5.2.12, Spring 5.0.2 and Tomcat 8.
How to configure Spring 5 + Hibernate 5
This is my configuration
application-context.xml

<bean id="sessionFactory"
      class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name="configLocation">
        <value>classpath:hibernate.cfg.xml</value>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.cache.use_query_cache">true</prop>
            <prop key="hibernate.cache.use_second_level_cache">true</prop>
            <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
            <prop key="net.sf.ehcache.configurationResourceName">/ehcache/ehcache.xml</prop>
            <prop key="hibernate.connection.datasource">java:/comp/env/jdbc/myoracle</prop>
            <prop key="hibernate.transaction.jta.platform">cgaweb.common.atomikos.SpringJtaPlatformAdapter</prop>
            <prop key="hibernate.max_fetch_depth">2</prop>
            <prop key="hibernate.connection.autocommit">false</prop>
            <prop key="hibernate.connection.release_mode">after_transaction</prop>
            <prop key="hibernate.current_session_context_class">jta</prop>
            <prop key="javax.persistence.transactionType">jta</prop>
            <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.id.new_generator_mappings">true</prop>
            <prop key="hibernate.mapping.precedence">class, hbm</prop>
            <prop key="connection.driver_class">oracle.jdbc.OracleDriver</prop>
        </props>
    </property>
</bean>

<!-- jta transaction -->
<bean id="atomikosTransactionService" class="com.atomikos.icatch.config.UserTransactionServiceImp" init-method="init" destroy-method="shutdownWait" >
<constructor-arg>
    <props>
        <prop key="com.atomikos.icatch.log_base_name">UserTransactionServiceImplog</prop>
    </props>
</constructor-arg>
</bean>
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close" depends-on="atomikosTransactionService">
    <property name="forceShutdown" value="true"/>
    <property name="transactionTimeout" value="300" />
</bean>
<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp" depends-on="atomikosTransactionService">
    <property name="TransactionTimeout" value="300"/>
</bean>
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
    <property name="transactionManager" ref="atomikosTransactionManager"></property>
    <property name="userTransaction" ref="atomikosUserTransaction"></property>
    <property name="allowCustomIsolationLevels" value="true"></property>
</bean>
<!-- Manager lookup-->
<bean id="springJtaPlatformAdapter" class="cgaweb.common.atomikos.SpringJtaPlatformAdapter">
    <property name="jtaTransactionManager" ref="transactionManager" />
</bean>

<!-- post construct -->
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

code of adapter

public class SpringJtaPlatformAdapter extends AbstractJtaPlatform {
private static TransactionManager sTransactionManager;
private static UserTransaction sUserTransaction;
@Override
protected TransactionManager locateTransactionManager() {
    return sTransactionManager;
}
@Override
protected UserTransaction locateUserTransaction() {
    return sUserTransaction;
}
public void setJtaTransactionManager(JtaTransactionManager jtaTransactionManager) {
    sTransactionManager = jtaTransactionManager.getTransactionManager();
    sUserTransaction = jtaTransactionManager.getUserTransaction();
}
public void setTransactionManager(TransactionManager transactionManager) {
    sTransactionManager = transactionManager;
}
public void setUserTransaction(UserTransaction userTransaction) {
    sUserTransaction = userTransaction;
}


I have added the following libs in my tomcat server :

transaction-jta-4.0.4.jar
transaction-jdbc.4.0.4.jar
transaction-hibernate4-4.0.jar
transaction-api-4.0.4.jar
transactions-4.0.4.jar
jta-1.1.jar

EDIT 1 : it's seems that the current thread from spring is not associated to the thread tomcat in class CompositeTransactionManagerImp !
can you please help me to solve this issue ? Thanks

JTA Transaction timeout always use default

I have a strange behavior when upgrade from v4.0.M4 to 4.0.6. That the transaction timeout will not respect value setting in J2eeUserTransaction. I have this configuration

@bean
@dependsOn("userTransactionService")
public UserTransaction atomikosUserTransaction() throws SystemException {
final J2eeUserTransaction result = new J2eeUserTransaction();
result.setTransactionTimeout(300);
return result;
}

At version 4.0.M4, JTA transaction will start with 300s timeout, but not 300s at V4.0.6 when I debug in com.atomikos.icatch.jta.TransactionManagerImp.begin ( int timeout ), timeout value alwas 10.

To work around, I have to set timeout value of JtaTransactionManager too

@bean()
public PlatformTransactionManager transactionManager() throws SystemException {
final JtaTransactionManager jtaTransactionManager = new JtaTransactionManager();
jtaTransactionManager.setTransactionManager(atomikosTransactionManager());
jtaTransactionManager.setUserTransaction(atomikosUserTransaction());
// In version 4.0.6, setting timeout in JtaTransactionManager will override default timeout in TransactionManagerImp (10s is default).
jtaTransactionManager.setDefaultTimeout(env.getProperty("transaction.transactionTimeout", Integer.class));
return jtaTransactionManager;
}

So, it is a bug or in V4.0.6 some new configuration way are applied?

How do we add marklogic to spring @Transactional

Hi Team,
I have four databases oracle,maria,JMSQ and Marklogic, how can i add marklogic to global transaction,
can you please provide me code snippet/url?
Spring @transactional is support for all databases except marklogic is there any way to integrate.

Thanks,
Venu

4.0.6 now online

Dear all,

The 4.0.6 is now available in maven central and on github.

We now have pool performance comparable to plain JDBC pools - meaning there is no more JTA/XA overhead for the typical use cases.

Enjoy!

@Test Spring Boot, Atomikos @After dataSource.close() cause XA resource has become unavailable

Hi. I see an exception occurs in one of my tests after data source close called. From stack trace I understand connection was closed, before I close data source from here:

@After
public void afterTest() {
	
	System.out.println("Close data sources");
	
	((AtomikosDataSourceBean)firstDataSource).close();
	((AtomikosDataSourceBean)secondDataSource).close();
} 

My tests seems pass fine though. Is this a problem, or I should fix it somehow?

2018-02-08 16:42:01.863  WARN 1254 --- [           main] c.a.datasource.xa.XAResourceTransaction  : XA resource 'firstDataSource': rollback for XID '3132372E302E312E312E746D30303030313030303535:3132372E302E312E312E746D31' raised -7: the XA resource has become unavailable

com.mysql.jdbc.jdbc2.optional.MysqlXAException: Undetermined error occurred in the underlying Connection - check your data for consistency
	at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:586) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:568) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.rollback(MysqlXAConnection.java:413) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection.rollback(SuspendableXAConnection.java:160) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.atomikos.datasource.xa.XAResourceTransaction.rollback(XAResourceTransaction.java:636) ~[transactions-jta-3.9.3.jar:na]
	at com.atomikos.icatch.imp.RollbackMessage.send(RollbackMessage.java:70) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.PropagationMessage.submit(PropagationMessage.java:83) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.Propagator$PropagatorThread.run(Propagator.java:79) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.Propagator.submitPropagationMessage(Propagator.java:58) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.CoordinatorStateHandler.rollbackFromWithinCallback(CoordinatorStateHandler.java:704) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.ActiveStateHandler$7.doRollback(ActiveStateHandler.java:319) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.CoordinatorStateHandler.rollbackWithAfterCompletionNotification(CoordinatorStateHandler.java:832) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.ActiveStateHandler.rollbackWithAfterCompletionNotification(ActiveStateHandler.java:49) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.ActiveStateHandler.rollback(ActiveStateHandler.java:314) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.CoordinatorImp.rollback(CoordinatorImp.java:741) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.TransactionStateHandler.rollback(TransactionStateHandler.java:185) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.TransactionStateHandler.rollbackWithStateCheck(TransactionStateHandler.java:203) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.CompositeTransactionImp.doRollback(CompositeTransactionImp.java:237) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.CompositeTerminatorImp.rollback(CompositeTerminatorImp.java:123) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.imp.CompositeTransactionImp.rollback(CompositeTransactionImp.java:346) [transactions-3.9.3.jar:na]
	at com.atomikos.icatch.jta.TransactionImp.rollback(TransactionImp.java:217) [transactions-jta-3.9.3.jar:na]
	at com.atomikos.icatch.jta.TransactionManagerImp.rollback(TransactionManagerImp.java:448) [transactions-jta-3.9.3.jar:na]
	at com.atomikos.icatch.jta.UserTransactionManager.rollback(UserTransactionManager.java:217) [transactions-jta-3.9.3.jar:na]
	at org.springframework.transaction.jta.JtaTransactionManager.doRollback(JtaTransactionManager.java:1050) [spring-tx-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:853) [spring-tx-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:830) [spring-tx-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:128) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:227) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:319) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:94) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) [spring-test-4.3.14.RELEASE.jar:4.3.14.RELEASE]
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) [.cp/:na]
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) [.cp/:na]
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:539) [.cp/:na]
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:761) [.cp/:na]
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:461) [.cp/:na]
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:207) [.cp/:na]
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_151]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_151]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_151]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_151]
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.Util.getInstance(Util.java:408) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1184) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1179) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2371) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2355) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:560) ~[mysql-connector-java-5.1.45.jar:5.1.45]
	... 47 common frames omitted

The project to reproduce issue is stored at pavlomorozov/AtomikosConfig@80b2130 (commit number included in link)

Thanks

sometimes throw 'com.mysql.jdbc.jdbc2.optional.MysqlXAException: XAER_RMFAIL: The command cannot be executed when global transaction is in the NON-EXISTING state' when xa commit

2017-12-12 19:32:16,213 [create_thread_orderId_1] DEBUG com.atomikos.icatch.imp.CompositeTransactionImp - commit() done (by application) of transaction 192.168.1.100.tm151307833616201579
2017-12-12 19:32:16,213 [create_thread_orderId_1] DEBUG com.atomikos.datasource.xa.XAResourceTransaction - XAResource.end ( 31302E3235332E34342E34362E746D313531333037383333363136323031353739:31302E3235332E34342E34362E746D32393731 , XAResource.TMSUCCESS ) on resource xaDataSourceLoandbMaster represented by XAResource instance com.mysql.jdbc.jdbc2.optional.JDBC4SuspendableXAConnection@49b1e7b7
2017-12-12 19:32:16,223 [create_thread_orderId_1] DEBUG com.atomikos.datasource.xa.XAResourceTransaction - XAResource.prepare ( 31302E3235332E34342E34362E746D313531333037383333363136323031353739:31302E3235332E34342E34362E746D32393731 ) returning OK on resource xaDataSourceLoandbMaster represented by XAResource instance com.mysql.jdbc.jdbc2.optional.JDBC4SuspendableXAConnection@49b1e7b7
2017-12-12 19:32:16,223 [create_thread_orderId_1] DEBUG com.atomikos.datasource.xa.XAResourceTransaction - XAResource.end ( 31302E3235332E34342E34362E746D313531333037383333363136323031353739:31302E3235332E34342E34362E746D32393732 , XAResource.TMSUCCESS ) on resource xaDataSourceAuditDB represented by XAResource instance com.mysql.jdbc.jdbc2.optional.JDBC4SuspendableXAConnection@11e9ce73
2017-12-12 19:32:16,236 [Atomikos:4] DEBUG com.atomikos.recovery.xa.XaResourceRecoveryManager        - Resource 192.168.1.100.tm recovering XID: 192.168.1.100.tm151307833616201579192.168.1.100.tm2971
2017-12-12 19:32:16,239 [create_thread_orderId_1] DEBUG com.atomikos.datasource.xa.XAResourceTransaction - XAResource.prepare ( 31302E3235332E34342E34362E746D313531333037383333363136323031353739:31302E3235332E34342E34362E746D32393732 ) returning OK on resource xaDataSourceAuditDB represented by XAResource instance com.mysql.jdbc.jdbc2.optional.JDBC4SuspendableXAConnection@11e9ce73
2017-12-12 19:32:16,239 [Atomikos:4] DEBUG com.atomikos.recovery.xa.XaResourceRecoveryManager        - Resource 192.168.1.100.tm recovering XID: 192.168.1.100.tm151307833616201579192.168.1.100.tm2972
2017-12-12 19:32:16,239 [Atomikos:4] DEBUG com.atomikos.recovery.xa.XaResourceRecoveryManager        - Resource 192.168.1.100.tm recovering XID: 192.168.1.100.tm151307833616201579192.168.1.100.tm2971
2017-12-12 19:32:16,243 [create_thread_orderId_1] DEBUG com.atomikos.datasource.xa.XAResourceTransaction - XAResource.commit ( 31302E3235332E34342E34362E746D313531333037383333363136323031353739:31302E3235332E34342E34362E746D32393731 , false ) on resource xaDataSourceLoandbMaster represented by XAResource instance com.mysql.jdbc.jdbc2.optional.JDBC4SuspendableXAConnection@49b1e7b7
2017-12-12 19:32:16,244 [Atomikos:4] DEBUG com.atomikos.recovery.xa.XaResourceRecoveryManager        - Presumed abort of xid: 192.168.1.100.tm151307833616201579192.168.1.100.tm2972
2017-12-12 19:32:16,250 [create_thread_orderId_1] DEBUG com.atomikos.datasource.xa.XAResourceTransaction - XAResource.commit ( 31302E3235332E34342E34362E746D313531333037383333363136323031353739:31302E3235332E34342E34362E746D32393732 , false ) on resource xaDataSourceAuditDB represented by XAResource instance com.mysql.jdbc.jdbc2.optional.JDBC4SuspendableXAConnection@11e9ce73
2017-12-12 19:32:16,252 [Atomikos:4] DEBUG com.atomikos.recovery.xa.XaResourceRecoveryManager        - Presumed abort of xid: 192.168.1.100.tm151307833616201579192.168.1.100.tm2971
2017-12-12 19:32:16,258 [create_thread_orderId_1] WARN  com.atomikos.datasource.xa.XAResourceTransaction - XA resource 'xaDataSourceAuditDB': commit for XID '31302E3235332E34342E34362E746D313531333037383333363136323031353739:31302E3235332E34342E34362E746D32393732' raised -7: the XA resource has become unavailable
com.mysql.jdbc.jdbc2.optional.MysqlXAException: XAER_RMFAIL: The command cannot be executed when global transaction is in the  NON-EXISTING state
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:581) ~[mysql-connector-java-5.1.34.jar:5.1.34]
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:566) ~[mysql-connector-java-5.1.34.jar:5.1.34]
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.commit(MysqlXAConnection.java:543) ~[mysql-connector-java-5.1.34.jar:5.1.34]
        at com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection.commit(SuspendableXAConnection.java:125) ~[mysql-connector-java-5.1.34.jar:5.1.34]
        at com.atomikos.datasource.xa.XAResourceTransaction.commit(XAResourceTransaction.java:555) ~[transactions-jta-4.0.5.jar:na]
        at com.atomikos.icatch.imp.CommitMessage.send(CommitMessage.java:52) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.CommitMessage.send(CommitMessage.java:23) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.PropagationMessage.submit(PropagationMessage.java:67) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.Propagator$PropagatorThread.run(Propagator.java:63) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.Propagator.submitPropagationMessage(Propagator.java:42) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.CoordinatorStateHandler.commitFromWithinCallback(CoordinatorStateHandler.java:373) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.IndoubtStateHandler$1.doCommit(IndoubtStateHandler.java:112) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.CoordinatorStateHandler.commitWithAfterCompletionNotification(CoordinatorStateHandler.java:581) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.IndoubtStateHandler.commit(IndoubtStateHandler.java:107) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.CoordinatorImp.commit(CoordinatorImp.java:548) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.CoordinatorImp.terminate(CoordinatorImp.java:690) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.imp.CompositeTransactionImp.commit(CompositeTransactionImp.java:282) [transactions-4.0.5.jar:na]
        at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:172) [transactions-jta-4.0.5.jar:na]
        at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:414) [transactions-jta-4.0.5.jar:na]
        at com.atomikos.icatch.jta.UserTransactionImp.commit(UserTransactionImp.java:86) [transactions-jta-4.0.5.jar:na]
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1021) [spring-tx-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:757) [spring-tx-4.1.6.RELEASE.jar:na]
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:726) [spring-tx-4.1.6.RELEASE.jar:na]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:521) [spring-tx-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:291) [spring-tx-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) [spring-tx-4.1.6.RELEASE.jar:4.1.6.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.1.6.RELEASE.jar:na]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) [spring-aop-4.1.6.RELEASE.jar:na]

Thanks!

raised -4: the supplied XID is invalid for this XA resource

2018-08-06 13:23:48.763 WARN 7672 --- [nio-8080-exec-9] c.a.datasource.xa.XAResourceTransaction : XA resource 'primarySourceName': rollback for XID '636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D313533333533333031373635393030303031:636F6D2E61746F6D696B6F732E737072696E672E6A6462632E746D31' raised -4: the supplied XID is invalid for this XA resource

javax.transaction.xa.XAException: 函数 ROLLBACK: 失败。状态为: -4。错误:“*** SQLJDBC_XA DTC_ERROR Context: xa_rollback, state=1, StatusCode:-4 (0xFFFFFFFC) ***”
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.DTC_XA_Interface(SQLServerXAResource.java:545) ~[sqljdbc4.jar:na]
at com.microsoft.sqlserver.jdbc.SQLServerXAResource.rollback(SQLServerXAResource.java:713) ~[sqljdbc4.jar:na]
at com.atomikos.datasource.xa.XAResourceTransaction.rollback(XAResourceTransaction.java:460) ~[transactions-jta-4.0.6.jar:na]
at com.atomikos.icatch.imp.RollbackMessage.send(RollbackMessage.java:47) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.RollbackMessage.send(RollbackMessage.java:20) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.PropagationMessage.submit(PropagationMessage.java:67) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.Propagator$PropagatorThread.run(Propagator.java:63) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.Propagator.submitPropagationMessage(Propagator.java:42) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.CoordinatorStateHandler.rollbackFromWithinCallback(CoordinatorStateHandler.java:468) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.ActiveStateHandler$7.doRollback(ActiveStateHandler.java:285) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.CoordinatorStateHandler.rollbackWithAfterCompletionNotification(CoordinatorStateHandler.java:563) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.ActiveStateHandler.rollback(ActiveStateHandler.java:280) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.CoordinatorImp.rollback(CoordinatorImp.java:577) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.TransactionStateHandler.rollback(TransactionStateHandler.java:165) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.TransactionStateHandler.rollbackWithStateCheck(TransactionStateHandler.java:180) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.CompositeTransactionImp.doRollback(CompositeTransactionImp.java:201) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.imp.CompositeTransactionImp.rollback(CompositeTransactionImp.java:314) [transactions-4.0.6.jar:na]
at com.atomikos.icatch.jta.TransactionImp.rollback(TransactionImp.java:199) [transactions-jta-4.0.6.jar:na]
at com.atomikos.icatch.jta.TransactionManagerImp.rollback(TransactionManagerImp.java:426) [transactions-jta-4.0.6.jar:na]
at com.atomikos.icatch.jta.UserTransactionImp.rollback(UserTransactionImp.java:97) [transactions-jta-4.0.6.jar:na]
at org.springframework.transaction.jta.JtaTransactionManager.doRollback(JtaTransactionManager.java:1061) [spring-tx-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:838) [spring-tx-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:812) [spring-tx-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.completeTransactionAfterThrowing(TransactionAspectSupport.java:550) [spring-tx-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:298) [spring-tx-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) [spring-tx-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185) [spring-aop-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688) [spring-aop-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at com.example.service.busi.OvrmService$$EnhancerBySpringCGLIB$$c9ae377c.insertSportPhase() [classes/:na]
at com.example.poi.controller.ImportController.importResultPerson(ImportController.java:312) [classes/:na]
at com.example.poi.controller.ImportController$$FastClassBySpringCGLIB$$ab7703be.invoke() [classes/:na]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) [spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:684) [spring-aop-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at com.example.poi.controller.ImportController$$EnhancerBySpringCGLIB$$68de8fce.importResultPerson() [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209) [spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) [spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) [spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877) [spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783) [spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) [spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991) [spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925) [spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974) [spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877) [spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851) [spring-webmvc-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat-embed-websocket-8.5.31.jar:8.5.31]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) [spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.0.7.RELEASE.jar:5.0.7.RELEASE]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468) [tomcat-embed-core-8.5.31.jar:8.5.31]
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.31.jar:8.5.31]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_171]
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.31.jar:8.5.31]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171]

4.0.6 has memory leak when lots of statements are created.

We have been running a patched version of 3.9.3 and I was looking to update to 4.0.6 but it seems this issue still exists. Was this only fixed in paid version?

My notes from when I filed this in 2015
http://fogbugz.atomikos.com/default5859.html?community.6.3342.3

I read about this posted before in some for or another. But if you start a transaction and create lots of sql statements and even though you close them ,atomikos statement tracking will cause an out of memory error. We have the same code running with JBoss JTA and it doesn't fail on memory. It doesn't look like there is a way to fix this without code changes. It seem that if the caller code calls statement.close() that AtomikosThreadLocalConnection should remove it from its statement collection tracking. No need to track it if developer called close already. This testcase seems extreme but if your sql statements and # columns are larger, it fails with less statements. Is this fixed in paid version already?

Using: transactions-osgi-3.9.3.jar.

Run with these memory parameters on startup.
// -Xmx512M -Xms384M with TX fails somewhere after 770000/820000
// doesn't fail if useTx = false;

Here is some example code:
public static void main(String[] args)
{
boolean useTx = true;

com.atomikos.icatch.jta.UserTransactionImp imp = new com.atomikos.icatch.jta.UserTransactionImp();
com.atomikos.icatch.jta.UserTransactionManager tm = new com.atomikos.icatch.jta.UserTransactionManager();

AtomikosNonXADataSourceBean ds = new AtomikosNonXADataSourceBean();
ds.setUniqueResourceName("testds");
ds.setDriverClassName("net.sourceforge.jtds.jdbc.Driver");
ds.setUrl("jdbc:jtds:sqlserver://localhost:1433/XNET");
ds.setUser("sa");
ds.setPassword("password");
ds.setPoolSize(3);

if (useTx)
{
try
{
tm.begin();
}
catch (Exception e)
{
e.printStackTrace();
}
}

for (int cc = 0; cc < Integer.MAX_VALUE; cc++)
{
if ((cc % 10000) == 0)
{
System.out.println(cc);
}

  String sql = "SELECT " +
          cc;
  Connection conn = null;
  PreparedStatement stmt = null;

  try
  {
      conn = ds.getConnection();
      stmt = conn.prepareStatement(sql);

      stmt.executeQuery();
  }
  catch (SQLException ex)
  {
      ex.printStackTrace();
  }
  finally
  {
      try
      {
          if (stmt != null)
              stmt.close();
          if (conn != null)
              conn.close();
      }
      catch (Exception ex)
      {

      }
  }

}

if (useTx)
{
try
{
tm.commit();
}
catch (Exception e)
{
e.printStackTrace();
}
}

System.out.println("Done");
}
John Landers [Recognized User] Send private email
Tuesday, May 19, 2015

Hi,

Thanks for the feedback. This is not fixed in the commercial version but we can fix it can be fixed if need be...
Guy Pardon [Moderator] Send private email
Tuesday, May 19, 2015

Since we close all our statements. This list of non closed statements is small.

I would think a proxy around a statement would be best fix
but a quick workaround was to add iterator to remove closed connections to: AbstractConnectionProxy

protected synchronized void addStatement(Statement s)
{
    // if you always close statements this list should be really small.
    for (Iterator iter = statements.iterator(); iter.hasNext();)
    {
        try
        {
            Statement stmt = (Statement) iter.next();

            if (stmt.isClosed())
            {
                iter.remove();
            }
        }
        catch (Exception ex)
        {

        }
    }

    /* 51 */statements.add(s);
} 

how to configure JMX support for Aotmikos in version 4.0.4

Hi,
I am facing a problem when configure jmx for Atomikos in 4.0.4.
This article (https://www.atomikos.com/Documentation/TomcatSpringActiveMQMySQLJMXIntegration) shows the configuration includes JMX support for Atomikos.
BUT, I can't find class (JmxTransactionService), or even package "com.atomikos.icatch.admin.jmx", from version 4.0.4 (transactions-4.0.4.jar).
So, could you explain how to configure JMX support for Aotmikos, since version 4.0.4 (maybe 4.0+)?
Thanks a lot.

raised -4: the supplied XID is invalid for this XA resource with Tomcat 7.0.70

I just upgraded Atomikos and the following exception has been more frequent although random with Tomcat 7.0.70.

Caused by: com.atomikos.datasource.ResourceException: XA resource 'XXX_XADS': resume for XID '35312E31392E3135382E3230302E746D313532313632333330323234363030303138:35312E31392E3135382E3230302E746D3230' raised -4: the supplied XID is invalid for this XA resource

I identified some threads are not initializing the context properly as 'lookup("java:comp/UserTransaction")' has failed.
This is context.xml as recommended:

WEB-INF/web.xml

Is there any known issue or any direction to fix it?

Atomikos JMS creates transactions for an empty queue

Hi, I am trying to establish whether this is normal behavior or not. I have a springboot app running a camel route against an IBM MQ based JMS server. Everything seems to be working as you would expect having configured Atomikos to manage the 2PC for XA aside from the fact that the logs indicate that Atomikos Connection factory bean is repeatedly creating connections and transactions on a queue that is empty. It all works fine when a message is delivered and the transaction is indeed managed. I am concerned about the transactions being created on the empty queue... its noticeable on the application restart as well that there are loads of heuristic transactions that then need committing which I find a little odd so I thought best to confirm I haven't gotten something very wrong.

thanks
Paul

Bitronix to Atomikos (TransactionSynchronizationRegistry)

Hi guys,
I'm trying to convert some code written using Bitronix.
It's using the class TransactionSynchronizationRegistry, in particular the methods:
getTransactionSynchronizationRegistry().registerInterposedSynchronization(javax.transaction.Synchronization);
Does Atomikos have something similar?

Tomcat Atomikos Issue

I am using Tomcat 8.0.4. Application using Atomikos jars for transaction handling and db2 data source.

com.atomikos.icatch.service=com.atomikos.icatch.standalone.UserTransactionServiceFactory
com.atomikos.icatch.log_base_dir=/apps/logs/tomcat
com.atomikos.icatch.output_dir=${com.atomikos.icatch.log_base_dir}
com.atomikos.icatch.console_log_level=INFO
com.atomikos.icatch.max_actives=-1
spring.jta.atomikos.properties.threaded-two-phase-commit=true
com.atomikos.icatch.threaded_2pc=true
com.atomikos.icatch.default_jta_timeout=3300000
com.atomikos.icatch.max_timeout=3300000

what are the compatible versions of jars for db2 ( 1.0 / 1.4.2) and atomikos jars (3.7.1 / 4.0.4/ 4.0.6) for better transactiona handling. is there any option to autocommit the db2 transactions.

Mar 22, 2018 11:37:59 AM com.atomikos.logging.JULLogger logWarning
WARNING: XA resource 'vip_app': resume for XID '31302E3131332E3134362E3235332E746D313532313733363637393738393030303139:31302E3131332E3134362E3235332E746D3138' raised -9: the XA resource is currently involved in a local (non-XA) transaction
com.ibm.db2.jcc.am.vo: [jcc][t4][10401][12066][3.57.110] XA exception: XAER_OUTSIDE ERRORCODE=-4228, SQLSTATE=null
at com.ibm.db2.jcc.am.bd.c(bd.java:453)

getting these errors more often with each db transaction

Extra database connection

I noticed that an extra database connection is created when a connection from AtomikosDataSourceBean is requested inside a transaction. When running a below example, Oracle shows that two connections are created. One of them is closed after maxIdleTime. Another one stays open. Is it expected? Is there a way to control this connection and close it without closing the DataSource? A similar test without transaction does not create an extra connection.

import java.sql.Connection;
import java.sql.Statement;
import java.util.Properties;

import com.atomikos.icatch.jta.UserTransactionManager;
import com.atomikos.jdbc.AtomikosDataSourceBean;

public class AtomikosDSTest {
	public static void main(String[] args) {
		try {
			
			Properties props = new Properties();
			props.setProperty("URL", "jdbc:oracle:thin:@oraclesrv:1521:orcl");
			props.setProperty("user", "a");
			props.setProperty("password", "a");
			
			AtomikosDataSourceBean ds = new AtomikosDataSourceBean();
			ds.setXaProperties(props);
			ds.setUniqueResourceName("db");
			ds.setXaDataSourceClassName("oracle.jdbc.xa.client.OracleXADataSource");
			ds.setMinPoolSize(0);
			ds.setMaxPoolSize(1);
			ds.setMaxIdleTime(10);
			ds.setMaintenanceInterval(5);
			
			UserTransactionManager tm = new UserTransactionManager();
			tm.begin();
			
			Connection conn = ds.getConnection();
			Statement statement = conn.createStatement();
			statement.executeQuery("select 1 from dual");
			conn.close();
			
			tm.commit();
			
			Thread.sleep(Long.MAX_VALUE);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
}

open cursor issues with JDBCTemplate + Atomikos Non XA Datasource, any clues!

As per Spring, as it uses Template Callback pattern, developer should not be concerned about closing the resources and it works fine as well in the industry. But recently when we have tried Spring with Atomikos Non XA Datasource, we are getting Maximum open cursor issue.
is this known issue for Atomikos non XA datasource with Spring integration?

Transaction Timeouts are utilized on Thread level instead of Transaction level

We encountered the problem that in one thread with multiple transactions the transaction timeout changed during the execution from the default 10 seconds to 300 minutes. After some debugging we noticed that one transaction was defined with a transaction definition using a timeout of 300 seconds. Before this transaction was executed the timeout for all other transactions in this thread would occur after 10 seconds. After the transaction was executed the timeout for all transactions in this thread would occur after 300 seconds.

When investigating this issue further we found that in TransactionManagerImp.java the timeout is stored in a ThreadLocal variable timeoutInSecondsForNewTransactions. Due to this implementation the timeout is set the whole thread while it should be limited to the transaction on which it is defined. So if one transaction modifies the the timeout variable it will be set for the whole thread until another transaction modifies it again.

contention at sys.dbms_xa.dist_txn_sync after upgrading from 3.9.3 to 4.0.6

After upgrading atomikos from 3.9.3 to 4.0.6 in production it's been observed contention at sys.dbms_xa.dist_txn_sync. The number of calls increased a lot, it's 10 times more now.
sys.dbms_xa.dist_txn_sync procedure is always called on xa_recover, xa_commit and xa_rollback according to http://www.oracle.com/technetwork/products/clustering/overview/distributed-transactions-and-xa-163941.pdf. Oracle Doc ID 2332314.1 says it's not a bug, but it's related how application or frameworks use it.
As the number of transactions didn't change, why do we see this behavior? Is it due to new recovery process mentioned at https://fogbugz.atomikos.com/default1a5f.html?community.6.3514.11?
Is there any recommendation or any fix planned in order to optimize that?

Remove reap functionality from pool

For historical reasons it seemed like a good idea to enable the pool to take back connections from applications that behave badly. This is what we called reaping.

In retrospect, this may have been a bad idea because we are adding overhead (and bugs) to the pool in order to compensate for buggy applications.

Either way you look at it, reaping cannot be a stable solution for production environments. So it is best to let application bugs show in development or test and fix them before going live. In order to do this, we don't need any reaping.

Error in timeout of INDOUBT state: Transition not allowed: IN_DOUBT to ABANDONED

a web app deployed one many servers , when run for a period of time , any server may happen the warn logs as follows,I want to konw the reason , and how to solve them. thanks all.

2018-09-12 22:22:24,755 [Atomikos:755] WARN [com.atomikos.icatch.imp.IndoubtStateHandler] - Error in timeout of INDOUBT state: Transition not allowed: IN_DOUBT to ABANDONED 2018-09-12 22:22:24,755 [Atomikos:983] WARN [com.atomikos.icatch.imp.IndoubtStateHandler] - Error in timeout of INDOUBT state: Transition not allowed: IN_DOUBT to ABANDONED

Log corrupted - restart JVM

Hi,

We are using transaction-essentials 4.0.4 with Spring JTATransactionManager. After keeping JVM running for couple of days, we start getting below exceptions in log file -
Caused by: java.lang.IllegalStateException: could not flush state image Log corrupted - restart JVM com.atomikos.recovery.LogReadException
at com.atomikos.persistence.imp.StateRecoveryManagerImp.preEnter(StateRecoveryManagerImp.java:54)
at com.atomikos.finitestates.FSMImp.notifyListeners(FSMImp.java:164)
at com.atomikos.finitestates.FSMImp.setState(FSMImp.java:251)
at com.atomikos.icatch.imp.CoordinatorImp.setState(CoordinatorImp.java:312)
at com.atomikos.icatch.imp.CoordinatorStateHandler.commitFromWithinCallback(CoordinatorStateHandler.java:346)
at com.atomikos.icatch.imp.ActiveStateHandler$6.doCommit(ActiveStateHandler.java:267)
at com.atomikos.icatch.imp.CoordinatorStateHandler.commitWithAfterCompletionNotification(CoordinatorStateHandler.java:581)
at com.atomikos.icatch.imp.ActiveStateHandler.commit(ActiveStateHandler.java:262)
at com.atomikos.icatch.imp.CoordinatorImp.commit(CoordinatorImp.java:548)
at com.atomikos.icatch.imp.CoordinatorImp.terminate(CoordinatorImp.java:685)
at com.atomikos.icatch.imp.CompositeTransactionImp.commit(CompositeTransactionImp.java:282)
at com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:172)
... 56 more

I see same issue being discussed in forum -
https://fogbugz.atomikos.com/defaultc4d2.html?community.6.3467.0

Is fix available in latest version? What is the root cause? Does it have any impact?

Thanks
Arpit

Atomikos for EHCache 3

Any plans to support EHCache 3 ? I mean, provide TransactionManagerLookup implementation for Atomikos like Bitronix ? Thanks!

XA Recover command execute failed due to communications link failure

Hi, guys

I have used atomikos to provide XA transaction between different datasource in one user request.
everything looks good until backend recovery thread throw a communications link failure like this.

[WARN ] 08:16:49.254 [Atomikos:1] c.a.r.xa.XaResourceRecoveryManager - Error while retrieving xids from resource - will retry later...
com.mysql.jdbc.jdbc2.optional.MysqlXAException: Undetermined error occurred in the underlying Connection - check your data for consistency
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:586)
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.recover(MysqlXAConnection.java:316)
at com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection.recover(SuspendableXAConnection.java:155)
at com.atomikos.datasource.xa.RecoveryScan.recoverXids(RecoveryScan.java:32)
at com.atomikos.recovery.xa.XaResourceRecoveryManager.retrievePreparedXidsFromXaResource(XaResourceRecoveryManager.java:158)
at com.atomikos.recovery.xa.XaResourceRecoveryManager.recover(XaResourceRecoveryManager.java:67)
at com.atomikos.datasource.xa.XATransactionalResource.recover(XATransactionalResource.java:451)
at com.atomikos.icatch.imp.TransactionServiceImp.performRecovery(TransactionServiceImp.java:490)
at com.atomikos.icatch.imp.TransactionServiceImp.access$000(TransactionServiceImp.java:56)
at com.atomikos.icatch.imp.TransactionServiceImp$1.alarm(TransactionServiceImp.java:471)
at com.atomikos.timing.PooledAlarmTimer.notifyListeners(PooledAlarmTimer.java:95)
at com.atomikos.timing.PooledAlarmTimer.run(PooledAlarmTimer.java:82)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:989)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3559)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3459)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3900)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2444)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1381)
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.recover(MysqlXAConnection.java:295)
... 13 common frames omitted
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3011)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3469)
... 21 common frames omitted

I have debug the code and found recovery thread will iterate the registered JdbcTransactionalResource and send xaResource.recover(XAResource.TMSTARTRSCAN) command to retrieve xids. it seems that XAResource.TMNOFLAGS will not be send if xidsFromLastScan is empty. when recovery thread execute next time, error will happen.
I will be appreciate if you give me some hint.

thanks!

Basic info

Atomikos version: 4.0.4, 4.0.6
database: mysql 5.7.24
JDBC-driver: 5.1.42
XADataSource: com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
usage way: AtomikosDataSourceBean

XADataSource configuration

private Properties getMySQLXAProperties(final DataSourceParameter dataSourceParameter) { Properties result = new Properties(); result.setProperty("user", dataSourceParameter.getUsername()); result.setProperty("password", Optional.fromNullable(dataSourceParameter.getPassword()).or("")); result.setProperty("URL", dataSourceParameter.getUrl()); result.setProperty("pinGlobalTxToPhysicalConnection", Boolean.TRUE.toString()); result.setProperty("autoReconnect", Boolean.TRUE.toString()); result.setProperty("useServerPrepStmts", Boolean.TRUE.toString()); result.setProperty("cachePrepStmts", Boolean.TRUE.toString()); result.setProperty("prepStmtCacheSize", "250"); result.setProperty("prepStmtCacheSqlLimit", "2048"); result.setProperty("useLocalSessionState", Boolean.TRUE.toString()); result.setProperty("rewriteBatchedStatements", Boolean.TRUE.toString()); result.setProperty("cacheResultSetMetadata", Boolean.TRUE.toString()); result.setProperty("cacheServerConfiguration", Boolean.TRUE.toString()); result.setProperty("elideSetAutoCommits", Boolean.TRUE.toString()); result.setProperty("maintainTimeStats", Boolean.FALSE.toString()); result.setProperty("netTimeoutForStreamingResults", "0"); return result; }

customize configuration:

com.atomikos.icatch.serial_jta_transactions = false
com.atomikos.icatch.default_jta_timeout = 1000000
com.atomikos.icatch.max_actives = 10000
com.atomikos.icatch.recovery_delay= 30000

How to build Spring Boot Atomikos test configuration?

Hello

It could be this question was discussed at fogbugz.atomikos.com, but resource seems down for a while, nevertheless links to it and google index. This lead me to ask here.

How to create proper testing environment to be able to use database layer tests and REST endpoints tests with mocks in same application?

I have a Spring Boot application with two data sourses. To manage transactios Atomikos used. This config works fine. Now I need to create tests.

I build a test configuration and each test works fine, though when I run all test it fails. It seems to me (see stack trace) the problem is Atomikos cannot work if few Atomikos beans instantiated. I tried two solutions to make Atomikos beans instantiated just once:

  • Create one test config used for all tests (because Spring caches test context). But this not works. I think this is because Mock beans in @controller break ability of reuse Spring test context. Persistence Mapper component I use in tests are mocked in one test and same time real instance used in other test. So I see each test class runs in it's own test context.

  • Use @lazy annotation at database @configuration classes. As I thought this will ensure that bean will be instantiated only when called first time, and will be reused on further calls. But this not works either.

Here the sample project link I did to illustrate the issue. The repository includes MySQL database dump: pavlomorozov/AtomikosConfig@2bf3860)

Can anybody help me, please?

XA resource has become unavailable XID raised -7

I am getting below error in a random way. It doesn't throw error initially but after a while the error is thrown. Once I restart my server everything gets reset and error is not thrown.

XA resource 'XXXXAtomikosDataSource': resume for XID '31302E3137382E36382E3235302E746D30303031353030303138:31302E3137382E36382E3235302E746D3135' raised -7: the XA resource has become unavailable

I am using below dependencies.

org.springframework.boot spring-boot-starter-jta-atomikos 1.4.2.RELEASE And with configuration beans
@Bean(name= "userTransaction")
public UserTransaction userTransaction() throws Throwable {
   UserTransactionImp userTransactionImp = new UserTransactionImp();
   userTransactionImp.setTransactionTimeout(10000);
   return userTransactionImp;
}

@Bean
@Primary
public TransactionManager atomTransactionManager() throws Throwable {
    UserTransactionManager userTransactionManager = new UserTransactionManager();
    userTransactionManager.setForceShutdown(false);

    return userTransactionManager;
}

@Bean("atomikosTransactionManager")
public PlatformTransactionManager platformTransactionManager()  throws Throwable {
    UserTransaction userTransaction = userTransaction();
    TransactionManager transactionManager = atomTransactionManager();

    JtaTransactionManager jtaTransactionManager = new JtaTransactionManager(userTransaction, transactionManager);
    jtaTransactionManager.setAllowCustomIsolationLevels(true);

    return jtaTransactionManager;
}

@Bean(name = "atomikosDataSources")
public Map<String, DataSource> atomikosDataSources(PropertiesFactoryBean databaseProperties, Environment environment, BcusDefaultEncrytor bcusDefaultEncrytor) throws SQLException, IOException {

    List<String> databases= Collections.list(databaseProperties.getObject().propertyNames()).stream().map(key->key.toString()).filter(key-> key.contains("url")).collect(Collectors.toList());

    Map<String, DataSource> collect = databases.stream().collect(Collectors.toMap(dbName -> dbName.split("\\.")[0].toUpperCase() + "AtomikosDataSource", dbName -> {

        OracleXADataSource dataSource = null;
        try {
            dataSource = new OracleXADataSource();
            dataSource.setURL(environment.getProperty(dbName));
            dataSource.setUser(environment.getProperty("database.username"));
            dataSource.setPassword(bcusDefaultEncrytor.decryptQAPassword(environment.getProperty("database.password")));
        }
        catch (SQLException e)
        {
            LOG.error(
                    "DatabaseConditionException [errorCode= Error while configuring atomikos data sources- Could not OracleXADataSource object, errorMessage= {} ]",
                    e.getMessage());
        }
        catch (Exception e) {
            LOG.error(
                    "DatabaseConditionException [errorCode= Error while configuring atomikos data sources- Could not decrypt QA Password make sure you have proper **QA** Encryption password in your folder, errorMessage= {} ]",
                    e.getMessage());            
        }

        AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean();
        xaDataSource.setXaDataSource(dataSource);
        xaDataSource.setUniqueResourceName(dbName.split("\\.")[0].toUpperCase() + "AtomikosDataSource");
        xaDataSource.setPoolSize(5);
        return xaDataSource;
    }));
    return collect;

}

com.atomikos.icatch.HeurHazardException: XAResourceTransaction: xxxx: no XAResource to commit?

Caused by: com.mysql.jdbc.jdbc2.optional.MysqlXAException: Undetermined error occurred in the underlying Connection - check your data for consistency
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:584) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:566) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.commit(MysqlXAConnection.java:543) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection.commit(SuspendableXAConnection.java:125) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.atomikos.datasource.xa.XAResourceTransaction.commit(XAResourceTransaction.java:557) ~[transactions-jta-4.0.6.jar:?]
... 67 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_91]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_91]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_91]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_91]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:377) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.Util.getInstance(Util.java:360) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:935) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:924) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:870) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1232) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1225) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2417) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2401) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:558) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.commit(MysqlXAConnection.java:543) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection.commit(SuspendableXAConnection.java:125) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.atomikos.datasource.xa.XAResourceTransaction.commit(XAResourceTransaction.java:557) ~[transactions-jta-4.0.6.jar:?]
... 67 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 132,922 milliseconds ago. The last packet sent successfully to the server was 18,956 milliseconds ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_91]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_91]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_91]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_91]
at com.mysql.jdbc.Util.handleNewInstance(Util.java:377) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1036) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3427) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3327) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2526) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1446) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3601) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3576) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:765) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:742) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:560) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.start(MysqlXAConnection.java:507) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection.start(SuspendableXAConnection.java:172) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.atomikos.datasource.xa.XAResourceTransaction.resume(XAResourceTransaction.java:297) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.datasource.xa.session.BranchEnlistedStateHandler.(BranchEnlistedStateHandler.java:40) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.datasource.xa.session.NotInBranchStateHandler.checkEnlistBeforeUse(NotInBranchStateHandler.java:46) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.datasource.xa.session.TransactionContext.checkEnlistBeforeUse(TransactionContext.java:70) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.datasource.xa.session.SessionHandleState.notifyBeforeUse(SessionHandleState.java:160) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.jdbc.AtomikosConnectionProxy.enlist(AtomikosConnectionProxy.java:207) ~[transactions-jdbc-4.0.6.jar:?]
at com.atomikos.jdbc.AtomikosConnectionProxy.invoke(AtomikosConnectionProxy.java:122) ~[transactions-jdbc-4.0.6.jar:?]
at com.sun.proxy.$Proxy99.createStatement(Unknown Source) ~[?:?]
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:402) ~[spring-jdbc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:474) ~[spring-jdbc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:484) ~[spring-jdbc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:510) ~[spring-jdbc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at com.ais.cs.ddi.frame.jdbc.DBOperation.getRowsMapList(DBOperation.java:165) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.frame.jdbc.DBOperation.getRowsMapList(DBOperation.java:132) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.frame.jdbc.DBOperation.getRows(DBOperation.java:186) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.frame.jdbc.DBOperation$$FastClassBySpringCGLIB$$e649bfca.invoke() ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:721) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:656) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at com.ais.cs.ddi.frame.jdbc.DBOperation$$EnhancerBySpringCGLIB$$6add66c5.getRows() ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.service.persistence.PersistenceServiceImpl.getRows(PersistenceServiceImpl.java:92) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.service.persistence.PersistenceServiceImpl.getRows(PersistenceServiceImpl.java:40) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.service.business.CRUDBusinessServiceImpl.listQueryService(CRUDBusinessServiceImpl.java:1845) ~[csmf-core-4.2.0-SNAPSHOT.jar:?]
at sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_91]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_91]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
... 47 more
Caused by: java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_91]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_91]
at java.net.SocketInputStream.read(SocketInputStream.java:170) ~[?:1.8.0_91]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_91]
at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:100) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:143) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:173) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2911) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3337) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3327) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2435) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2582) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2526) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1446) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3601) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.ConnectionImpl.isReadOnly(ConnectionImpl.java:3576) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:765) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:742) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:560) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.start(MysqlXAConnection.java:507) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.mysql.jdbc.jdbc2.optional.SuspendableXAConnection.start(SuspendableXAConnection.java:172) ~[mysql-connector-java-5.1.34.jar:5.1.34]
at com.atomikos.datasource.xa.XAResourceTransaction.resume(XAResourceTransaction.java:297) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.datasource.xa.session.BranchEnlistedStateHandler.(BranchEnlistedStateHandler.java:40) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.datasource.xa.session.NotInBranchStateHandler.checkEnlistBeforeUse(NotInBranchStateHandler.java:46) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.datasource.xa.session.TransactionContext.checkEnlistBeforeUse(TransactionContext.java:70) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.datasource.xa.session.SessionHandleState.notifyBeforeUse(SessionHandleState.java:160) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.jdbc.AtomikosConnectionProxy.enlist(AtomikosConnectionProxy.java:207) ~[transactions-jdbc-4.0.6.jar:?]
at com.atomikos.jdbc.AtomikosConnectionProxy.invoke(AtomikosConnectionProxy.java:122) ~[transactions-jdbc-4.0.6.jar:?]
at com.sun.proxy.$Proxy99.createStatement(Unknown Source) ~[?:?]
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:402) ~[spring-jdbc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:474) ~[spring-jdbc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:484) ~[spring-jdbc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.queryForList(JdbcTemplate.java:510) ~[spring-jdbc-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at com.ais.cs.ddi.frame.jdbc.DBOperation.getRowsMapList(DBOperation.java:165) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.frame.jdbc.DBOperation.getRowsMapList(DBOperation.java:132) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.frame.jdbc.DBOperation.getRows(DBOperation.java:186) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.frame.jdbc.DBOperation$$FastClassBySpringCGLIB$$e649bfca.invoke() ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) ~[spring-core-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:721) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:656) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at com.ais.cs.ddi.frame.jdbc.DBOperation$$EnhancerBySpringCGLIB$$6add66c5.getRows() ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.service.persistence.PersistenceServiceImpl.getRows(PersistenceServiceImpl.java:92) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.service.persistence.PersistenceServiceImpl.getRows(PersistenceServiceImpl.java:40) ~[csmf-persistance-4.2.0-SNAPSHOT.jar:?]
at com.ais.cs.ddi.service.business.CRUDBusinessServiceImpl.listQueryService(CRUDBusinessServiceImpl.java:1845) ~[csmf-core-4.2.0-SNAPSHOT.jar:?]
at sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_91]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_91]
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282) ~[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE]
... 47 more
2018-01-16 20:43:34,392-[HL] ERROR Atomikos:22 com.atomikos.datasource.xa.XAResourceTransaction:22 - XAResourceTransaction: 31302E32312E34302E372E746D313531363130363532313639313030343334:31302E32312E34302E372E746D323838: no XAResource to commit?
2018-01-16 20:43:34,392-[HL] ERROR Atomikos:22 com.atomikos.datasource.xa.XAResourceTransaction:22 - XAResourceTransaction: xxx : no XAResource to commit?
2018-01-16 20:43:34,392-[HL] ERROR Atomikos:22 com.atomikos.icatch.imp.CommitMessage:47 - Unexpected error in commit
com.atomikos.icatch.HeurHazardException: XAResourceTransaction: xxxx: no XAResource to commit?
at com.atomikos.datasource.xa.XAResourceTransaction.commit(XAResourceTransaction.java:529) ~[transactions-jta-4.0.6.jar:?]
at com.atomikos.icatch.imp.CommitMessage.send(CommitMessage.java:52) [transactions-4.0.6.jar:?]
at com.atomikos.icatch.imp.CommitMessage.send(CommitMessage.java:23) [transactions-4.0.6.jar:?]
at com.atomikos.icatch.imp.PropagationMessage.submit(PropagationMessage.java:67) [transactions-4.0.6.jar:?]
at com.atomikos.icatch.imp.Propagator$PropagatorThread.run(Propagator.java:63) [transactions-4.0.6.jar:?]
at com.atomikos.icatch.imp.Propagator.submitPropagationMessage(Propagator.java:42) [transactions-4.0.6.jar:?]
at com.atomikos.icatch.imp.HeurHazardStateHandler.onTimeout(HeurHazardStateHandler.java:71) [transactions-4.0.6.jar:?]
at com.atomikos.icatch.imp.CoordinatorImp.alarm(CoordinatorImp.java:650) [transactions-4.0.6.jar:?]
at com.atomikos.timing.PooledAlarmTimer.notifyListeners(PooledAlarmTimer.java:95) [atomikos-util-4.0.6.jar:?]
at com.atomikos.timing.PooledAlarmTimer.run(PooledAlarmTimer.java:82) [atomikos-util-4.0.6.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_91]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_91]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]

Atomikos for HP Vertica

Hello,

Has anyone set up Atomikos for HP Vertica DB. When i look at Vertica version 7 (/8/9) , I do not see any class that implements javax.sql.XADataSource.

I am not sure how to set it up with Spring, Hibernate, Atomikos.

Please help !

Thanks and Regards,
Radhika Ganesan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.