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 » Exception while calling getGlobalEnvironment() in a JCN

Post new topic  Reply to topic
 Exception while calling getGlobalEnvironment() in a JCN « View previous topic :: View next topic » 
Author Message
nthepak
PostPosted: Mon Nov 17, 2008 2:35 am    Post subject: Exception while calling getGlobalEnvironment() in a JCN Reply with quote

Voyager

Joined: 19 Dec 2005
Posts: 79
Location: India

Hi All,

I am getting a 'Structure id mismatch at offset' exception from 'ImbMqmdParser::refreshElementsFromBitStream' parser in the below code when the control reaches getGlobalEnvironment() method:

public void evaluate(MbMessageAssembly contact admin) throws MbException {

MbMessage inMessage = contact admin.getMessage();

//get the terminals
MbOutputTerminal out = getOutputTerminal("out");
MbOutputTerminal alt = getOutputTerminal("alternate");

//create output message
MbMessage outMessage = new MbMessage(inMessage);
copyMessageHeaders(inMessage, outMessage);

MbMessage outEnv = new MbMessage(contact admin.getGlobalEnvironment());
MbMessage outLEnv = new MbMessage(contact admin.getLocalEnvironment());

//build output assembly
MbMessageAssembly outAssembly = new MbMessageAssembly(contact admin,outLEnv,outEnv,outMessage);

//generate monitoring string
MonitoringData data = new MonitoringData();
MbElement rootElement = outAssembly.getGlobalEnvironment().getRootElement();

// Get the Monitoring Data Field Names from the Environment Variables
MbElement componentName = rootElement.getFirstElementByPath("/Variables/LoggingInfo/componentName");
String COMPNAME = (String)componentName.getValue();
.
.
.

******Please find the exception tree as given below:

(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S600_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
(0x03000000):Line = 616
(0x03000000):Function = 'ImbDataFlowNode::createExceptionList'
(0x03000000):Type = 'ComIbmJniNode'
(0x03000000):Name = 'P10_ODIN_FLOW1#FCMComposite_1_7.P10_ODIN_LogMsg_SUBFLOW#FCMComposite_1_2'
(0x03000000):Label = 'P10_ODIN_FLOW1.P1.LogMonitorMsg'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2230
(0x03000000):Text = 'Node throwing exception'
(0x01000000):ParserException = (
(0x03000000):File = 'F:\build\S600_P\src\DataFlowEngine\ImbMqmdParser.cpp'
(0x03000000):Line = 129
(0x03000000):Function = 'ImbMqmdParser::refreshElementsFromBitStream'
(0x03000000):Type = 'ComIbmJniNode'
(0x03000000):Name = 'P10_ODIN_FLOW1#FCMComposite_1_7.P10_ODIN_LogMsg_SUBFLOW#FCMComposite_1_2'
(0x03000000):Label = 'P10_ODIN_FLOW1.P1.LogMonitorMsg'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2162
(0x03000000):Text = 'Structure id mismatch at offset'
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '0'

*****Has anybody come accross this kind of scenario, if so then please help me out in solving this
_________________
BR,
Deepak N
Back to top
View user's profile Send private message Send e-mail
rekarm01
PostPosted: Mon Nov 17, 2008 6:56 pm    Post subject: Re: Exception while calling getGlobalEnvironment() in a JCN Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 1415

I think there's a problem here:
Code:
//create output message
MbMessage outMessage = new MbMessage(inMessage);
copyMessageHeaders(inMessage, outMessage);

The first statement is essentially equivalent to ESQL "Set OutputRoot = InputRoot;". That includes copying the message headers.
It's likely that the subsequent call to copyMessageHeaders() is appending a duplicate set of headers after the message body, and it's likely that that's the cause of the MQMD ParserException.

There's also a problem here:
Code:
//build output assembly
MbMessageAssembly outAssembly = new MbMessageAssembly(contact admin,outLEnv,outEnv,outMessage);

The expected arguments in this MbMessageAssembly constructor are:
Code:
MbMessageAssembly(contact admin, localEnvironment, exceptionList, message);

The use of "globalEnvironment" as an argument is deprecated.
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 » Exception while calling getGlobalEnvironment() in a JCN
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.