Thanks Christian. I will give this test a try. In the meantime I've had to revert to using the MQ API directly. There are too many MQ specific things we need to do that I don't know how to do in camel jms. For example, when first accessing the queue, we are required to set certain options, e.g.,
int openOptions = MQConstants.MQOO_OUTPUT | MQConstants.MQOO_SET_IDENTITY_CONTEXT; MQQueue queue = qMgr.accessQueue(queueName, openOptions); Anyone have any idea how we'd do this in camel jms? Christian Mueller wrote > We have a unit test [1] which make sure it works (at least with ActiveMQ). > May be it's a limitation of WebSphereMQ? Unfortunately I cannot test it, > but may be you can run this test against WebSphereMQ? > > [1] > https://svn.apache.org/repos/asf/camel/tags/camel-2.10.2/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleHeaderTest.java > > Best, > Christian > > On Mon, Nov 5, 2012 at 2:18 PM, bung_ho < > bung_ho@ > > wrote: > >> Hi, are you saying if I use > <setHeader> > before the > <to >> > uri="testjms:queue:testqueue"/> in the route, then those camel headers > will >> automatically be added as headers on the eventual JMS message? >> >> I had tried earlier to use an intermediate bean and in its code I simply >> did >> exchange.getIn().setHeader(...) but nothing ever made it to the final jms >> message. >> >> Thanks >> >> >> Claus Ibsen-2 wrote >> > Hi >> > >> > If you want to set this from XML then you can possible do >> > > <from ...> >> > > <setHeader headerName="JMS_IBM_MQMD_UserIdentifier"> >> > > <simple >> > > resultType="String"> >> > JoeBlogs >> > > </simple> >> > > </setHeader> >> > > <setHeader headerName="XXX"> >> > > <simple resultType="Integer"> >> > 5 >> > > </simple> >> > > </setHeader> >> > eg using the simple language to set a value, and define the type using >> > resultType. >> > >> > For the WMQConstants.WMQ_MDCTX_SET_IDENTITY_CONTEXT you would need to >> > get the actual String value they represent. >> > And us the string value in the XML. >> > >> > >> > On Sun, Nov 4, 2012 at 7:00 PM, bung_ho < >> >> > bung_ho@ >> >> > > wrote: >> >> Hi, we are trying to set specific MQ headers on a message that is >> >> required by >> >> the receiver. In particular we are trying to do what is specified in >> this >> >> MQ >> >> documentation: >> >> >> http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.csqzaw.doc%2Fjm41030_.htm >> >> >> >> In particular it calls for this code, but we don't know how/where we >> >> could >> >> implement this: >> >> >> >> /* ---------------------------------------- */ >> >> // Enable MQMD write >> >> dest.setBooleanProperty(WMQConstants.WMQ_MQMD_WRITE_ENABLED, true); >> >> >> >> // Optionally, set a message context if applicable for this MD field >> >> dest.setIntProperty(WMQConstants.WMQ_MQMD_MESSAGE_CONTEXT, >> >> WMQConstants.WMQ_MDCTX_SET_IDENTITY_CONTEXT); >> >> >> >> // On the message, set property to provide custom UserId >> >> msg.setStringProperty("JMS_IBM_MQMD_UserIdentifier", "JoeBloggs"); >> >> >> >> // Send >> >> >> >> /* ---------------------------------------- */ >> >> >> >> >> >> >> >> We are using camel 2.10 with spring XML. The way we are sending >> messages >> >> is >> >> simple, the route is just like (for example): >> >> >> >> >> >> >> > > <route> >> >> >> > > <from uri="(reads a test message from a file and places the contents >> > >> >> > in the Exchange body)"/> >> >> >> > > <to uri="testjms:queue:testqueue"/> >> >> >> > > </route> >> >> >> >> ... >> >> >> >> >> >> testjms is configured as a bean like so: >> >> >> >> >> > > <bean id="testjmsConfig" >> > >> >> > class="org.apache.camel.component.jms.JmsConfiguration"> >> >> >> > > <property name="connectionFactory" ref="atomikosTestConnectionFactory" /> >> >> >> > > <property name="transactionManager" ref="JtaTransactionManager"/> >> >> >> > > </bean> >> >> >> > > <bean id="testjms" class="org.apache.camel.component.jms.JmsComponent"> >> >> >> > > <property name="configuration" ref="testjmsConfig" /> >> >> >> > > </bean> >> >> >> >> >> >> This set up works for the basic putting of messages on the queue. So I >> >> was >> >> hoping we could just set headers on the camel Exchange object and that >> >> would >> >> automatically be translated to the MQ headers. But they didn't get >> passed >> >> on >> >> that way. So how do we set those headers? >> >> >> >> Hope I have provided enough info. Thanks >> >> >> >> >> >> >> >> >> >> -- >> >> View this message in context: >> >> >> http://camel.465427.n5.nabble.com/camel-jms-setting-specific-MQ-headers-tp5722102.html >> >> Sent from the Camel - Users mailing list archive at Nabble.com. >> > >> > >> > >> > -- >> > Claus Ibsen >> > ----------------- >> > Red Hat, Inc. >> > FuseSource is now part of Red Hat >> > Email: >> >> > cibsen@ >> >> > Web: http://fusesource.com >> > Twitter: davsclaus >> > Blog: http://davsclaus.com >> > Author of Camel in Action: http://www.manning.com/ibsen >> >> >> >> >> >> -- >> View this message in context: >> http://camel.465427.n5.nabble.com/camel-jms-setting-specific-MQ-headers-tp5722102p5722145.html >> Sent from the Camel - Users mailing list archive at Nabble.com. >> > > > > -- -- View this message in context: http://camel.465427.n5.nabble.com/camel-jms-setting-specific-MQ-headers-tp5722102p5722236.html Sent from the Camel - Users mailing list archive at Nabble.com.
