I'm coming across a problem where an exception is raised after server based connection pool connection has the setAutoCommit(false) method run:
03/Jul/2004:10:15:56] SEVERE ( 8864): RAR5040:Cannot get local connection com.sun.enterprise.resource.PoolingException: I/O Error: Got minus one from a read call. at com.sun.enterprise.resource.JdbcUrlAllocator.createResource(JdbcUrlAllocator.java:100) at com.sun.enterprise.resource.IASNonSharedResourcePool.internalGetResource(IASNonSharedResourcePool.java:742) at com.sun.enterprise.resource.IASNonSharedResourcePool.getResource(IASNonSharedResourcePool.java:520) at com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:263) at com.sun.enterprise.resource.JdbcXAConnection$JdbcConnection.getCurrentConnection(JdbcXAConnection.java:637) at com.sun.enterprise.resource.JdbcXAConnection$JdbcConnection.setAutoCommit(JdbcXAConnection.java:402) at com.aramco.gps.dao.ConnectionManager.getConnection(ConnectionManager.java:46)
is there anyway a connection can be passed back to the pool in a dirty state? for instance prior to a commit/rollback.
any ideas what a "minus one from read call" means?
also - does the setAutoCommit() method communicate in anyway with the backend database? so for instance, could this error be as a result of a connection that is "valid" to the server connection pool, but say a network error causes the exception when the setAutoCommit() communication occurs.
i can't reproduce this error. it's on Sun ONE AS 7.0.
We are also facing exaclty same problem while getting connections from Connection Pool. This error is happening in all Sun ONE AS versions from 7. We are not able to recreate this issue in our test environment.
We see a pattern for this issue, Whenever there is good load in the server, swapping back connections to requests and pool is giving issues. I am sure that the connection becomes stale at some point of time in pool. We are not able to find why ? Connection validation is not working the way it should.