2009/3/5 akuhtz <andreas.ku...@siemens.com>: > > There is currently no code to unsubscribe a durable subscriber as Camel uses > the XXMessageListenerContainer classes from the spring framework and inside > the spring code there is no unsubscribe code. I solved this yesterday by > making a copy of the (in my case) SimpleMessageListenerContainer and added > the unsubscribe code to the doShutdown() method (I couldn't just extend from > SimpleMessageListenerContainer and overwrite doShutdown() because the > consumers are private and no protected access method exists, and between > close the consumers and close the session there is (unfortunately) no > callback where the unsubcribe could be executed. > > If you find another solution without copying the class please let me know > :-)
BTW whether the subscription is closed using an unsubscribe or if the process hosting the consumer just dies - its the same thing from a JMS provider's perspective. i.e. closing a durable topic subscriber does not terminate the durable subscription. The whole point of a durable topic subscription is to keep going while the consumer is not running any more. There's no JMS API to terminate a durable subscription - unfortunately thats JMS provider specific and usually achieved using MBeans or some provider specific console -- James ------- http://macstrac.blogspot.com/ Open Source Integration http://fusesource.com/