activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric (JIRA)" <>
Subject [jira] Commented: (AMQ-2320) Session are not deleted when several processes terminate simultaneously in a "network of broker" complex configuration
Date Thu, 16 Jul 2009 16:20:33 GMT


Eric commented on AMQ-2320:

Hi !

I didn't make the tests you asked me. But I have some news.

I used ConsumerEventSource objects to track consumers activity on JMS destinations. And I
found that I didn't manage correctly the stop() calls to these objects.

I corrected my code. I think now that all my JMS ressources (consumers,producers, sessions,
connections), brokers, and now ConsumerEventSource objects, are stopped and closed when I
ask my processes to disconnect from my brokers correctly, or when my connection exceptionListeners
discover that my network connectivity is broken (in this case, JMSException thrown by JMS
calls to close() are ignored).

In these conditions, it seems that all ActiveMQ Session threads are correctly stopped without
having to interrupt them. I have to do more tests to confirm this.

I don't know if this is the waited behaviour or not.


> Session are not deleted when several processes terminate simultaneously in a "network
of broker" complex configuration
> ----------------------------------------------------------------------------------------------------------------------
>                 Key: AMQ-2320
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.2.0
>         Environment: Linux Redhat. JVM 1.6. AMQ 5.2
>            Reporter: Eric
>         Attachments: Pb AMQ Session.JPG
> I would like to add a schema. I hope I will be able to add it later. I don't see it
> I have 3 processes with one embedded broker (BSV, client, server) in the same network
of brokers (non duplex but bi-directionnal).
> I have a fourth standalone broker
> My "client" and my "server" process are connected a second time with a "manual" tcp connection
to the BSV process.
> My "client" and my "server" process are connected a third time with a "manual" tcp connection
on the standalone broker.
> In this case, if my process BSV is stopped by an interrupt (CTRL-C) (which closes the
embedded connection, and the embedded broker), and if simultaneously, I want to stop gracefully
my "client" process (close all session, close all "manual" connection, stop embedded broker),
one session thread stays up and never terminates
> "ActiveMQ Session:" prio=10 tid=0x000000000e83a400
nid=0x5749 in Object.wait() [0x00000000469c8000..0x00000000469c8d10]
>    java.lang.Thread.State: WAITING (on object monitor)
>       at java.lang.Object.wait(Native Method)
>       - waiting on <0x00002aaaca868380> (a java.lang.Object)
>       at java.lang.Object.wait(
>       at org.apache.activemq.thread.DedicatedTaskRunner.runTask(
>       - locked <0x00002aaaca868380> (a java.lang.Object)
>       at org.apache.activemq.thread.DedicatedTaskRunner$
> It is a session associated with the BSV link (I don't know if it is a session associated
with the network of broker, or a session associated with my manual connection)
> A CTRL-C on the process terminates the process
> It doesn't happen if stop are not simultaneously done.
> Eric-AWL

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

View raw message