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 » MQHMDE Header added on group message - using WMBI

Post new topic  Reply to topic
 MQHMDE Header added on group message - using WMBI « View previous topic :: View next topic » 
Author Message
Ramphart
PostPosted: Tue Jan 20, 2015 7:45 pm    Post subject: MQHMDE Header added on group message - using WMBI Reply with quote

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
View user's profile Send private message
fjb_saper
PostPosted: Tue Jan 20, 2015 9:18 pm    Post subject: Re: MQHMDE Header added on group message - using WMBI Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20697
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
View user's profile Send private message Send e-mail
Ramphart
PostPosted: Wed Jan 21, 2015 12:22 am    Post subject: Re: MQHMDE Header added on group message - using WMBI Reply with quote

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
View user's profile Send private message
fjb_saper
PostPosted: Wed Jan 21, 2015 3:22 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20697
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
View user's profile Send private message Send e-mail
Ramphart
PostPosted: Wed Jan 21, 2015 5:15 am    Post subject: Reply with quote

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
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 » MQHMDE Header added on group message - using WMBI
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.