Author |
Message
|
ethan_1988 |
Posted: Fri Feb 21, 2014 12:41 pm Post subject: MsgId is being Changed while putting message by JMSOutNode |
|
|
Novice
Joined: 07 Feb 2014 Posts: 16
|
Hey Freinds,
I am putting MQ message using JMS out node. when i read the actull message on the Q i see that MQMD.MsgId has been changed. Actually that msgid is important coz it is the Replyidentifier stored in MQMD.MsgId from the previous flow. is there any hint to keep the same MsgId when putting message using JMSOutNode.
Thanks in advance |
|
Back to top |
|
 |
Vitor |
Posted: Fri Feb 21, 2014 1:11 pm Post subject: Re: MsgId is being Changed while putting message by JMSOutNo |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ethan_1988 wrote: |
is there any hint to keep the same MsgId when putting message using JMSOutNode. |
Does the JMS standard allow you to deliberately set a message id? AFAIK it does not.
If it's the reply identifier from the previous flow, why is it in the message id not the correlation id? As you're apparently using it to correlate a reply? Which is part of the correlation mechanism for both JMS & WMQ.
It sounds a lot like you're being asked to bend the JMS standard as you were here. I would push back and ask whoever's giving you this if they know as much about JMS as they think they do. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ethan_1988 |
Posted: Sat Feb 22, 2014 1:30 pm Post subject: |
|
|
Novice
Joined: 07 Feb 2014 Posts: 16
|
I agree Vitor. We cant change JMS message Id. Its very clearly documented and i know it. But i am putting MQ msg on the Q using JMSOutNode. I want to set that MQMD.MsgId to go on the Q what i set in the code. I can see the smae message id what i set in the code from the out terminal of the JMS out node. But on the actuall Q it shows up a different one!!!!
2. abt y to set replyId in msgId, coz back end system works only with MQMD header (no RFH2 works) so when i set msgId i get it back in correlation id. when i set it in CorrId i am loosing it in the response. Same behaviour i have seen in MQ output node when we set reply Q and QM on the node property, MQoutput node changes the msgID but when we define it in a previous ESQL compute node MQoutput node doesnt override msgid value. Thats y it amazed me!!! |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Feb 22, 2014 5:52 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
ethan_1988 wrote: |
I agree Vitor. We cant change JMS message Id. Its very clearly documented and i know it. But i am putting MQ msg on the Q using JMSOutNode. I want to set that MQMD.MsgId to go on the Q what i set in the code. I can see the smae message id what i set in the code from the out terminal of the JMS out node. But on the actuall Q it shows up a different one!!!!
2. abt y to set replyId in msgId, coz back end system works only with MQMD header (no RFH2 works) so when i set msgId i get it back in correlation id. when i set it in CorrId i am loosing it in the response. Same behaviour i have seen in MQ output node when we set reply Q and QM on the node property, MQoutput node changes the msgID but when we define it in a previous ESQL compute node MQoutput node doesnt override msgid value. Thats y it amazed me!!! |
Look at the async request response model. You should be able to send the message to the Mainframe with a new msgId and new CorrelId (or no) and still correlate correctly. Remember that the information in the MQMD has no meaning after the put (whether JMS or not.) The information you are looking for, is in the LocalEnvironment, after the put.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
ethan_1988 |
Posted: Mon Feb 24, 2014 9:42 am Post subject: |
|
|
Novice
Joined: 07 Feb 2014 Posts: 16
|
is it something u suggesting to cache MsgId and ReplyIdentifier after putting the message on the Q and when response comes so retrive that replyIdentifier from the cache? i thought off this kinddda solution but it should be way expensive as we have to cache it for each request.. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Feb 24, 2014 9:57 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ethan_1988 wrote: |
I agree Vitor. We cant change JMS message Id. Its very clearly documented and i know it. But i am putting MQ msg on the Q using JMSOutNode. I want to set that MQMD.MsgId to go on the Q what i set in the code. I can see the smae message id what i set in the code from the out terminal of the JMS out node. But on the actuall Q it shows up a different one!!!! |
Because the JMS standard says the message id cannot be set and is generated by the put. If you actually want to set it like this, use an MQOutput node and build the JMS headers in your code. Though I doubt you need this pattern, you only think you do.
ethan_1988 wrote: |
2. abt y to set replyId in msgId, coz back end system works only with MQMD header (no RFH2 works) so when i set msgId i get it back in correlation id. |
So the question comes again, why are you using JMS? As per your previous thread?
ethan_1988 wrote: |
when i set it in CorrId i am loosing it in the response. Same behaviour i have seen in MQ output node when we set reply Q and QM on the node property, MQoutput node changes the msgID |
Only if it's configured to do it.
ethan_1988 wrote: |
but when we define it in a previous ESQL compute node MQoutput node doesnt override msgid value. Thats y it amazed me!!! |
See my comment above. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|