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 » MQGET Node and ResetContentDescriptor Node

Post new topic  Reply to topic
 MQGET Node and ResetContentDescriptor Node « View previous topic :: View next topic » 
Author Message
sgiles
PostPosted: Thu Feb 14, 2002 8:46 pm    Post subject: Reply with quote

Newbie

Joined: 12 Feb 2002
Posts: 8
Location: Melbourne , Australia

I am looking for some advice on a problem I am having creating a message flow in WMQI V2.1.

The message flow reads a message from the input queue and then uses the data contained within that message to read another queue via the correlation id. Once this is retrieved then both sets of information are used to produce one output message.

I have constructed a message flow as
Input node -> ComputeNode -> MQGet Node -> ResetContentDescriptor node -> Compute node -> Output node

The input mode is defined to read the message (a comma delimited format) and parse the details into the internal tree structure. The MQGet node is defined to put the message into the message tree location Root.Blob.Blob. The ResetContentDescriptor node is expected to change the bit stream into a formatted tree of data by setting the message domain = MRM, and message set, message type and message format equal to the same values that are in the input node (the first and second message has the same structure).

When the flow is executed, the input node is able to successfully read the data and parse it into the Message MRM defintion defined. (the trace output shows this). The compute node and the MQGet node are able to obtain the appropriate message from the second queue, (again the trace shows data in the Root.blob field) , however at the resetDescriptor node an exception is raised saying that the "The field length was less than maxLen" ,Severity = 3, Number = 2230

I notice in the trace output that when the message is read via the input node the fields in the MRM are correctly poplulated with inbound message data. When the second message is read by the MQGET node, the trace shows that the first field in the Root.MRM has been changed to '</Blob>' and Root.Blob.Blob field contains the data from the second message.

I expected the resetdescriptor would take the data in blob format and parse it using the MRM message definitions into a message tree stucture. Unfortuntatley this is not happening.

My defintion of a node is perhaps incorrect or the value of a field in the tree has not been reset or this may not be possible using this method etc...

Any comments appreciated.

Thanks
Stephen
Back to top
View user's profile Send private message
kirani
PostPosted: Fri Feb 15, 2002 10:10 am    Post subject: Reply with quote

Jedi Knight

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

Stephen,

I think the value in the tree is not reset properly. Could you post ESQL code of your first compute node?

As per your logic, you only need Correlation ID field from the input message to read message from another queue using MQGet node. Can you try passing only "Message Headers" in your First compute node? This will delete the Message Body for the input message, which will be reconstructed in MQGet node. Also try to retrieve data into Root."BLOB"."BLOB" field in MQGet node.

Regards,
Kiran
Back to top
View user's profile Send private message Visit poster's website
sgiles
PostPosted: Sun Feb 17, 2002 10:33 pm    Post subject: Reply with quote

Newbie

Joined: 12 Feb 2002
Posts: 8
Location: Melbourne , Australia

Kiran,

Thanks for your suggestion.

When I defined my problem I didn't make it clear that the correlation ID is determined from the body of the data and not from the correlation ID in the header, also that the output message needs data from the first message so the message body must be passed as well as the header.

In order to test your suggestion, I have only passed the "message header" and put the data into Root."BLOB"."BLOB".

I have used the debugger in the control center to step through the execution and when the broker attempts to execute the ResetContentDescriptor node the broker produces a BIP2160E message with the following text.

MQSI_SAMPLE_BROKER.default) Broker process terminating abnormally: The following diagnostic information will be required when contacting IBM: '
Severe Abend Error detected.
For full details see Abend File: C:/Program Files/IBM/WebSphere MQ Integrator 2.1/errors/MQSI_SAMPLE_BROKER.default.403.475.Abend
A summary of the Error follows:
An Unhandled Exception detected in process 403, on thread 0x1DB.
Type: EXCEPTION_ACCESS_VIOLATION (C0000005).
Address: 001B:28D00AC1.
The thread could not read from memory address 0x00000120.
'.
A broker process is terminating abnormally.

Contact your IBM support center.


The execution group then shuts down and when it restarts, sets of messages (BIP2275E, BIP5009E, BIP5004E) tell me that Database records associated with message flow eg '417afe16-ec00-0000-0080-e81569a9b6a3' are not valid, and parsing errors have occured.

I have tried shutting down the broker, restart the machine etc.., but to no avail. Whenever the broker is restarted the sets of messages are re-produced.

Any ideas on how I can remove the offending database records and then how to prevent the abend. I am hoping I do not need to delete the broker and start again.

Thanks
Stephen
Back to top
View user's profile Send private message
kirani
PostPosted: Mon Feb 18, 2002 10:38 am    Post subject: Reply with quote

Jedi Knight

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

Stephen,

Could you try removing the message flow from your Execution Group and do a complete deploy at EG or broker level?

Regards,
Kiran

Back to top
View user's profile Send private message Visit poster's website
mmunaro
PostPosted: Wed Jul 10, 2002 11:58 am    Post subject: Were you able to solve your problem? Reply with quote

Newbie

Joined: 28 May 2002
Posts: 2

I'm having a similar problem. The resetcontentdescriptor isn't able to parse the blob message to an xml message. What did you do to solve your problem, if you did solve it....
TIA
Maria
Back to top
View user's profile Send private message Send e-mail Yahoo Messenger MSN Messenger
jdouch
PostPosted: Wed Jul 10, 2002 11:40 pm    Post subject: Reply with quote

Apprentice

Joined: 31 May 2002
Posts: 32
Location: London, UK

Hi,

the mqget function can prove problematical in trying to get it working correctly, but i have managed to do so.

the process i used was as follows.

1. have a compute node to
- The mqget uses either the msgid or correlid in MQMD. if your using the correlid within the message then you need to set the MQMD value to this.
- save off the inbound message to the localenvironment area for example. if you do not save this message it will get overwritten by the message you receive back using the mqget.
- finish by using SET OutputRoot.BLOB.UnknownParserName='MQSTR';

2. Follow the compute node by the mqget - set the message tree location to Root.BLOB.BLOB.

3. Follow this by a resetcontentdescriptor with your MRM details, this should result in you now having your message from your cache queue

4. compute node to bring back the message from localenvironment area and merge the messages. first set the following again SET OutputRoot.BLOB.UnknownParserName='MQSTR';

this should work i think. i thing that is probably not applicable to you is that saving attribute xml to the localenvironment does not work properley.

thanks

J
_________________
Julian Douch
E-business Solutions Consultant

WMQ/WMQI Specialist
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » MQGET Node and ResetContentDescriptor Node
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.