How to set ApplicationIdData using MQQueueConnectionFactory?

我们两清 提交于 2019-12-02 03:26:57

All I needed to find a way in camel config to set some properties in the destination and set some header. I set destination in the header as

<setHeader headerName="CamelJmsDestinationName"> queue:///Q_Name?targetClient=1&mdWri‌​teEnabled=true&a‌​mp;mdMessageContext=‌​1</setHeader>

Note: Setting mdWri‌​teEnabled=true is equal to

 // Enable MQMD write
  dest.setBooleanProperty(WMQConstants.WMQ_MQMD_WRITE_ENABLED, true);

Setting mdMessageContext=‌​1 is equal to

// Optionally, set a message context if applicable for this MD field
  dest.setIntProperty(WMQConstants.WMQ_MQMD_MESSAGE_CONTEXT, 
    WMQConstants.WMQ_MDCTX_SET_IDENTITY_CONTEXT);

Then set ApplicationIdData as <setHeader headerName="JMS_IBM_MQMD_ApplIdentityData" > BSI_XML_CANADA_ACK BSI_XML_CANADA_ACK </setHeader>

Complete code:

<route id="ValidateAndAck" streamCache="true">
            <from uri="sql:{{ValidateCDMsg}}" />
            <setHeader headerName="CamelJmsDestinationName"> <constant>queue:///Q_Name?targetClient=1&amp;mdWriteEnabled=true&amp;mdMessageContext=1</constant></setHeader> 
            <setHeader headerName="mdWriteEnabled">  <simple>true</simple></setHeader> <!-- This may be redundant-->
            <setHeader headerName="mdMessageContext">  <simple>2</simple></setHeader> <!-- This may be redundant--> 
            <setHeader headerName="JMS_IBM_MQMD_ApplIdentityData" >
                <simple>APP_ID_NAME</simple>
            </setHeader>
            <setHeader headerName="JMS_IBM_MQMD_ApplOriginData" >
                <simple>APP_ID_NAME</simple>
             </setHeader> 
            <to uri="bean:ProcessBean?method=setProcessId" />

I am not sure that JMS_IBM_MQMD_ApplOriginData is required.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!