Atomikos Forum

Invalid XAConenctions are not removed from the pool

Hello,

we are using version 3.5.5 of Atomikos. We were doing test of how the reconnection after a DB crash is working. In the first step we killed all sessions on our DB (Oracle 10g).
It was visibile that Atomikos datasource pool was reusing still this sessions although they were killed. There were never used new connections. This forced us to restart our software. While debugging the source code, we found the following, that looked strange to us (see  AtomikosXAPooledConnection)

protected void testUnderlyingConnection() throws CreateConnectionException {
        if ( isErroneous() ) new CreateConnectionException ( this + ": connection is erroneous" );
        
Although it was acknowledged that the connection was in a bad state (isErroneous return TRUE), no handling is done, as NO exception is thrown.

We changed this to:
    protected void testUnderlyingConnection() throws CreateConnectionException {
        if ( isErroneous() ) {
            throw new CreateConnectionException ( this + ": connection is erroneous" );
        }

So in this case an exception is thrown and the connection is not used anymore.
Could someone confirm, if this is a valid change or not.

Nevertheless, we made really great progress through your TM and all the resouces on your page.

Thanks a lot.
Tobias Stolz Send private email
Wednesday, August 05, 2009
 
 
Thanks, good point!

I added a case for our next release in order to fix this.

Guy
Guy Pardon Send private email
Wednesday, August 05, 2009
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics