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 » Generating RFH2 headers for JMS using MQSI 2.0.2

Post new topic  Reply to topic
 Generating RFH2 headers for JMS using MQSI 2.0.2 « View previous topic :: View next topic » 
Author Message
Getson
PostPosted: Wed Jan 16, 2002 11:18 am    Post subject: Reply with quote

Newbie

Joined: 17 Jul 2001
Posts: 9
Location: Toronto, Canada

I am unable to consistently generate an MQRFH2 header using MQSI that is acceptable to JMS. MQSI 2.0.2 generates additional fields in the mcd folder that are not understood by JMS, specifically: Set, Type, and Fmt. How can I prevent MQSI from generating these fields? I have tried deleting them in esql statements to no avail. Note: A simple test flow (input, add JMS header info, output) worked fine. But the identical nodes inside of a larger flow fails as described above. I can not determine any reason for the inconsistent behaviour.
Back to top
View user's profile Send private message MSN Messenger
AlexSanda
PostPosted: Wed Jan 16, 2002 11:50 am    Post subject: Reply with quote

Newbie

Joined: 15 Jan 2002
Posts: 4

It seems that MQSI will reset whatever you put in the mcd msd to xml (if it was a xml mesage)if you do this via a computenode.
One way is to use the messagedescriptor to reset it to jms_text. (I have not test that out yet).
Let me know if this suggestion help!
Back to top
View user's profile Send private message
AlexSanda
PostPosted: Wed Jan 16, 2002 11:53 am    Post subject: Reply with quote

Newbie

Joined: 15 Jan 2002
Posts: 4

I mean the resetContentDescriptor node in my previous post
Back to top
View user's profile Send private message
zpat
PostPosted: Wed Jan 16, 2002 11:56 am    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5849
Location: UK

I suggest you trace the message data at different points in the flow and see where these values are being set. The interactive debugger is another way to do this.

If you have a compute node immediately before the output node and these fields are not present in it's OutputRoot message then I would have thought they would not appear in the final message.

Possibly the MRM is adding them and in that case you might use generic XML instead for the output message. Remember that "copy entire message or copy message headers" is going to pass the inputroot RFH2 over to the outputroot - so you may wish not to select these option.

[ This Message was edited by: zpat on 2002-01-16 11:58 ]
Back to top
View user's profile Send private message
Getson
PostPosted: Wed Jan 16, 2002 12:49 pm    Post subject: Reply with quote

Newbie

Joined: 17 Jul 2001
Posts: 9
Location: Toronto, Canada

Thanks for the advice, unfortunately I was already following it:-) Let me be more specific in the problem (This will be a big entry. I apologize). Please note there was no RFH2 header on the incoming message.

The flow looks like this:
MQInput (defaults to XML)
Trace ${Root}
Compute (content is as follows:
----Begining of Compute node----
DECLARE C INTEGER;
SET C = CARDINALITY(InputRoot.*[]);
DECLARE I INTEGER;
SET I = 1;
WHILE I < C DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I=I+1;
END WHILE;
-- Enter SQL below this line. SQL above this line might be regenerated, causing any modifications to be lost.
-- Create RFH2 before the message body.
SET OutputRoot.MQRFH2.mcd.Msd = 'jms_text';
SET OutputRoot.MQRFH2.jms.Dst = 'queue:///out';
SET OutputRoot.MQRFH2.jms.Rto = 'queue://PLAYPEN/KIRSTI';
SET OutputRoot.MQRFH2.usr.CFID = 'Give_me_more_money';
SET OutputRoot.XML =InputRoot.XML;
--reset msd as the previousline will change it to 'XML'
SET OutputRoot.MQRFH2.mcd.Msd = 'jms_text';
---End of Compute Node-----

ResetContentDiscriptor (Domain to jms_text)
Trace ${Root}
MQoutput


Sorry again for the length, please bear with me here. The results of the trace nodes are as follows (in order and slightly cleaned up).

Before:
Properties = (
MessageSet = ''
MessageType = ''
MessageFormat = ''
Encoding = 546
CodedCharSetId = 437
Transactional = TRUE
Persistence = FALSE
CreationTime = GMTTIMESTAMP '2002-01-16 19:06:12.690'
ExpirationTime = -1
Priority = 0
Topic = NULL
)
MQMD = (
SourceQueue= 'TDW.RQ'
Transactional = TRUE
Encoding = 546
CodedCharSetId = 437
Format = ' '
Version = 2
Report = 0
MsgType = 8
Expiry = -1
Feedback = 0
Priority = 0
Persistence= 0
MsgId= X'414d5120504c415950454e2020202020868c453cb2100300'
CorrelId = X'000000000000000000000000000000000000000000000000'
BackoutCount = 0
ReplyToQ = ''
ReplyToQMgr= 'PLAYPEN '
UserIdentifier = 'dgetson '
AccountingToken = X'160105150000008177d9741525af47f89fb474f103000000000000000000000b'
ApplIdentityData = ' '
PutApplType= 11
PutApplName= 'C:MQDisplayrfhutil.exe '
PutDate = DATE '2002-01-16'
PutTime = GMTTIME '19:06:12.690'
ApplOriginData = ' '
GroupId = X'000000000000000000000000000000000000000000000000'
MsgSeqNumber = 1
Offset = 0
MsgFlags = 0
OriginalLength = -1
)
XML = (
GetAccountSummary = (
CCAcctStmtInqRq = (
RqUID= (
= '1611821825'
)
CardAcctId = (
AcctId = (
= '009400000312'
)
AccType = (
= 'CC'
)
)
)
)
)
)



And AFTER:
UserTrace BIP4060I: Data '(
Properties = (
MessageSet = ''
MessageType = ''
MessageFormat = ''
Encoding = 546
CodedCharSetId = 437
Transactional = TRUE
Persistence = FALSE
CreationTime = GMTTIMESTAMP '2002-01-16 19:06:12.690'
ExpirationTime = -1
Priority = 0
Topic = NULL
)
MQMD = (
SourceQueue= 'TDW.RQ'
Transactional = TRUE
Encoding = 546
CodedCharSetId = 437
Format = 'MQHRF2'
Version = 2
Report = 0
MsgType = 8
Expiry = -1
Feedback = 0
Priority = 0
Persistence= 0
MsgId= X'414d5120504c415950454e2020202020868c453cb2100300'
CorrelId = X'000000000000000000000000000000000000000000000000'
BackoutCount = 0
ReplyToQ = ''
ReplyToQMgr= 'PLAYPEN '
UserIdentifier = 'dgetson '
AccountingToken = X'160105150000008177d9741525af47f89fb474f103000000000000000000000b'
ApplIdentityData = ' '
PutApplType= 11
PutApplName= 'C:MQDisplayrfhutil.exe '
PutDate = DATE '2002-01-16'
PutTime = GMTTIME '19:06:12.690'
ApplOriginData = ' '
GroupId = X'000000000000000000000000000000000000000000000000'
MsgSeqNumber = 1
Offset = 0
MsgFlags = 0
OriginalLength = -1
)
MQRFH2 = (
mcd = (
Msd = (
= 'jms_text'
)
Set = (
= ''
)
Type = (
= ''
)
Fmt = (
= ''
)
)
jms = (
Dst = (
= 'queue:///out'
)
Rto = (
= 'queue://PLAYPEN/KIRSTI'
)
)
usr = (
CFID = (
= 'Give_me_more_money'
)
)
)
BLOB = (
UnknownParserName = 'jms_text'
BLOB = X'3c4765744163636f756e7453756d6d6172793e3c43434163637453746d74496e7152713e3c52715549443e313631313832313832353c2f52715549443e3c436172644163637449643e3c4163637449643e3030393430303030303331323c2f4163637449643e3c416363547970653e43433c2f416363547970653e3c2f436172644163637449643e3c2f43434163637453746d74496e7152713e3c2f4765744163636f756e7453756d6d6172793e'
)
)


Back to top
View user's profile Send private message MSN Messenger
AlexSanda
PostPosted: Wed Jan 16, 2002 1:26 pm    Post subject: Reply with quote

Newbie

Joined: 15 Jan 2002
Posts: 4

Hey Getson,
the message trace after the the resetcontentdescriptor works, the trace has problem intrepreting the message becuase it don't recognise jms_text but the message should be okay.
So the JMS still fail? What does it fail? Does it fail not recognising the message as text message and thought that it was a bytemessage?
Back to top
View user's profile Send private message
Getson
PostPosted: Wed Jan 16, 2002 3:29 pm    Post subject: Reply with quote

Newbie

Joined: 17 Jul 2001
Posts: 9
Location: Toronto, Canada

The mcd.msd field is formed properly so JMS shouldn't experience any confusion over byte vs text data. While the data is in hex form in the trace it is text formatted in the message (I checked using the MQ explorer)

I believe JMS fails because of the presence of the fields Set, Fmt, and Type. I think this because I have another message flow which generates identical output (but without those 3 fields) and JMS has no problem understanding it. Why that other flow does not generate the three tags I have no idea. If I could figure that out my problem would be solved. Both flows are identical for the relevant nodes (including output node) and both flows receive identical input to those nodes.
Back to top
View user's profile Send private message MSN Messenger
Getson
PostPosted: Thu Jan 17, 2002 4:52 pm    Post subject: Reply with quote

Newbie

Joined: 17 Jul 2001
Posts: 9
Location: Toronto, Canada

The exact error that is thrown is as follows:
Caught JMSException: javax.jms.MessageFormatException: MQJMS1050: The MQRFH2 header has an incorrect format
Back to top
View user's profile Send private message MSN Messenger
mpuetz
PostPosted: Wed Jan 23, 2002 3:49 pm    Post subject: Reply with quote

Centurion

Joined: 05 Jul 2001
Posts: 149
Location: IBM/Central WebSphere Services

Hi,

your problem is that the fixed length section of the MQRFH2
header is not present. To create the fixed length part you
have to define at least one MQRFH2.Field *before* you define
any folders. Like this:

SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = MQFMT_STRING;
SET OutputRoot.MQRFH2.mcd.Msd = 'jms_text';

SET OutputRoot.XML.*[] = InputBody.*[];
Now the parser outputs also the fixed length fields of the RFH2

like Version, Format, CodedCharSetId, and so on.



_________________
Mathias Puetz

IBM-EMEA AIM Services
MQ/WMQI Specialist

[ This Message was edited by: mpuetz on 2002-01-23 15:50 ]
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 » Generating RFH2 headers for JMS using MQSI 2.0.2
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.