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 » Copy OutputMessage (incl Headers) put with default context

Post new topic  Reply to topic Goto page 1, 2  Next
 Copy OutputMessage (incl Headers) put with default context « View previous topic :: View next topic » 
Author Message
j.f.sorge
PostPosted: Wed Feb 27, 2008 1:30 am    Post subject: Copy OutputMessage (incl Headers) put with default context Reply with quote

Master

Joined: 27 Feb 2008
Posts: 218

Hallo all!

We have to store the original message put via MQOutputNode if messages go to an external partner. As we create new messages I configured the MQOutputNode with the following parameters
    Transaction Mode = automatic
    Persistence Mode = asQdef
    New message ID = true
    New correlation ID = false
    Segmentation allowed = true
    Message context = default
    Destination Mode = Destination List

To store the original output message I used the LocalEnvironment to set two queue names to the DestinationList (which will be used by the MQOutputNode).

My problem is that these two messages get (at least) different message IDs. This should not happen in my case as I need the original header values which will be created by MQ when putting the message with default context.

Is there any solution to keep all the headers / get the complete message updated after the MQOutputNode has put the message. Than I could use the OutputNode of the MQOutputNode to put the message with a second MQOutputNode using Message context = pass all.

Thanks in advance for the help!
Back to top
View user's profile Send private message
Gaya3
PostPosted: Wed Feb 27, 2008 1:38 am    Post subject: Reply with quote

Jedi

Joined: 12 Sep 2006
Posts: 2493
Location: Boston, US

Hi

I guess you are constructing the output message twice in your compute node isn't it.


Regards
Gayathri
_________________
Regards
Gayathri
-----------------------------------------------
Do Something Before you Die
Back to top
View user's profile Send private message
j.f.sorge
PostPosted: Wed Feb 27, 2008 1:45 am    Post subject: Reply with quote

Master

Joined: 27 Feb 2008
Posts: 218

Hi!

I only create one message once and use a ComputNode to set the LocalEnvironment for the MQOutputNode. The MQOutputNode uses the DestinationList to put the message to two queues - one is the output queue, the other one is the queue which should store the message put to the output queue.
Back to top
View user's profile Send private message
Vitor
PostPosted: Wed Feb 27, 2008 1:55 am    Post subject: Re: Copy OutputMessage (incl Headers) put with default conte Reply with quote

Grand High Poobah

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

j.f.sorge wrote:
My problem is that these two messages get (at least) different message IDs. This should not happen in my case as I need the original header values which will be created by MQ when putting the message with default context.


Working as designed and as desired. If you want the msg id passed through then set the MQOutput node "New message Id" to false, which will (obviously enough) cause a new msg id not to be generated on put.

If it was me (and it's not) I'd like the 2 messages to have different ids, and use the input message id as a correlation id to tie them together. But that's a personal view & might not meet your needs.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Vitor
PostPosted: Wed Feb 27, 2008 1:56 am    Post subject: Reply with quote

Grand High Poobah

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

Gaya3 wrote:
I guess you are constructing the output message twice in your compute node isn't it.


Unlikely; there's no mention of propogate & the MQOutput node will blow if you give it a double tree.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Gaya3
PostPosted: Wed Feb 27, 2008 2:17 am    Post subject: Reply with quote

Jedi

Joined: 12 Sep 2006
Posts: 2493
Location: Boston, US

Hi

Yes, Vitor, you are correct, thanks...



Regards
Gayathri
_________________
Regards
Gayathri
-----------------------------------------------
Do Something Before you Die
Back to top
View user's profile Send private message
j.f.sorge
PostPosted: Wed Feb 27, 2008 2:28 am    Post subject: Re: Copy OutputMessage (incl Headers) put with default conte Reply with quote

Master

Joined: 27 Feb 2008
Posts: 218

Vitor wrote:
...
If you want the msg id passed through then set the MQOutput node "New message Id" to false, which will (obviously enough) cause a new msg id not to be generated on put.
...

If I disable create New Message ID feature it will create a new Group ID as I enabled Segmentation allowed. This will lead to different message headers.

Is there any other solution than creating an Exit to store messages in a message warehouse? Any solution you could implement in a flow?
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Wed Feb 27, 2008 2:34 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

You have complete control over the MQMD.

All you have to do is write the code to produce the MQMD you want.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
j.f.sorge
PostPosted: Wed Feb 27, 2008 2:48 am    Post subject: Reply with quote

Master

Joined: 27 Feb 2008
Posts: 218

jefflowrey wrote:
You have complete control over the MQMD.

All you have to do is write the code to produce the MQMD you want.

Yes, it's clear to me that I can change each field in MQMD and put the message with the changed values. But I want MQ to generate the fields automatically (because of security issues) and store the complete message with generated fields to a second queue. It would not help me to change only some values as I don't know what MQ will put by itself.
Back to top
View user's profile Send private message
Vitor
PostPosted: Wed Feb 27, 2008 2:56 am    Post subject: Reply with quote

Grand High Poobah

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

j.f.sorge wrote:
But I want MQ to generate the fields automatically (because of security issues) and store the complete message with generated fields to a second queue.


Security issues??

So you want WMB to ignore the setting of the MQOutput node & not generate a new msg id? Some people would call that a bug!

IMHO your requirements for the MQMD are beyond the scope of what can be done with a mouse click, and you need to write code to generate the MQMD you want. Which I still think is not what you think you want.

What security issues?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
j.f.sorge
PostPosted: Wed Feb 27, 2008 3:16 am    Post subject: Reply with quote

Master

Joined: 27 Feb 2008
Posts: 218

Vitor wrote:
j.f.sorge wrote:
But I want MQ to generate the fields automatically (because of security issues) and store the complete message with generated fields to a second queue.


Security issues??

So you want WMB to ignore the setting of the MQOutput node & not generate a new msg id? Some people would call that a bug!

IMHO your requirements for the MQMD are beyond the scope of what can be done with a mouse click, and you need to write code to generate the MQMD you want. Which I still think is not what you think you want.

What security issues?

I don't know which userId the broker runs on (since there are different users for our deployment systems) and this is why I cannot generate the MQMD by myself.

I am getting nearer to a solution but I have to discuss it with my collegues first. I will have a SubFlow which contains the following Nodes:
InputNode -> MQOutputNode putting with default context and new message / correlation ID -> ComputeNode which gets the generated IDs from LocalEnvironment and sets these IDs to the OutputRoot.MQMD -> second MQOutputNode putting with default context WITHOUT generating new IDs (using the one set before)
I hope that this works as it should...
Back to top
View user's profile Send private message
j.f.sorge
PostPosted: Wed Feb 27, 2008 3:37 am    Post subject: Reply with quote

Master

Joined: 27 Feb 2008
Posts: 218

j.f.sorge wrote:
...
I am getting nearer to a solution but I have to discuss it with my collegues first. I will have a SubFlow which contains the following Nodes:
InputNode -> MQOutputNode putting with default context and new message / correlation ID -> ComputeNode which gets the generated IDs from LocalEnvironment and sets these IDs to the OutputRoot.MQMD -> second MQOutputNode putting with default context WITHOUT generating new IDs (using the one set before)
...

Got nearer but it does not work, too!

Now there are different PutTimeStamps (as I put in two MQOutputNodes) and the GroupID of the messages differ (as I put the messages with Segmentation allowed).

Isn't there any solution to get the changed message headers back to the broker (after the MQOutputNode) as you get these updated values in IBM MQ Java Native API?!
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Wed Feb 27, 2008 4:10 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

The MQOutput node does have an out terminal...
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
j.f.sorge
PostPosted: Wed Feb 27, 2008 4:14 am    Post subject: Reply with quote

Master

Joined: 27 Feb 2008
Posts: 218

jefflowrey wrote:
The MQOutput node does have an out terminal...

But the message headers after MQOutputNode contain the original header values from the message going into the MQOutputNode.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Wed Feb 27, 2008 4:18 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac00520_.htm
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Copy OutputMessage (incl Headers) put with default context
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.