activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raul Kripalani (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AMQ-4225) PooledConnectionFactory should track Session checkouts and close associated resources
Date Sun, 16 Dec 2012 18:00:12 GMT
Raul Kripalani created AMQ-4225:
-----------------------------------

             Summary: PooledConnectionFactory should track Session checkouts and close associated
resources
                 Key: AMQ-4225
                 URL: https://issues.apache.org/jira/browse/AMQ-4225
             Project: ActiveMQ
          Issue Type: Improvement
    Affects Versions: 5.7.0
            Reporter: Raul Kripalani


When the user's code closes a Connection checked out from the pool, I would expect activemq-pool
to close Sessions, MessageConsumers and MessageProducers that were created from it. 

Unfortunately, activemq-pool only cleans up Sessions on Connection.close() when no one else
is referencing the Connection (referenceCount == 0). 

This makes Sessions, Consumers and Producers outlive the code that actually uses them, thus
leading to increased resource consumption and messages being trapped in prefetch buffers that
are no longer monitored.

Instead, we should keep track of the Sessions that were created from each specific Connection
checkout, and close them when the borrowed Connection is closed.

Otherwise we bump into situations like [SPR-10092|https://jira.springsource.org/browse/SPR-10092]
when using Spring's DefaultMessageListenerContainer. In some cases DMLC "forgets" to explicitly
close MessageConsumers and Sessions, even though Connections are always closed, but the pool
doesn't take care of cleaning up associated sessions.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message