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 » Unable to write MRM message to queue

Post new topic  Reply to topic
 Unable to write MRM message to queue « View previous topic :: View next topic » 
Author Message
mbscott
PostPosted: Tue Jul 19, 2011 7:31 am    Post subject: Unable to write MRM message to queue Reply with quote

Novice

Joined: 15 Jul 2011
Posts: 15

Hello,


I am unable to send mrm message to queue and getting below exception.

ExceptionList
RecoverableException
File:CHARACTER:F:\build\S610_P\src\DataFlowEngine\ImbDataFlowNode.cpp
Line:INTEGER:957
Function:CHARACTER:ImbDataFlowNode::createExceptionList
Type:CHARACTER:ComIbmMQInputNode
Name:CHARACTER:TEST#FCMComposite_1_1
Label:CHARACTER:TEST.MQInput
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:2230
Text:CHARACTER:Node throwing exception
RecoverableException
File:CHARACTER:F:\build\S610_P\src\DataFlowEngine\ImbMqOutputNode.cpp
Line:INTEGER:909
Function:CHARACTER:ImbMqOutputNode::evaluate
Type:CHARACTER:ComIbmMQOutputNode
Name:CHARACTER:TEST#FCMComposite_1_2
Label:CHARACTER:TEST.MQOutput
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:2230
Text:CHARACTER:Caught exception and rethrowing
ParserException
File:CHARACTER:F:\build\S610_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbParser.cpp
Line:INTEGER:1866
Function:CHARACTER:MtiImbParser::refreshBitStreamFromElements - 9 par
Type:CHARACTER:ComIbmMQInputNode
Name:CHARACTER:TEST#FCMComposite_1_1
Label:CHARACTER:TEST.MQInput
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:5286
Text:CHARACTER:ImbRecoverableException caught from worker when attempting to write out the bitstream.
Insert
Type:INTEGER:5
Text:CHARACTER:TESTCPY
Insert
Type:INTEGER:2
Text:CHARACTER:1
Insert
Type:INTEGER:5
Text:CHARACTER:Binary1
Insert
Type:INTEGER:5
Text:CHARACTER:/msg_LMSA6001OUTPUT
ParserException
File:CHARACTER:F:\build\S610_P\src\cpi\pwf\cwf\cwfworker.cpp
Line:INTEGER:430
Function:CHARACTER:CWFWorker::write
Type:CHARACTER:
Name:CHARACTER:
Label:CHARACTER:
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:5167
Text:CHARACTER:CWF General Error
Insert
Type:INTEGER:2
Text:CHARACTER:0
Insert
Type:INTEGER:5
Text:CHARACTER:CWFWorker::write
Insert
Type:INTEGER:5
Text:CHARACTER:msg_LMSA6001OUTPUT
ParserException
File:CHARACTER:F:\build\S610_P\src\cpi\pwf\cwf\cwfmessage.cpp
Line:INTEGER:618
Function:CHARACTER:CMessage::write
Type:CHARACTER:
Name:CHARACTER:
Label:CHARACTER:
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:5350
Text:CHARACTER:CWF Writing error
Insert
Type:INTEGER:2
Text:CHARACTER:0
Insert
Type:INTEGER:5
Text:CHARACTER:CMessage::write
Insert
Type:INTEGER:5
Text:CHARACTER:msg_LMSA6001OUTPUT
Insert
Type:INTEGER:5
Text:CHARACTER:/msg_LMSA6001OUTPUT/LMSA6001_RESULTS/LMSA6001_RESULT_ENTRY
ParserException
File:CHARACTER:F:\build\S610_P\src\cpi\pwf\cwf\cwfcontext.cpp
Line:INTEGER:340
Function:CHARACTER:CContext::CheckDefaultValue
Type:CHARACTER:
Name:CHARACTER:
Label:CHARACTER:
Catalog:CHARACTER:BIPv610
Severity:INTEGER:3
Number:INTEGER:5344
Text:CHARACTER:CWF Logical Tree - Message Definition Mismatch
Insert
Type:INTEGER:5
Text:CHARACTER:msg_LMSA6001OUTPUT
Insert
Type:INTEGER:5
Text:CHARACTER:LMSA6001_LOCO_INIT


Actually LMSA6001_RESULT_ENTRY type has min 1 max 3. But In the code i am trying to pass 2 records. it got failing with above exception.
If i sent 3 records then working fine.

Here is the code

SET OutputRoot.Properties.MessageSet = 'DSVJEKC002001';
SET OutputRoot.Properties.MessageType = 'msg_LMSA6001OUTPUT';
SET OutputRoot.Properties.MessageFormat = 'Binary1';

CREATE FIELD OutputRoot.MRM;
DECLARE OutRef REFERENCE TO OutputRoot.MRM;

SET OutRef.LMSA6001_RESPONSE_CODE = 'aaa';
SET OutRef.LMSA6001_RESPONSE_MESSAGE = 'bbb';

DECLARE I, J INT ;
SET I = 1;
SET J = 3;
WHILE I < J DO

SET OutRef.LMSA6001_RESULTS.LMSA6001_RESULT_ENTRY[I].LMSA6001_LOCO_ID.LMSA6001_LOCO_INIT = 'cc';
SET OutRef.LMSA6001_RESULTS.LMSA6001_RESULT_ENTRY[I].LMSA6001_LOCO_ID.LMSA6001_LOCO_NUM.LMSA6001_LOCO_FILLER = 'fi';
SET OutRef.LMSA6001_RESULTS.LMSA6001_RESULT_ENTRY[I].LMSA6001_LOCO_ID.LMSA6001_LOCO_NUM.LMSA6001_LOCO_NUMBER = 'gg';
SET OutRef.LMSA6001_RESULTS.LMSA6001_RESULT_ENTRY[I].LMSA6001_LOCO_IN_OUT = 'b';
SET OutRef.LMSA6001_RESULTS.LMSA6001_RESULT_ENTRY[I].LMSA6001_LAST_PING_TS = 'dd';
SET OutRef.LMSA6001_RESULTS.LMSA6001_RESULT_ENTRY[I].LMSA6001_NAME_OF_GEOFENCE = 'j';
SET OutRef.LMSA6001_RESULTS.LMSA6001_RESULT_ENTRY[I].LMSA6001_ELAPSED_TIME = 'k';
SET I = I + 1;
END WHILE;



since min occur 1 , it should allow, but in this case its not.

Can u guys Please help out, where the issue is. Thanks for your help again.
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Jul 19, 2011 7:49 am    Post subject: Re: Unable to write MRM message to queue Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

mbscott wrote:
Can u guys Please help out, where the issue is.


What does LMAS6001_RESULT_ENTRY and it's children default to when all 3 possible elements are not present?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mbscott
PostPosted: Tue Jul 19, 2011 8:29 am    Post subject: Reply with quote

Novice

Joined: 15 Jul 2011
Posts: 15

Code:
What does LMAS6001_RESULT_ENTRY and it's children default to when all 3 possible elements are not present?


all 3 possible elements are not present getting same exception.

If we set default values, all 3 elements comes with default value.

IF we set values for 1 element in output msg , and set default values in msgset, 1 element has that values and remaining 2 has default values.

My understand is Output expecting always max occurs. Don't know why.
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Jul 19, 2011 9:39 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

mbscott wrote:
My understand is Output expecting always max occurs.


Because that's what the message set configuration is set to. You don't mention how you've created the message set (long hand or importing) but the CWF is set to have 3 elements at the end. This was why I asked about the defaults; if the defaults are being set for the missing elements then the message set declares them as mandatory.

Check the configuration.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mbscott
PostPosted: Tue Jul 19, 2011 10:29 am    Post subject: Reply with quote

Novice

Joined: 15 Jul 2011
Posts: 15

Ok. Message definition created by importing cobol copy book. In Message set Policy for missing elements set usedefaultvalues. So we must specify default values..
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Jul 19, 2011 10:34 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

mbscott wrote:
Message definition created by importing cobol copy book.


So does the copy book describe that group as OCCURS or OCCURS DEPENDING ON?
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mbscott
PostPosted: Tue Jul 19, 2011 12:05 pm    Post subject: Reply with quote

Novice

Joined: 15 Jul 2011
Posts: 15

This is the cpy i am using

01 LMSA6001-OUTPUT.
05 LMSA6001-RESPONSE-CODE PIC X(008) VALUE SPACES.
05 LMSA6001-RESPONSE-MESSAGE PIC X(080) VALUE SPACES.

05 LMSA6001-RESULTS VALUE SPACES.
10 LMSA6001-RESULT-ENTRY OCCURS 100 TIMES.
15 LMSA6001-LOCO-ID.
20 LMSA6001-LOCO-INIT PIC X(004).
20 LMSA6001-LOCO-NUM.
25 LMSA6001-LOCO-FILLER PIC X(004).
25 LMSA6001-LOCO-NUMBER PIC X(006).
15 LMSA6001-LOCO-IN-OUT PIC X(001).
15 LMSA6001-LAST-PING-TS PIC X(026).
15 LMSA6001-NAME-OF-GEOFENCE PIC X(256).
15 LMSA6001-ELAPSED-TIME PIC X(012)
for unit testing i changed to 3 occurs.
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Jul 19, 2011 12:12 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

That copybook doesn't define an element that occurs from 1 to 100 times - it defines an element that occurs 100 times. If you change it to 3 it will define an element that occurs 3 times. So what did you mean in you OP when you said:

mbscott wrote:
Actually LMSA6001_RESULT_ENTRY type has min 1 max 3.


Where do you think that varying capacity has been set up? Does the receiving application think it varies? If so, you need their copybook not that one.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
mbscott
PostPosted: Tue Jul 19, 2011 12:45 pm    Post subject: Reply with quote

Novice

Joined: 15 Jul 2011
Posts: 15

Yes. you are correct. It might be occurs 100 times. I need to confirm with App team. if so i will set default values for missing elements. Thank you.
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 » Unable to write MRM message to queue
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.