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 » MQRFH2 Question

Post new topic  Reply to topic
 MQRFH2 Question « View previous topic :: View next topic » 
Author Message
catwood2
PostPosted: Thu Oct 23, 2003 10:51 am    Post subject: MQRFH2 Question Reply with quote

Centurion

Joined: 17 May 2002
Posts: 108

From manuals and some training books we have put together a subscription and publication flow that are doing the trick. The only issue is that it appears the MQRFH2 header information is appearing after the body of the message and is causing a hiccup with our API software of the subscribing application. From the ESQL manual:

The MQRFH2 header follows the MQSeries message descriptor
(MQMD) and precedes the message body (if present).

But, as evidenced by our trace(which I'll throw in at the end), this doesn't appear to be the case.

Thoughts appreciated.

Here is the ESQL of our compute node in the Publication flow:

SET OutputRoot = InputRoot;
-- Enter SQL below this line. SQL above this line might be regenerated, causing any modifications to be lost.
DECLARE REGION_INSTANCE CHARACTER;
SET REGION_INSTANCE = RTRIM(OutputRoot.MQMD.ApplIdentityData);


SET OutputRoot.Properties.Topic='TicketStatus';
SET OutputRoot.MQMD.Format='MQRFH2';
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;
SET OutputRoot.MQRFH2.psc.Command='Publish';
SET OutputRoot.MQRFH2.psc.Topic='TicketStatus';
SET OutputRoot.MQRFH2.usr.Region = REGION_INSTANCE;

The Trace:

(0x1000000)Properties = (
(0x3000000)MessageSet = ''
(0x3000000)MessageType = ''
(0x3000000)MessageFormat = ''
(0x3000000)Encoding = 289
(0x3000000)CodedCharSetId = 437
(0x3000000)Transactional = TRUE
(0x3000000)Persistence = FALSE
(0x3000000)CreationTime = GMTTIMESTAMP '2003-10-23 18:18:53.300'
(0x3000000)ExpirationTime = -1
(0x3000000)Priority = 0
(0x3000000)Topic = 'TicketStatus'
)
(0x1000000)MQMD = (
(0x3000000)SourceQueue = 'PUB_IN_QUEUE16'
(0x3000000)Transactional = TRUE
(0x3000000)Encoding = 289
(0x3000000)CodedCharSetId = 437
(0x3000000)Format = 'MQRFH2'
(0x3000000)Version = 2
(0x3000000)Report = 0
(0x3000000)MsgType = 8
(0x3000000)Expiry = -1
(0x3000000)Feedback = 0
(0x3000000)Priority = 0
(0x3000000)Persistence = 0
(0x3000000)MsgId = X'414d5120444d434e58443030322020203f6f61bf0011d2c3'
(0x3000000)CorrelId = X'000000000000000000000000000000000000000000000000'
(0x3000000)BackoutCount = 0
(0x3000000)ReplyToQ = ' '
(0x3000000)ReplyToQMgr = 'DMCNXD002 '
(0x3000000)UserIdentifier = 'mqsvsi8 '
(0x3000000)AccountingToken = X'000000000000000000000000000000000000000000000000000000
0000000000'
(0x3000000)ApplIdentityData = 'AP24352435 '
(0x3000000)PutApplType = 11
(0x3000000)PutApplName = 'w Folder\Putgui\rfhutilc.exe'
(0x3000000)PutDate = DATE '2003-10-23'
(0x3000000)PutTime = GMTTIME '18:18:53.300'
(0x3000000)ApplOriginData = ' '
(0x3000000)GroupId = X'000000000000000000000000000000000000000000000000'
(0x3000000)MsgSeqNumber = 1
(0x3000000)Offset = 0
(0x3000000)MsgFlags = 0
(0x3000000)OriginalLength = -1
)
(0x1000000)BLOB = (
(0x3000000)UnknownParserName = ''
(0x3000000)BLOB = X'4d6573736167652535467479706525354669643d4148444153534
9474e266368672535467065727369643d6368672533413130303134383339353026414844253546434f2535464
e756d6265723d453530303031393135312641484425354643522535464e756d6265723d4535303030333834333
4265461736b3d4153474e53434844265374617475733d436f6d706c657465267374617274253546646174653d3
23030333038323626737461727425354674696d653d3134333134392673746f70253546646174653d323030333
03832362673746f7025354674696d653d31343331343926657374253546636f6d706c6574696f6e25354664617
4653d323030333038323526657374253546636f6d706c6574696f6e25354674696d653d3136343035322644657
36372697074696f6e3d2b544849535355434b53'
)
(0x1000000)MQRFH2 = (
(0x3000000)NameValueCCSID = 1208
(0x1000000)psc = (
(0x1000000)Command = (
(0x2000000) = 'Publish'
)
(0x1000000)Topic = (
(0x2000000) = 'TicketStatus'
)
)
(0x1000000)usr = (
(0x1000000)Region = (
(0x2000000) = 'AP24352435'
)
)
(0x3000000)Format = ''
)
) AND
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Thu Oct 23, 2003 12:00 pm    Post subject: Re: MQRFH2 Question Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

catwood2 wrote:
From manuals and some training books we have put together a subscription and publication flow that are doing the trick. The only issue is that it appears the MQRFH2 header information is appearing after the body of the message and is causing a hiccup with our API software of the subscribing application.
<snip>
Here is the ESQL of our compute node in the Publication flow:

SET OutputRoot = InputRoot;
-- Enter SQL below this line. SQL above this line might be regenerated, causing any modifications to be lost.
This is your problem. You should 'Copy Message Headers' instead of 'Copy Entire Message'. And then make sure to copy your message body as well, in this case it looks like you'd say
Code:
Set OutputRoot.BLOB.BLOB = InputRoot.BLOB.BLOB;
And put this code after you set your MQRFH2 fields.
catwood2 wrote:
DECLARE REGION_INSTANCE CHARACTER;
SET REGION_INSTANCE = RTRIM(OutputRoot.MQMD.ApplIdentityData);


SET OutputRoot.Properties.Topic='TicketStatus';
SET OutputRoot.MQMD.Format='MQRFH2';
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;
SET OutputRoot.MQRFH2.psc.Command='Publish';
SET OutputRoot.MQRFH2.psc.Topic='TicketStatus';
SET OutputRoot.MQRFH2.usr.Region = REGION_INSTANCE;

Like right here.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
catwood2
PostPosted: Thu Oct 23, 2003 12:24 pm    Post subject: Re: MQRFH2 Question Reply with quote

Centurion

Joined: 17 May 2002
Posts: 108

Jeff -
Thanks for the suggestion.

I neglected to post that we are on version 2.0.2. When I paste the suggested line into the compute node - the syntax checker shows an error pointing to the first BLOB.
Back to top
View user's profile Send private message
catwood2
PostPosted: Thu Oct 23, 2003 12:54 pm    Post subject: Re: MQRFH2 Question Reply with quote

Centurion

Joined: 17 May 2002
Posts: 108

Ok, no syntax error when I changed to:

Code:
Set OutputRoot."BLOB"."BLOB" = InputRoot."BLOB"."BLOB";


And, that now places the RFH2 header before the message body. Thanks Jeff for solving the original problem.

I was thinking that this would resolve the issue of the subscribing application handling the incoming message - but it doesn't. I clearly don't have a solid understanding of MQ header info and am going back to the guides to try to get clarity. I was assuming that the app retrieving the message containing RFH2 header could be oblivious to that info - the same way it is with the Properties and MQMD information. However, the apps 'mq get' call is pulling the RFH2 data and I see the RFH2 data when viewing message in MQ Explorer. From a different thread, I saw a suggestion for removing the RFH2 header via a compute node. I tried that for my scenario - and it did remove the info...but, that requires an extra message flow.
Back to top
View user's profile Send private message
JLRowe
PostPosted: Thu Oct 23, 2003 1:48 pm    Post subject: Reply with quote

Yatiri

Joined: 25 May 2002
Posts: 664
Location: South East London

If you check the programming guide, you can publish without an RFH2, but there's a couple of limitations detailed in the manual.

If I remember, one is that the publication is only published locally (i.e. subscribers must be on the same broker).

Stripping the RFH2 with a flow on the subscriber end is the most flexible approach.
Back to top
View user's profile Send private message Send e-mail
catwood2
PostPosted: Thu Oct 23, 2003 2:52 pm    Post subject: Re: MQRFH2 Question Reply with quote

Centurion

Joined: 17 May 2002
Posts: 108

Wow. Thanks for the pointer to that section in the prog guide JL (pg 17). Our enviornment will be static and that is definitely going to be the cleanest approach for us. Thanks again!
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 » MQRFH2 Question
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.