Just giving you a status report:
I've just run 55 threads against my pool (configured to a max of 20
connections) and haven't seen any big problem. The only exception I've seen
was
java.lang.IllegalStateException: deque is full
at
org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor$PoolD
eque.addLast(SinglePoolConnectionInterceptor.java:250)
at
org.apache.geronimo.connector.outbound.SinglePoolConnectionInterceptor.retur
nConnection(SinglePoolConnectionInterceptor.java:198)
at
org.apache.geronimo.connector.outbound.SubjectInterceptor.returnConnection(S
ubjectInterceptor.java:88)
at
org.apache.geronimo.connector.outbound.TransactionEnlistingInterceptor.retur
nConnection(TransactionEnlistingInterceptor.java:89)
at
org.apache.geronimo.connector.outbound.TransactionCachingInterceptor.returnC
onnection(TransactionCachingInterceptor.java:80)
at
org.apache.geronimo.connector.outbound.ConnectionHandleInterceptor.returnCon
nection(ConnectionHandleInterceptor.java:70)
at
org.apache.geronimo.connector.outbound.ConnectionTrackingInterceptor.returnC
onnection(ConnectionTrackingInterceptor.java:88)
at
org.apache.geronimo.connector.outbound.GeronimoConnectionEventListener.conne
ctionClosed(GeronimoConnectionEventListener.java:65)
at
org.openejb.resource.jdbc.JdbcManagedConnection.connectionClose(JdbcManagedC
onnection.java:226)
at
org.openejb.resource.jdbc.JdbcConnection.close(JdbcConnection.java:165)
Seems like a returnConnection phased tryed to add a connection to the pool
already filled. (Semaphore issue?)
Cheers,
hammett