You need to set it via the property, transport.jms.DurableSubscriberClientID and not set it to true. Also this can be a proxy service level parameter so that you can define different client ids for different proxy services.
Hope this helps. Rajika On Tue, Aug 14, 2012 at 12:01 PM, Wright, Peter <[email protected]>wrote: > Hi, > > I want to define a JMS listener as a durable subscription, > but always get an error message that the client-id is null. > I'm using IBM MQ as the messaging provider. > > I've attached the error messages and my axis2 JMS config. > > Running synapse 2.1.0 on solaris 10. > > Thanks for any help, > Peter > > -------------------------------------------- > > Error Messages > > 2012-08-14T08:16:33,INFO ,mdzhsfesb01,MSGMED,SynapseServer.java:70,Apache > Synapse started successfully > 2012-08-14T08:16:34,ERROR,mdzhsfesb01,MSGMED,ServiceTaskManager.java:965,Error > creating JMS consumer for service : JMS_XML_Proxy > com.ibm.msg.client.jms.DetailedInvalidClientIDException: JMSCC0101: The > client ID cannot be null. Specify a non-null client ID. > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > at java.lang.reflect.Constructor.newInstance(Constructor.java:513) > at > com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:313) > at > com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:388) > at > com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:104) > at > com.ibm.msg.client.jms.internal.JmsSessionImpl.createDurableSubscriber(JmsSessionImpl.java:964) > at > com.ibm.mq.jms.MQSession.createDurableSubscriber(MQSession.java:467) > at > org.apache.axis2.transport.jms.JMSUtils.createConsumer(JMSUtils.java:632) > at > org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.createConsumer(ServiceTaskManager.java:839) > at > org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.getMessageConsumer(ServiceTaskManager.java:710) > at > org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.receiveMessage(ServiceTaskManager.java:478) > at > org.apache.axis2.transport.jms.ServiceTaskManager$MessageListenerTask.run(ServiceTaskManager.java:409) > at > org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > > -------------------------------------------- > > axis2.xml > > <transportReceiver name="jms" > class="org.apache.axis2.transport.jms.JMSListener"> > <parameter name="java.naming.factory.initial" > locked="false">com.sun.jndi.ldap.LdapCtxFactory</parameter> > <parameter name="java.naming.provider.url" > locked="false">ldap://server:port/myDn</parameter> > <parameter name="transport.jms.ConnectionFactoryType" > locked="false">topic</parameter> > <parameter name="transport.jms.ConnectionFactoryJNDIName" > locked="false">cn=TCF-FINESB-POS-SED1.EU.DEV.01</parameter> > <parameter name="transport.jms.ConnectionFactory" > locked="false">cn=TCF-FINESB-POS-SED1.EU.DEV.01</parameter> > <parameter name="transport.jms.Destination" > locked="false">cn=sed.finesb.pos.fkism.cust</parameter> > <parameter name="transport.jms.DestinationType" > locked="false">topic</parameter> > <parameter name="java.naming.security.principal" > locked="false">myLoginDn</parameter> > <parameter name="java.naming.security.credentials" > locked="false">myPassword</parameter> > <parameter name="transport.jms.SubscriptionDurable" > locked="false">true</parameter> > <parameter name="transport.jms.DurableSubscriberName" > locked="false">msgmed.DEV1</parameter> > <parameter name="transport.jms.DurableSubscriberClientID" > locked="false">true</parameter> > </transportReceiver> > > > The content of this e-mail is intended only for the confidential use of > the person addressed. > If you are not the intended recipient, please notify the sender and delete > this email immediately. > Thank you. >
