You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "james strachan (JIRA)" <de...@geronimo.apache.org> on 2005/11/17 19:01:41 UTC

[jira] Resolved: (GERONIMO-1155) ActiveMQSessions build up during DayTrader execution

     [ http://issues.apache.org/jira/browse/GERONIMO-1155?page=all ]
     
james strachan resolved GERONIMO-1155:
--------------------------------------

    Resolution: Fixed

patch applied, thanks!

> ActiveMQSessions build up during DayTrader execution
> ----------------------------------------------------
>
>          Key: GERONIMO-1155
>          URL: http://issues.apache.org/jira/browse/GERONIMO-1155
>      Project: Geronimo
>         Type: Bug
>   Components: ActiveMQ
>     Versions: 1.0-M5
>  Environment: Suse / JDK 1.4
>     Reporter: Kevan Miller
>      Fix For: 1.0
>  Attachments: RemoveSession.patch, RemoveSessionUnified.patch
>
> While running DayTrader, the server got an OutOfMemoryException. At the time of failure, there were over 17,000 ActiveMQSession instances registered with an ActiveMQ TransactionContext. I believe that Sessions are being registered with the ActiveMQManagedConnection TransactionContext, but will never be unregistered via TransactionContext.removeSession(Session).
> In a standalone environment, the TransactionContext is owned by the Session. So, a Session does not need to be removed from the TransactionContext. Their lifetimes are the same. 
> In a ManagedConnection environment, a TransactionContext is created for the ActiveMQManagedConnection. An RATransactionContext is generated for each new Session. This RATransactionContext will proxy any Session registrations to the ManagedConnection TransactionContext. So, each new Session will be registered with the ManagedConnection TransactionContext, but never removed.
> The above is from my reading of the code. I don't currently have an environment where I can directly test this. Hope to have some empirical results, tomorrow.
> The obvious fix is to add the following to ActiveMQSession.doClose():
>     this.transactionContext.removeSession(this);
> I'll post a patch. Let me know if I'm missing something...

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira