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 » A simple question

Post new topic  Reply to topic
 A simple question « View previous topic :: View next topic » 
Author Message
wildtiger
PostPosted: Wed Aug 21, 2002 10:16 am    Post subject: A simple question Reply with quote

Acolyte

Joined: 21 Apr 2002
Posts: 55
Location: Canada

Hi, I just started using WMQI. I've defined message set. And I also put Message Set Id and Messagd Id in MQInput Node. The trace file output by a Trace node which is connected to output terminal of the MQInput node cannot recorgnize the message I put in. It can only recorgnize it as a BLOB message. Whether I specify Message Domain to "MRM" or leave it blank, it still the same. How can I let the broker recorgnize it?

Thanks in advanced,
Back to top
View user's profile Send private message
kirani
PostPosted: Wed Aug 21, 2002 10:29 am    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

If you don't specify any value in MessageDomain field in your MQInput node, a default domain of BLOB will be used here.

For MRM messages, you should set following properties
MessageDomain to MRM
MessageFormat to CWF/TDS/XML
MessageSet to D.....
MessageType to m_xxxx

After specifying correct values if your Message fails to parse, you should check for these...
1. Message definition into MRM is matching with the message on the queue (lenght, data type etc.)
2. You have not specified correct identifier for MessageSet/Type.
3. You have not assigned the messageset to the broker.
4. ....

If you want to know what is going wrong with your message, you should try printing ExceptionList in a Trace node.

Hope this helps.
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
wildtiger
PostPosted: Wed Aug 21, 2002 8:31 pm    Post subject: Reply with quote

Acolyte

Joined: 21 Apr 2002
Posts: 55
Location: Canada

Hi Kirani, I've tried. But still got the problem. The following are what I have done:

Element:
Name : Str1
Identifier : e_Str1
Length : str1_length
Type : STRING

Element lengths:
Name : str1_length
Maximum Length : 10
Identifier : str_length_id

Types:
Name : String1_t
Identifier : t_String1
Members : Str1

Messages:
Name : String1
Identifier : m_String1
Type : String1_t

Message Sets:
Name : Msg-Set1
Identifier : DQNLG9S06S001

The following is the workflow:

+--------+
+--+Failure1|
| +--------+
+------+ |
| +--+ +---------+ +------+
| IN +--+ +--+TRACE2+--+Fail2 +
| + | +-----------+ | +---------+ +------+
+------+ | +---------+ | +-----+
+----+TRACE1+------+ Compute+-----+
+---------+ | | |
+-----------+ | +-------+
+---+ OUT |
+-------+

Configuration as follow:

Node : IN (MQInput)
Default Tab:
Message Domain : MRM
Message Set : DQNLG9S06S001
Message Type : m_String1
Message Format : CWF

Node : Trace1 (Trace)
Trace1 Tab:
Destination: file
File Path : d:\mqsiv2\test2.txt
Pattern : ${Root}

Node : Compute (Compute)
ESQL:
DECLARE I INTEGER;
SET I = 1;
WHILE I < CARDINALITY(InputRoot.*[]) DO
SET OutputRoot.*[I] = InputRoot.*[I];
SET I=I+1;
END WHILE;
SET "OutputRoot"."XML"."Str1" = "InputBody"."e_Str1";


Node : Trace2 (TRACE)
Trace2 Tab:
Destination: file
File Path : d:\mqsiv2\test2a.txt
Pattern : ${ExceptionList}

Node : Failure1 (MQOUTPUT)
Node : Fail2 (MQOUTPUT)
Node : OUT (MQOUTPUT)

When I leave "Message Domain" of Node "IN" (MQInput) blank, the test2.txt looks like:
(
(0x3000000)UnknownParserName = 'MQSTR'
(0x3000000)BLOB = X'4d46202020202020202040424345405053534020575349425f636c61696d5f303230305f32303032303830315f312020202054686973206973206d65737361676520636f6e74656e742e414141414141'
)

When I set "Message Domain" of Node "IN" (MQInput) to "MRM" (whether I set "Message Format" to "CWF" or leave it blank), the test2.txt looks like:

(
)

And test2a.txt (generated by Trace2 Node) always looks like:
(
(0x1000000)RecoverableException = (
(0x3000000)File = 'f:/build/argo/src/DataFlowEngine/ImbDataFlowNode.cpp'
(0x3000000)Line = 538
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmComputeNode'
(0x3000000)Name = '0c1401cb-ef00-0000-0080-d72fbb2579f7'
(0x3000000)Label = 'Flow-Test-2.Compute1'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)ParserException = (
(0x3000000)File = 'f:/build/argo/src/MTI/MTIforBroker/MtiImbParser/mtiImbParser.cpp'
(0x3000000)Line = 1165
(0x3000000)Function = 'MtiImbParser::parseFirstChild'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'MTI Parsing Errors have occurred'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 5285
(0x1000000)ParserException = (
(0x3000000)File = 'f:/build/argo/src/MTI/MTIforBroker/MtiImbParser/mtiImbParser.cpp'
(0x3000000)Line = 1079
(0x3000000)Function = 'MtiImbParser::parseFirstChild'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'Invalid Wire format retreived. '
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 5136
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = ''
)
)
)
)
)

The question is why an exception was thrown out? This is a very simple scenario. So there must be some place is set incorrectly.

(Note: The message is a plain text which is put through via MQ Explorer. And the message format is "MQSTR").

Thanks in advance,
Back to top
View user's profile Send private message
wildtiger
PostPosted: Wed Aug 21, 2002 8:36 pm    Post subject: Let me redraw the message flow Reply with quote

Acolyte

Joined: 21 Apr 2002
Posts: 55
Location: Canada

Code:

             +--------+
          +--+Failure1|
          |  +--------+
+------+  |
|      +--+                                     +------+  +-------+
|  IN  +--+                                  +--+TRACE2+--+ Fail2 +
|      +  |                  +---------+     |  +------+  +-------+
+------+  |    +------+      |         +-----+
          +----+TRACE1+------+ Compute +-----+
               +------+      |         |     |
                             +---------+     |   +------+
                                             +---+ OUT  |
                                                 +------+
[/img]
Back to top
View user's profile Send private message
wildtiger
PostPosted: Wed Aug 21, 2002 8:42 pm    Post subject: Reply with quote

Acolyte

Joined: 21 Apr 2002
Posts: 55
Location: Canada

Hi, I just found that I mistakely set the "Message Type" of Node "IN" (MQInput) to "t_String1" (the identifier of the compound type). When I set it back to "m_String1", I got the following exception, test2a.txt, generated by node Trace2:

(
(0x1000000)RecoverableException = (
(0x3000000)File = 'f:/build/argo/src/DataFlowEngine/ImbDataFlowNode.cpp'
(0x3000000)Line = 538
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmComputeNode'
(0x3000000)Name = '0c1401cb-ef00-0000-0080-d72fbb2579f7'
(0x3000000)Label = 'Flow-Test-2.Compute1'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)ParserException = (
(0x3000000)File = 'f:/build/argo/src/MTI/MTIforBroker/MtiImbParser/mtiImbParser.cpp'
(0x3000000)Line = 1165
(0x3000000)Function = 'MtiImbParser::parseFirstChild'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'MTI Parsing Errors have occurred'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 5285
(0x1000000)ParserException = (
(0x3000000)File = 'f:/build/argo/src/MTI/MTIforBroker/MtiImbParser/mtiImbParser.cpp'
(0x3000000)Line = 492
(0x3000000)Function = 'MtiImbParser::parseCwfBuffer'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'Error Extracting a mesage from the record oriented bitstream.'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 5125
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '-15'
)
(0x1000000)ParserException = (
(0x3000000)File = 'f:/build/argo/src/MTI/MTIforBroker/MtiImbParser/mtiImbParser.cpp'
(0x3000000)Line = 2335
(0x3000000)Function = 'MtiImbParser::handlecwferr'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'CWF Read Buffer Overflow'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 5181
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '-15'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'GetMessageFromLegacyBitstream'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DQNLG9S06S001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'm_String1'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'MRM'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = ''
)
)
)
)
)
)
Back to top
View user's profile Send private message
kirani
PostPosted: Wed Aug 21, 2002 8:49 pm    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Sorry to say, but I am not able to understand your message flow. I can only guess it ..
MQInput(out)->Trace1->Compute1->MQOutput
MQInput(catch)->Trace2

What version of MQSI/WMQI are you using? In WMQI 2.1 you need to add Physical Wire Format to the messageSet before defining elements into it. Have you done this?

Basically, the ExceptionList is telling that the MessageFormat for your message set is not matching with the value you specified into MQInput node. Please check the values in MQInput node.
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
wildtiger
PostPosted: Wed Aug 21, 2002 9:10 pm    Post subject: Reply with quote

Acolyte

Joined: 21 Apr 2002
Posts: 55
Location: Canada

Thank you for your fast reply.
Actually, my workflow is:

MQInput(out)->Trace1->Compute1(out)->MQOutput
....................................Compute1(catch)->Trace2

In fact, I just want to use WMQI to understand my MRM message, a very simple message. In my scenario, there is only one element, a string with a length of 10. The version I am using is 2.0.

The Exception list is telling a dismatch of the Message Format when I didn't specify a Message Format in MQInput node. After I specified "CWF", the Exception list changed to:

(
(0x1000000)RecoverableException = (
(0x3000000)File = 'f:/build/argo/src/DataFlowEngine/ImbDataFlowNode.cpp'
(0x3000000)Line = 538
(0x3000000)Function = 'ImbDataFlowNode::createExceptionList'
(0x3000000)Type = 'ComIbmComputeNode'
(0x3000000)Name = '0c1401cb-ef00-0000-0080-d72fbb2579f7'
(0x3000000)Label = 'Flow-Test-2.Compute1'
(0x3000000)Text = 'Node throwing exception'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 2230
(0x1000000)ParserException = (
(0x3000000)File = 'f:/build/argo/src/MTI/MTIforBroker/MtiImbParser/mtiImbParser.cpp'
(0x3000000)Line = 1165
(0x3000000)Function = 'MtiImbParser::parseFirstChild'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'MTI Parsing Errors have occurred'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 5285
(0x1000000)ParserException = (
(0x3000000)File = 'f:/build/argo/src/MTI/MTIforBroker/MtiImbParser/mtiImbParser.cpp'
(0x3000000)Line = 492
(0x3000000)Function = 'MtiImbParser::parseCwfBuffer'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'Error Extracting a mesage from the record oriented bitstream.'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 5125
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '-15'
)
(0x1000000)ParserException = (
(0x3000000)File = 'f:/build/argo/src/MTI/MTIforBroker/MtiImbParser/mtiImbParser.cpp'
(0x3000000)Line = 2335
(0x3000000)Function = 'MtiImbParser::handlecwferr'
(0x3000000)Type = ''
(0x3000000)Name = ''
(0x3000000)Label = ''
(0x3000000)Text = 'CWF Read Buffer Overflow'
(0x3000000)Catalog = 'MQSeriesIntegrator2'
(0x3000000)Severity = 3
(0x3000000)Number = 5181
(0x1000000)Insert = (
(0x3000000)Type = 2
(0x3000000)Text = '-15'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'GetMessageFromLegacyBitstream'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'DQNLG9S06S001'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'm_String1'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = 'MRM'
)
(0x1000000)Insert = (
(0x3000000)Type = 5
(0x3000000)Text = ''
)
)
)
)
)
)

By the way, could u tell me how to add Physical Wire Format to my message set? Can I do it after I define elements? Is it created automatically when I create a message set?

Thanks again,
Back to top
View user's profile Send private message
wildtiger
PostPosted: Wed Aug 21, 2002 9:17 pm    Post subject: Reply with quote

Acolyte

Joined: 21 Apr 2002
Posts: 55
Location: Canada

Are there any step-by-step sample or tutorial on line?
Back to top
View user's profile Send private message
kirani
PostPosted: Thu Aug 22, 2002 8:07 am    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

What is the size of input message string? It should match your element length. Looks like you are entering fewer or more characters here.

Addition of Physical Wire Format feature is only available in WMQI 2.1. Since you are using version 2.0, you don't have to do it.

For MRM examples you could refer to IBM redbooks. Goto http://www.redbooks.ibm.com and search for Integrator.
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
wildtiger
PostPosted: Thu Aug 22, 2002 9:41 am    Post subject: Reply with quote

Acolyte

Joined: 21 Apr 2002
Posts: 55
Location: Canada

Hi kirani, thank you for your replying.

Due to the length of the element ( there is only one element in the message) is 10, any string with a length less than 10 should be acceptable. I've tried "1234567890", "123" and "123456" etc. Because it's a very simple message set / flow. So should there be a big mistake in my steps?
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 » A simple 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.