|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Message Segmentation |
« View previous topic :: View next topic » |
Author |
Message
|
KIARA |
Posted: Fri Mar 05, 2004 8:06 am Post subject: Message Segmentation |
|
|
Newbie
Joined: 05 Mar 2004 Posts: 9
|
I have created a flow, to take msgs off a q. there are 3 types of msgs going to the q - header msgs, lines msgs and trailer msgs. I want the msgs to stay on the q until the flow receives the trailer msg. I have got the flow to do this.I have a second flow that I want to use to reassemble these 3 messages into 1. However as the 3 messages are on the input of this flow only the trailer msg(the last) msg makes it to the output. The first 2 msgs the header and lines msg disappear - they dont go to a fail q or a backout q
Does anyone have nay ideas on this please? |
|
Back to top |
|
 |
EddieA |
Posted: Fri Mar 05, 2004 8:46 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
Moderator: This probably needs moving to the WMQI forum.
Kiara: How are you doing this. A flow will read a single message, and process it. When this flow ends, the message will be gone from the input queue. So, I am confused how you have 2 flows that you expect to read 3 messages. Or are you using the MQGet node.
Please give more details about how you are implementing this.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
KIARA |
Posted: Tue Mar 09, 2004 2:39 am Post subject: |
|
|
Newbie
Joined: 05 Mar 2004 Posts: 9
|
Hi Eddie
What I am doing is on the first flow, all msgs pile up until the trailer message is received. These msgs then go to the output queue.
The output q of the 1st flow is the input q of the second flow, so 3 messages will sit on the input for flow 2. The 2nd flow is only an input to an output. Even though 3 messages sit on the input only 1 msg reaches the output.
I have checked all the options, so the message allows segmentation, and also knows when the last segment has arrived. But somehow it doesn't reasseble them into one message and only passes the last segment to the output. The 1st 2 segments disappear.(Not on failure / backout or DLQ)
To allow segmentation I have included code in a compute node
Set OutputRoot.MQMD.MsgFlags = MQMF_SEGMENT;
and for the last segment
Set OutputRoot.MQMD.MsgFlags = MQMF_LAST_SEGMENT;
I have found this option
MQGMO_COMPLETE_MSG
which I think should reassemble my message but I cannot find where to set this.It says to set on the node or the getting application. I dont have a getting app, for the moment I just want the reassembled msgs to sit on the output q. And I can find nothing that resembles this option on the output q.
I hope I am making this scenario clear.
Have you any more suggestions on how I could do this?
many thanks
kiara |
|
Back to top |
|
 |
EddieA |
Posted: Tue Mar 09, 2004 6:52 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
Quote: |
all msgs pile up until the trailer message is received |
The only way you could do this, is to have the sending application put all the messages in a Group, and then use the 'All Messages Available' option. But, WMQI will still read the messages 1 by 1.
Quote: |
and for the last segment
Set OutputRoot.MQMD.MsgFlags = MQMF_LAST_SEGMENT; |
I thing that should really be: MQMF_SEGMENT + MQMF_LAST_SEGMENT. However, that won't solve your problem. Those flags are not the only pieces that are set when you segment a message. My guess (and ONLY a guess) is that WMQI has read the 3 messages, and because you have made it think that it's a segmented message, has tried to rebuild it. But, each segment says that it starts at offset 0. So, each piece will overlay the previous.
As far as MQGMO_COMPLETE_MSG goes. I think WMQI has this set on by default. After all, what use would a flow be if it received the 'complete' message as a series of pieces.
Maybe you could look at outputting the messages from the 1st flow via an Aggregate, and use that to get all the parts back.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|