activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <james.strac...@gmail.com>
Subject Re: durable subscriptions
Date Wed, 07 Feb 2007 08:34:14 GMT
On 2/6/07, Suchitha Koneru (sukoneru) <sukoneru@cisco.com> wrote:
> Thank you so much James.
> Which version of active mq support durable subscriptions,

All of them since 1.0


> As of now, I am using the following jars , in regard to active mq
>
> activemq-core-4.0.1.jar
> backport-util-concurrent-2.1.jar
> geronimo-j2ee-management_1.0_spec-1.0.jar
> geronimo-jms_1.1_spec-1.0.jar
> incubator-activemq-4.0.2.jar
>
>
> Please let me know, if I am understanding it correctly.
> 1) First approach
>   Configuring durable subscriptions  on the ActiveMQConnectionFactory
> object.
> In the conf/context.xml  , I'll add the clientID as follows
>
> <Resource name="jms/ConnectionFactory"
>                         auth="Container"
>
> type="org.apache.activemq.ActiveMQConnectionFactory"
>                         description="JMS Connection Factory"
>                 factory="org.apache.activemq.jndi.JNDIReferenceFactory"
>                 brokerURL="tcp://localhost:61616"
>                 brokerName="LocalActiveMQBroker"
>                 clientID = "CMD"
>                 />
>
> 2) Second Approach
>       The code that creates the Connection can specify the ClientID
> before calling start();
>
>  Ictx = new javax.naming.InitialContext();
> envContext = (Context)Ictx.lookup("java:comp/env");
> //lookup the connection factory
> javax.jms.TopicConnectionFactory factory =
> (javax.jms.TopicConnectionFactory)envContext.lookup("jms/ConnectionFacto
> ry");
> HerbieConnection = factory.createTopicConnection();
> HerbieConnection.setClientID("CMD");
> HerbieConnection.start();

Yes - either of those is fine.

Also remember to use the right JMS API to create a durable subscriber,
giving a unique subscriber name too

http://java.sun.com/j2ee/1.4/docs/api/javax/jms/Session.html#createDurableSubscriber(javax.jms.Topic,%20java.lang.String)

Its the combination of clientID and subscriber name which identify the
durable subscription. (And the JMS spec insists that clientID must be
globally unique - an attempt to create 2 connections with the same ID
will cause the 2nd connection attempt to fail)

-- 

James
-------
http://radio.weblogs.com/0112098/

Mime
View raw message