|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
segmentation concept |
« View previous topic :: View next topic » |
Author |
Message
|
dipankar |
Posted: Thu Apr 12, 2007 11:27 am Post subject: segmentation concept |
|
|
Disciple
Joined: 03 Feb 2005 Posts: 171
|
Hi All,
Environment:
WBI MB5 CSD 6 MQ 5.3 CSD12
WNIDOWS XP
SAP --> mySAP.com adapter -->MessageFlows --> Legacy
I am getting large message (50 MB or more) from mySAP adapter which need to be processed.
Output format is fixed length.
My mesage flows are
Quote: |
MF1:
MQInputNode --> SplitMessage(Compute Node) --> TransformMsg(Compute) --> MQOutput
MF2:
MQInputNode --> MQOutputNode |
I am able to split large message into smaller ones.
For example:
I have 50 MB messages
SplitMessage --> splits 50 MB message to five 10MB messages.
TransformMsg --> trasforms each 10MB msgs to fixed length messages
MQOutput --> getting 5 individual messages
However my requirements is to reassemble all the 5 output messages to one single message.
I have seen several posts here about segmentation.
What I have done so far:
Split message(compute node)
Before propagating, I have set
Code: |
SET OutputRoot.MQMD.MsgFlags = MQMF_MSG_IN_GROUP;
SET OutputRoot.MQMD.MsgSeqNumber = intMsgNumber;
for the last message (5th message)
SET OutputRoot.MQMD.MsgFlags = MQMF_LAST_MSG_IN_GROUP;
SET OutputRoot.MQMD.MsgSeqNumber = intMsgNumber; |
Also I am setting MQMD_VERSION_2. Every property is setting correctly in MQMD whatevet I set.
MF2:
MQInput ---> MQOutput
in MQInput Node, I have checked Logical order and commit by Message group in advance tab.
No results so far. Getting 5 output messages. I am using second message flow for reassembling.
I am missing something basic. Could you please guide me in right direction? What would be best solution?
Thanks a lot in advance. _________________ Regards |
|
Back to top |
|
 |
EddieA |
Posted: Fri Apr 13, 2007 10:36 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
You either need to read the 1st message in the MQInput, and then use MQGet to read the remaining 4.
Or, look at the Segmentation flags, not the Group flag.
Cheers, _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
sunny_30 |
Posted: Sat Apr 14, 2007 8:13 am Post subject: |
|
|
 Master
Joined: 03 Oct 2005 Posts: 258
|
Dipankar,
Grouping and segmentation are two different concepts.
If the end application is configured to pick up the group messages as a single message, the messages are to be sent in a logically sequenced order. If the end application is configured to pick up the segmented messages as one complete message, the messages are to be sent as segments.
For both grouping & segmenting, auto generate a groupId for the 1st message -- ( UUIDASBLOB || X'0000000000000000'). Use the same for all the following messages in MQMD. For 5.0, store it in the DB for reuse. In 6.0, a shared blob variable can be used btwn sequential messages.
Including the above:
for grouping, also set the following values in MQMD for each message--
MsgFlags = MQMF_MSG_IN_GROUP/ MQMF_LAST_MSG_IN_GROUP
and MsgSeqNumber
for segmenting, also set the following values in MQMD for each message--
MsgFlags=MQMF_SEGMENT/MQMF_LAST_SEGMENT
and offset.
offset value gets incremented for each message starting from 0.
Likewise to groupId, you either need to use DB/ shared variables.
1st message offset = 0.
for later messages-->
offset = LENGTH(InputRoot.BLOB.BLOB) + Offset(previous msg's value)
Hope this helps.
-Sunny. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Apr 14, 2007 10:04 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You need to make the messages from SAP smaller...
Make sure SAP does not collect the Idocs and sends you each individual Idoc As Soon As Possible...
If SAP collects the Idocs and you have the batch factor way up it will make things faster if you need to create files for batch processing...
But for on line transaction processing this is murder...
Check out the adapter and if possible switch on the setting that says make each Idoc it's own message (if that settings doesn't exist it should).
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
dipankar |
Posted: Mon Apr 16, 2007 6:07 pm Post subject: |
|
|
Disciple
Joined: 03 Feb 2005 Posts: 171
|
Hi Sunny,
Thanks a lot. Segmentation is working fine. My problem was with the GroupID.
I have used second message flow to reassemble the segmented messages to one.
Thanks again. _________________ Regards |
|
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
|
|
|
|