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 » ESQL error replaced by Java resource bundle error

Post new topic  Reply to topic
 ESQL error replaced by Java resource bundle error « View previous topic :: View next topic » 
Author Message
gregop
PostPosted: Wed Feb 06, 2013 3:29 am    Post subject: ESQL error replaced by Java resource bundle error Reply with quote

Voyager

Joined: 24 Nov 2006
Posts: 81

A odd problem is occurring here when a JCN is routed to compute node, and the compute node ends with an exception. The JCN appears to be re-entered and issues a 'Resource Bundle error' losing the real error issued from the compute node.

A trace from a simple flow below. MQInput->JCN (with default modifying message class code, nothing else)->Compute node. The compute node contains a divide by zero. All connected from Out terminals. The divide by zero exception is not reported.

Has anyone encountered this before, or have any ideas as to what could cause this?



Code:
2013-02-06 10:46:26.180422     2788   UserTrace   BIP11501I: Received data from input node ''MQ Input''.
                                       The input node ''MQ Input'' has received data and has propagated it to the message flow ''PGJ''.
2013-02-06 10:46:26.180550     2788   UserTrace   BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'PGJ.MQ Input'.
2013-02-06 10:46:26.180794     2788   UserTrace   BIP3904I: Invoking the evaluate() method of node (class='ComIbmJavaComputeNode', name='PGJ#FCMComposite_1_2').
                                       About to pass a message to the evaluate() method of  the specified node.
                                       No user action required.
2013-02-06 10:46:26.181194     2788   UserTrace   BIP6060I: Node 'PGJ.MQ Input' used parser type ''Properties'' to process a portion of the incoming message of length '0' bytes beginning at offset '0'.
2013-02-06 10:46:26.181244     2788   UserTrace   BIP6061I: Node 'PGJ.MQ Input' used parser type ''MQMD'' to process a portion of the incoming message of length '364' bytes beginning at offset '0'. The parser type was selected based on value ''MQHMD'' from the previous parser.
2013-02-06 10:46:26.181320     2788   UserTrace   BIP6061I: Node 'PGJ.MQ Input' used parser type ''XMLNSC'' to process a portion of the incoming message of length '38' bytes beginning at offset '364'. The parser type was selected based on value ''XMLNSC'' from the previous parser.
2013-02-06 10:46:26.181410     2788   UserTrace   BIP2537I: Node 'PGJ.Compute': Executing statement   ''BEGIN ... END;'' at ('.PGJ_Compute.Main', '2.2').
2013-02-06 10:46:26.181450     2788   UserTrace   BIP2537I: Node 'PGJ.Compute': Executing statement   ''CopyEntireMessage();'' at ('.PGJ_Compute.Main', '4.3').
2013-02-06 10:46:26.181470     2788   UserTrace   BIP2538I: Node 'PGJ.Compute': Evaluating expression ''CopyEntireMessage()'' at ('.PGJ_Compute.Main', '4.8').
2013-02-06 10:46:26.181504     2788   UserTrace   BIP2537I: Node 'PGJ.Compute': Executing statement   ''BEGIN ... END;'' at ('.PGJ_Compute.CopyEntireMessage', '1.39').
2013-02-06 10:46:26.181538     2788   UserTrace   BIP2537I: Node 'PGJ.Compute': Executing statement   ''SET OutputRoot = InputRoot;'' at ('.PGJ_Compute.CopyEntireMessage', '2.3').
2013-02-06 10:46:26.181570     2788   UserTrace   BIP2539I: Node '': Evaluating expression ''InputRoot'' at ('.PGJ_Compute.CopyEntireMessage', '2.20'). This resolved to ''InputRoot''. The result was ''ROW... Root Element Type=16777216 NameSpace='' Name='Root' Value=NULL''.
2013-02-06 10:46:26.181608     2788   UserTrace   BIP2568I: Node 'PGJ.Compute': Copying sub-tree from ''InputRoot'' to ''OutputRoot''.
2013-02-06 10:46:26.181686     2788   UserTrace   BIP2537I: Node 'PGJ.Compute': Executing statement   ''DECLARE A INTEGER;'' at ('.PGJ_Compute.Main', '5.3').
2013-02-06 10:46:26.181716     2788   UserTrace   BIP2537I: Node 'PGJ.Compute': Executing statement   ''SET A = 1 / 0;'' at ('.PGJ_Compute.Main', '6.3').
2013-02-06 10:46:26.193956     2788   Error       BIP2628E: Exception condition detected on input node 'PGJ.MQ Input'.
                                       The input node 'PGJ.MQ Input' detected an error whilst processing a message.  The message flow has been rolled-back and, if the message was being processed in a unit of work, it will remain on the input queue to be processed again.  Following messages will indicate the cause of this exception.
                                       Check the error messages which follow to determine why the exception was generated, and take action as described by those messages.
2013-02-06 10:46:26.193984     2788   RecoverableException  BIP2230E: Error detected whilst processing a message in node 'PGJ.Java Compute'.
                                       The message broker detected an error whilst processing a message in node 'PGJ.Java Compute'. An exception has been thrown to cut short the processing of the message.
                                       See the following messages for details of the error.
2013-02-06 10:46:26.193994     2788   UserException  BIP4367E: The method ''evaluate'' in Java node ''Java Compute'' has thrown the following exception: '<com.ibm.broker.plugin.MbUserException class:PGJ_JavaCompute method:evaluate() source: key: message: Unable to resolve message: Source: Key:  >'.
                                       The method ''evaluate'' of the Java node has thrown an exception. Examine previous error messages for details of the cause of the problem.
                                       This error is generated by the Java node API.  It can occur in a Java Compute node or a Java user-defined node. If the node is a user-defined node, contact the node provider for further details.
2013-02-06 10:46:26.194006     2788   UserException  BIP4394E: Java exception: ''com.ibm.broker.plugin.MbUserException''; thrown from class name: ''PGJ_JavaCompute'', method name: ''evaluate()'', file: ''PGJ_JavaCompute.java'', line: '29'; trace text: ''<com.ibm.broker.plugin.MbBrokerException  source:BIPmsgs key:2230 message:[BIPmsgs:2230]BIP2230E: Error detected whilst processing a message in node 'Caught exception and rethrowing'.
                                       
                                       The message broker detected an error whilst processing a message in node 'Caught exception and rethrowing'. An exception has been thrown to cut short the processing of the message.
                                       
                                       See the following messages for details of the error. : Caught exception and rethrowing >'';  resource bundle: ''''; key: ''''; inserts(optional): '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}'
                                       The message contains that data associated with a Java exception.
                                       No user action required.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Feb 06, 2013 4:39 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

is the propagate call from the JCN inside a try/catch block?
Back to top
View user's profile Send private message
gregop
PostPosted: Wed Feb 06, 2013 4:51 am    Post subject: Reply with quote

Voyager

Joined: 24 Nov 2006
Posts: 81

Yes. The code running in my trace has only the default code generated by the toolkit.

Code:
public class PGJ_JavaCompute extends MbJavaComputeNode {

   public void evaluate(MbMessageAssembly assembly) throws MbException {
      MbOutputTerminal out = getOutputTerminal("out");
      MbOutputTerminal alt = getOutputTerminal("alternate");

      MbMessage message = assembly.getMessage();

      try {
         // ----------------------------------------------------------
         // Add user code below

         // End of user code
         // ----------------------------------------------------------

         // The following should only be changed
         // if not propagating message to the 'out' terminal

         out.propagate(assembly);

      } catch (Throwable e) {
         // Example Exception handling   
         MbUserException mbue = new MbUserException(this, "evaluate()", "",
               "", e.toString(), null);
         throw mbue;
      }
   }
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Feb 06, 2013 4:55 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

So what happens when the code downstream of a propagate throws an exception?

It gets caught.

Where does it get caught? At the first place *upstream* of that exception that has decided to catch it.
Back to top
View user's profile Send private message
gregop
PostPosted: Wed Feb 06, 2013 5:33 am    Post subject: Reply with quote

Voyager

Joined: 24 Nov 2006
Posts: 81

My lack of java knowledge exposed. That explains the re-entry into the JCN. Thank you.

I don't understand why the rethrow has lost the underlying problem and is delivering resource bundle problem.

I'll research that a little deeper.
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Feb 06, 2013 5:37 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

It appears that the toString method on the caught exception is not able to serialize the exception that was thrown.
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 » ESQL error replaced by Java resource bundle error
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.