On Jan 17, 2012, at 7:54 AM, Robbie Gemmell wrote:

> Hi all,
> 
> I would like to propose a change to make the Java clients session
> Dispatcher thread be set non-daemon if a MessageListener is present on
> the session, with a new configuration option to allow manipulating
> this behaviour.
> 
> Historically, for the 0-8/0-9/0-9-1 client the use of Mina kept the
> JVM alive when a MessageListener was set, allowing asynchronous
> delivery to continue without the user having taken any explicit action
> to keep the JVM alive. Since we removed Mina this is no longer the
> case, and if there are no non-daemon threads then the JVM will now
> exit even though the user has set a MessageListener set. Investigating
> other providers suggests the typical behaviour is to make use of
> non-daemon threads by default, preventing this happening, but allowing
> users who desire that behaviour to configure it as such.
> 
Seems reasonable to me especially given the option to turn this on or off.

> For example, tibco seem to do exactly what I am proposing with their
> Dispatcher threads:
> https://docs.tibco.com/pub/enterprise_message_service/6.1.0-august-2011/doc/html/tib_ems_api_reference/api/javadoc/com/tibco/tibjms/Tibjms.html#PROP_DAEMON_DISPATCHER
> 
> ActiveMQ seems to control this through transport options, defaulting
> to non-daemon threads with an option to reconfigure it:
> http://activemq.apache.org/tcp-transport-reference.html
> 
> Given this seems to be the adopted practice for other JMS providers it
> would seem like a good thing to standardise on, making it easier for
> people to pick up Qpid and try it with existing code they might have.
> Making this change is basically noticable to anyone already working
> round the all-daemon-thread behaviour of the client, but not making it
> could be fairly dissruptive for anyone looking to upgrade and running
> into it for the first time.
> 
Agreed. Good research BTW for other JMS providers. Given what you have found 
out I think the change makes sense.
> Thoughts?
> 
> Robbie.
> 
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:[email protected]
> 


---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to