Hello. Hope that this question will be answered easily by some of you.
I am trying to use a DurableSubscriber in my servlet so that the messages
posted to the Topic while the subscriber is inactive can be received. This is
what I do in init()
resultTopic = (Topic)jndiContext.lookup(RESULT_JNDI_NAME));
TopicConnectionFactory cf = (TopicConnectionFactory)jndiContext.
lookup(CONNECTION_FACTORY));
topicConn = cf.createTopicConnection();
//m_topicConn.setClientID("ID:1");
resultSession = topicConn.createSession(false, Session.AUTO_ACKNOWLEDGE);
durSubscriber = resultSession.createDurableSubscribe (resultTopic,
"MySubscriber");
topicConn.start();
And in the destroy() method I do:
durSubscriber.close();
topicConn.stop();
resultSession.close();
topicConn.close();
The first time I run everything works fine, a subscriber is created and I
get all the messages. If I see in the rms_subscriptions table I see
"ID:1 MySubscriber ResultTopic" row.
The problem is that if I stop and start my JBoss Server, instead of re-using
the same subscription a new subscription is created and in the
rms_subscriptions table I see 2 rows:
"ID:1 MySubscriber ResultTopic"
"ID:3 MySubscriber ResultTopic"
As you can see the IDs are different. I am not sure how to reuse my previous
DurableSubscription. I tried to setClientID to the topicConnection by doing:
//m_topicConn.setClientID("ID:1"); and I get an exception:
javax.servlet.ServletException: InitServlet.initJms():
javax.jms.InvalidClientIDException: This client id 'ID:1' is already registered!
I did a little more digging and found this in the jbossmq-service.xml file:
<!--
| The ClientReconnectInterceptor is used to allow a client to connect to
the server even
| if it's clientID is allready being used by another client. This
interceptor will disconnect
| the previously connected client to allow the new connection to succeed.
This is not enabled
| by default since the JMS spec states that the 2nd client connecting to
the server with the same
| id should get an exception.
-->
<!--
org.jboss.mq.server.ClientReconnectInterceptor
<depends
optional-attribute-name="NextInterceptor">jboss.mq:service=DestinationManager
-->
But I am not sure if this is the correct way to re-use the same
DurableSubscriber. Needing directions on what to do.
Thanks in advance for your help
Praveen
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3873977#3873977
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3873977
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user