|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQHMDE Header added on group message - using WMBI |
« View previous topic :: View next topic » |
Author |
Message
|
Ramphart |
Posted: Tue Jan 20, 2015 7:45 pm Post subject: MQHMDE Header added on group message - using WMBI |
|
|
 Disciple
Joined: 21 Jul 2004 Posts: 150 Location: South Africa, JHB
|
Hi,
Environment 1
- Windows Server 2008 R2 Standard
- Message Broker 7 (Ver 7.0.0.0)
- Websphere MQ 7.0.1.10
Environment 2
- OS400
- Websphere MQ 8.0.0.0 (Level p000-140429.1)
1. The AS400 environment was upgraded from Websphere MQ 7 to Websphere MQ 8
2. Since the upgrade, GROUP messages sent from the windows server (using the message broker) ends up on the AS400 queue manager in format MQHMDE instead of MQSTR.
3. There seems to be header data preceding the data portion of the message but making it part of the data
4. The trace below is immediately after the messagebroker writes the message out to the Windows remote queue which points to the AS400 queue
Code: |
SET OutputRoot.MQMD.MsgFlags = MQMF_LAST_MSG_IN_GROUP;
SET OutputRoot.MQRFH2 = NULL;
SET OutputRoot.MQMD.Format = MQFMT_STRING;
SET OutputRoot.MQMD.GroupId = InputRoot.MQMD.MsgId;
SET OutputRoot.MQMD.MsgSeqNumber = cntTotRecs;
|
Code: |
*************
( ['MQROOT' : 0xc1a4230]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0xc6b35a0]
(0x03000000:NameValue):MessageSet = 'MSS.WMS.ERMS.OrderUpload' (CHARACTER)
(0x03000000:NameValue):MessageType = 'Message' (CHARACTER)
(0x03000000:NameValue):MessageFormat = 'TDS' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2015-01-21 02:15:01.700' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceToken = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedType = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedToken = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000:Name ):MQMD = ( ['MQHMD' : 0xc6fdfa0]
(0x03000000:NameValue):SourceQueue = 'DIST.STRK.ERMS.ORDERS.EXTRACT.QL' (CHARACTER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 437 (INTEGER)
(0x03000000:NameValue):Format = 'MQSTR ' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Report = 0 (INTEGER)
(0x03000000:NameValue):MsgType = 8 (INTEGER)
(0x03000000:NameValue):Expiry = -1 (INTEGER)
(0x03000000:NameValue):Feedback = 0 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):Persistence = 0 (INTEGER)
(0x03000000:NameValue):MsgId = X'414d51204d514445562e514d475220203bb0ba542001ef03' (BLOB)
(0x03000000:NameValue):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):BackoutCount = 0 (INTEGER)
(0x03000000:NameValue):ReplyToQ = ' ' (CHARACTER)
(0x03000000:NameValue):ReplyToQMgr = 'MQDEV.QMGR ' (CHARACTER)
(0x03000000:NameValue):UserIdentifier = 'wmqi ' (CHARACTER)
(0x03000000:NameValue):AccountingToken = X'16010515000000a0a684c663fee51612ae61c5ef03000000000000000000000b' (BLOB)
(0x03000000:NameValue):ApplIdentityData = ' ' (CHARACTER)
(0x03000000:NameValue):PutApplType = 11 (INTEGER)
(0x03000000:NameValue):PutApplName = 'D:\usr\bin\rfhutilV7.exe ' (CHARACTER)
(0x03000000:NameValue):PutDate = DATE '2015-01-21' (DATE)
(0x03000000:NameValue):PutTime = GMTTIME '02:15:01.700' (GMTTIME)
(0x03000000:NameValue):ApplOriginData = ' ' (CHARACTER)
(0x03000000:NameValue):GroupId = X'414d51204d514445562e514d475220203bb0ba542001ef03' (BLOB)
(0x03000000:NameValue):MsgSeqNumber = 1 (INTEGER)
(0x03000000:NameValue):Offset = 0 (INTEGER)
(0x03000000:NameValue):MsgFlags = 16 (INTEGER)
(0x03000000:NameValue):OriginalLength = -1 (INTEGER)
)
(0x0100001B:Name+):MRM = ( ['mrm' : 0xc70e770]
(0x01000013:Name+):Msg = (
(0x0300000B:NameValue+):FileID = '"DDIS"' (CHARACTER)
(0x0300000B:NameValue+):FileDescription = '"Customer Orders Upload"' (CHARACTER)
(0x0300000B:NameValue+):FileName = '"DDIS002_34466"' (CHARACTER)
(0x0300000B:NameValue+):OrderType = '"I"' (CHARACTER)
)
)
)
|
Any ideas on what needs to change to avoid the MQHMDE header to be added or for the AS400 Ver 8 queue manager to avoid making group messages header info part of the actual data part of the message? _________________ Applications Architect |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Jan 20, 2015 9:18 pm Post subject: Re: MQHMDE Header added on group message - using WMBI |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Ramphart wrote: |
Any ideas on what needs to change to avoid the MQHMDE header to be added or for the AS400 Ver 8 queue manager to avoid making group messages header info part of the actual data part of the message? |
Can you define more specifically what you mean there?
Have you heard of the header chaining concept?
What exactly are you trying to do?
Maybe you need to set the MQMD-VersionId? to current version before sending on windows...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Ramphart |
Posted: Wed Jan 21, 2015 12:22 am Post subject: Re: MQHMDE Header added on group message - using WMBI |
|
|
 Disciple
Joined: 21 Jul 2004 Posts: 150 Location: South Africa, JHB
|
fjb_saper wrote: |
Maybe you need to set the MQMD-VersionId? to current version before sending on windows...  |
The Version on the MQMD is set to 2.
Code: |
(0x03000000:NameValue):Format = 'MQSTR ' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Report = 0 (INTEGER) |
This is a simple group message that's being sent using a message broker from a windows ( MQ Ver 7 ) to an AS400 ( MQ Ver 8 ) environment. It's been running forever without any issues.
The only change within this environment is that the AS400 use to be on MQ ver 7 and was upgraded to MQ ver 8.
This issue only happens on group messages since the MQ ver 8 upgrade on the AS400. Even though the message has a the MsgFlags = 16 when it's sent from the broker, when I view it in the explorer on the AS4000 queue manager it shows on Segmentation "Segmentation inhibited, None" which implies it somehow landed that side as a normal message (not part of a group).
Below is the way that the AS400 interprets the data. However the actual data sent starts from "DDIS". Hence I suspect the part before "DDIS" is header information which is erroneously made part of the data when it hits the Websphere MQ Ver 8 AS400 Queue Manager
Using rfhutilV7 give exactly the same result with group messages. This is purely a Webshpere MQ issue
Code: |
00000 D4 C4 C5 40 02 00 00 00--48 00 00 00 22 02 00 00 |╘─┼@....H..."...|
00010 B5 01 00 00 4D 51 53 54--52 20 20 20 00 00 00 00 |╡...MQSTR ....|
00020 41 4D 51 20 4D 51 44 45--56 2E 51 4D 47 52 20 20 |AMQ MQDEV.QMGR |
00030 3B B0 BA 54 20 01 EF 04--01 00 00 00 00 00 00 00 |;░║T .∩.........|
00040 18 00 00 00 FF FF FF FF--22 44 44 49 53 22 2C 22 |....    "DDIS","|
00050 43 75 73 74 6F 6D 65 72--20 4F 72 64 65 72 73 20 |Customer Orders |
00060 55 70 6C 6F 61 64 22 2C--22 44 44 49 53 30 30 32 |Upload","DDIS002|
00070 5F 33 34 34 36 36 22 2C--22 49 22 2C 22 31 31 37 |_34466","I","117|
00080 38 39 35 34 35 22 2C 22--33 31 39 30 35 33 22 2C |89545","319053",|
00090 32 30 31 35 30 31 31 32--2C 22 39 30 39 39 39 37 |20150112,"909997|
000A0 38 22 2C 30 30 32 2C 30--2E 30 30 30 2C 30 2E 30 |8",002,0.000,0.0|
000B0 30 30 30 30 -- |0000 |
|
Is there perhaps a setting or configuration change required on the AS400 which might prevent this. A PTF to be applied?
I hope this points out a bit better the problem which I'm experiencing. _________________ Applications Architect |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Jan 21, 2015 3:22 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Did you open a PMR? If not do so.
I figure that what you have is a chained header.
Please do not use a static constant like 2, use something like MQMD_CURRENTVERSION ...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Ramphart |
Posted: Wed Jan 21, 2015 5:15 am Post subject: |
|
|
 Disciple
Joined: 21 Jul 2004 Posts: 150 Location: South Africa, JHB
|
fjb_saper wrote: |
Please do not use a static constant like 2, use something like MQMD_CURRENTVERSION ...  |
I'm actually not using a static constant. The value 2 merely appears in the trace file when the data is written to the file system after the constant MQMD_CURRENTVERSION was translated to a value.
I've tested data using RFHUtil and got the same results.
The AS400 administrator will open a PMR soon. _________________ Applications Architect |
|
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
|
|
|
|