ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Carrrying over Correl Id across msgflows

Post new topic  Reply to topic
 Carrrying over Correl Id across msgflows « View previous topic :: View next topic » 
Author Message
umaneesh
PostPosted: Mon Apr 13, 2009 1:23 am    Post subject: Carrrying over Correl Id across msgflows Reply with quote

Novice

Joined: 13 Apr 2009
Posts: 24

Hi,

I have to capture requestor/client's [b]Correlation ID [/b]and keep the same across IBM message broker V6 msg flows (i.e request msg passes thru several flows).

This is how it looks like:

Requestor msg ---> Msgflow1 (msg transformed and sent to msgflow2) ---> Msgflow2 (msg again transformed and sent to msgflow3) ---> Msgflow3(which sends an ACK back to requestor with [b]Correlation ID[/b]).

Here, requestor is expecting the same correlation ID to be passed in all the flows, then retrive same ID in ACK. What is the way to have same correlation ID in all. This architecture has different physical formats(msgs) in each msg flows.

SET OutputRoot.MQMD.CorrelId = InputRoot.MQMD.CorrelId; ---> this wont help me as I have some msgflows coming in which I do not have access!

Appreciate your thoughts on this!

Thanks
Maneesh
Back to top
View user's profile Send private message
Vitor
PostPosted: Mon Apr 13, 2009 1:26 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Store it in the usr folder of an RFH2
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
umaneesh
PostPosted: Mon Apr 13, 2009 1:37 am    Post subject: Carrrying over Correl Id across msgflows Reply with quote

Novice

Joined: 13 Apr 2009
Posts: 24

[quote="Vitor"]Store it in the usr folder of an RFH2[/quote]

Thank you for the quick response.

I have a restriction to use MQRFH/RFH2 as the intermediary(client service) flows have limitations.

I remember, I took out all the user headers when I used to carry application uniqueID and put them in payload itself. In this case, I am not suppose to make any changes to payload also.

Hope, I am in the right direction!

Thanks
Maneesh
Back to top
View user's profile Send private message
Vitor
PostPosted: Mon Apr 13, 2009 2:11 am    Post subject: Re: Carrrying over Correl Id across msgflows Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

umaneesh wrote:
I have a restriction to use MQRFH/RFH2 as the intermediary(client service) flows have limitations.

I remember, I took out all the user headers when I used to carry application uniqueID and put them in payload itself. In this case, I am not suppose to make any changes to payload also.


So you can't use RFH2, removed the headers and you can't change the payload....?

umaneesh wrote:
Hope, I am in the right direction!


If the right direction is the road to doom, then yes.

If you can't store it in the payload, an RFH2, a header or the memory (as you have several different flows so the session will change) then you'll need to think about some kind of external database, keyed on I don't know what....!

This will have perfomance implications.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
umaneesh
PostPosted: Mon Apr 13, 2009 3:11 am    Post subject: Carrrying over Correl Id across msgflows Reply with quote

Novice

Joined: 13 Apr 2009
Posts: 24

Vitor, as you said, the only feasible way here is to use some database functionalities

When I surfed, i got the below link which talks abt a conversation ID, however irrelevant to MQSI.

http://www.eaipatterns.com/ramblings/09_correlation.html

Thanks
Maneesh
Back to top
View user's profile Send private message
mqjeff
PostPosted: Mon Apr 13, 2009 3:15 am    Post subject: Re: Carrrying over Correl Id across msgflows Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

umaneesh wrote:
Vitor, as you said, the only feasible way here is to use some database functionalities


A necessary part of this, by the way, is that even those flows that "you don't have access to" will provide some means for you to know what message it is that they produce on output. That is, if you "don't have access" to flow 2, you need to know that when you get a message in flow 3 that it is "the same" as some message you saw in flow 1.

So you may have to spend some time figuring out the exact correct information to use to correlate messages so you can update the correlation ID.
Back to top
View user's profile Send private message
umaneesh
PostPosted: Mon Apr 13, 2009 3:43 am    Post subject: Re: Carrrying over Correl Id across msgflows Reply with quote

Novice

Joined: 13 Apr 2009
Posts: 24

Quote:
if you "don't have access" to flow 2, you need to know that when you get a message in flow 3 that it is "the same" as some message you saw in flow 1.


the msg coming from flow 2 is different from flow 1. Say I have an XML msg in flow 1 and the msg coming out from flow 2 is swift with different fields.

Quote:
figuring out the exact correct information to use to correlate messages so you can update the correlation ID.


the requirement is to have the same Id, not to touch any Unique ID's in payload! Infact I have a ref# passes everywhere. I have to ask them to reconsider this...
Back to top
View user's profile Send private message
mqjeff
PostPosted: Mon Apr 13, 2009 4:47 am    Post subject: Re: Carrrying over Correl Id across msgflows Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

umaneesh wrote:
Quote:
if you "don't have access" to flow 2, you need to know that when you get a message in flow 3 that it is "the same" as some message you saw in flow 1.


the msg coming from flow 2 is different from flow 1. Say I have an XML msg in flow 1 and the msg coming out from flow 2 is swift with different fields


Yes. That's why I said "the same" with the quotes. Suppose you send three XML messages into Flow 2, and you get three SWIFT messages out of it. How do you know which SWIFT is associated with which XML message? That's what you have to know, in order to be able to re-attach the correct CorrelationID.

Ideally, you wouldn't have to do *anything*, because message flows that do not do request/reply scenarios and merely do transformations should not be changing message id's or correlation id's at all.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Carrrying over Correl Id across msgflows
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.