Connector Lazy Activation leaks managed connections
---------------------------------------------------

                 Key: GERONIMO-2800
                 URL: https://issues.apache.org/jira/browse/GERONIMO-2800
             Project: Geronimo
          Issue Type: Bug
      Security Level: public (Regular issues)
          Components: connector
    Affects Versions: 2.0-M2
            Reporter: Kevan Miller
         Assigned To: Kevan Miller
             Fix For: 2.0-beta1


GERONIMO-2715 added "lazy connection" support to geronimo-connector. 

I'm seeing problems where connectors are not being reused properly. The result 
is that connectors are not being returned to their pool. Eventually, the pool 
of available connections is exhausted and no more connections can be obtained 
from the pool.

The basic scenario is:

Connection c = ConnectionFactory.createConnection();
c.close();
c.close();

Connection newC = ConnectionFactory.createConnection();
newC.close();

On the first c.close(), the connectionInfo is disassociated from the 
ConnectionProxy. However, on the second c.close(), connectionInfo is 
re-associated with the ConnectionProxy. However, since the second close() call 
is idempotent, the connection never leaves the pool. When a new Connection is 
created, the connection is re-used from the pool, but has two ConnectionInfo's 
being tracked as handles. This extra handle prevents the ConnectionInfo from 
ever being returned to the pool.

I'm a relative novice when it comes to our Connector implementation. It's 
possible that I'm missing another point where the problem could be fixed. 
However, I don't see it. I'm also worried about concurrency issues with the 
current approach.

I plan on setting lazyConnect to false in the transaction-jta11 and 
client-transaction configs. If there aren't ideas on fixing, I think we'll want 
to revert the lazy connection code...

  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to