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: ID:td0sib01s.priv.atos.fr-51590-1247070640728-0:2:3" 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)
- locked <0x00002aaaca868380> (a java.lang.Object)
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.