-
Bug
-
Resolution: Cannot Reproduce
-
Major
-
None
-
jboss-fuse-6.3
-
None
-
ALL
-
Medium
-
- Production environment doesn't seem to follow aries.xa.poolMaxSize = 1000; aries.xa.poolMinSize = 180 because from netstat output we find that connection count to db(3307) is less < 180 at the time issue occurred. Expectation is that minimum connection should always be 180.
- This leads to below Exception in logs at 2018-02-20 21:09:33,556. This time connection to db as per netstat is 31.
Caused by: java.sql.SQLException at org.tranql.connector.jdbc.TranqlDataSource.getConnection(TranqlDataSource.java:67)[198:org.apache.aries.transaction.jdbc:2.1.1] at Proxyb3dff109_7e7a_4576_8cde_4d9559ba4cb8.getConnection(Unknown Source)[:] at org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getConnection(DelayedLookupDataSource.java:36)[195:org.apache.aries.jpa.container:1.0.2] at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:70)[283:org.hibernate.entitymanager:4.2.20.Final-redhat-1] at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:301)[282:org.hibernate.core:4.2.20.Final-redhat-1] at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:214)[282:org.hibernate.core:4.2.20.Final-redhat-1] ... 122 more Caused by: javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 120000 [ms] ) for pool org.apache.geronimo.connector.outbound.SinglePoolMatchAllConnectionInterceptor@713afae9 at org.apache.geronimo.connector.outbound.AbstractSinglePoolConnectionInterceptor.getConnection(AbstractSinglePoolConnectionInterceptor.java:86)[236:org.apache.geronimo.components.geronimo-connector:3.1.1] at org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.getConnection(TransactionEnlistingInterceptor.java:49)[236:org.apache.geronimo.components.geronimo-connector:3.1.1] at org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.getConnection(TransactionCachingInterceptor.java:101)[236:org.apache.geronimo.components.geronimo-connector:3.1.1] at org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.getConnection(ConnectionHandleInterceptor.java:43)[236:org.apache.geronimo.components.geronimo-connector:3.1.1] at org.apache.geronimo.connector.outbound.TCCLInterceptor.getConnection(TCCLInterceptor.java:39)[236:org.apache.geronimo.components.geronimo-connector:3.1.1] at org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.getConnection(ConnectionTrackingInterceptor.java:66)[236:org.apache.geronimo.components.geronimo-connector:3.1.1] at org.apache.geronimo.connector.outbound.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:81)[236:org.apache.geronimo.components.geronimo-connector:3.1.1] at org.tranql.connector.jdbc.TranqlDataSource.getConnection(TranqlDataSource.java:62)[198:org.apache.aries.transaction.jdbc:2.1.1] ... 127 more
- In lower environment, customer doesn't see this issue, with same configurations 180 connections are created.
- Logs, Heapdump, Datasource_Configurations, Thread-dump and netstat output, here
- netstat_output_20180220.log is having multiple output of 'netstat -anp|grep <process_id>'. These output are taken in every two minute. Total 67 times netstat output is being captured in this file.
[cpandey@cpandey Downloads]$ grep "Tue Feb 20" netstat_output_20180220.log |wc -l
67
- If we find number of connection to port 3307(mysql).
#Tue Feb 20 21:00:01 GMT 2018 [cpandey@cpandey Downloads]$ less single_netstat.txt |grep 3307|wc -l 31 #Tue Feb 20 23:12:01 GMT 2018 [cpandey@cpandey Downloads]$ less single_netstat.txt |grep 3307|wc -l 203 [cpandey@cpandey Downloads]$
- We see within two hours number of connections increased from 31 to 203. But interesting part is that aries.xa.poolMinSize = 180, so it was expected that minimum connection should always be 180. Somehow configurations are not respected.
aries.xa.poolMaxSize = 1000 aries.xa.poolMinSize = 180