WebSphere Message Brokers
File: ac20805_
Writer: Terry Cowling

Reference topic

This build: July 31, 2007 21:19:29

JavaCompute node

This topic describes how to use the JavaCompute node.

This topic contains the following sections:

Purpose

Use the JavaCompute node to achieve the following tasks:

  • Examine an incoming message and, depending on its content, propagate it unchanged to one of the node's two output terminals; the node behaves in a similar way to a Filter node, but uses Java™ instead of ESQL to decide which output terminal to use.
  • Change part of an incoming message and propagate the changed message to one of the output terminals.
  • Create and build a new output message that is totally independent of the input message.

The Java code that is used by the node is stored in an Eclipse Java project.

The JavaCompute node is contained in the Transformation drawer of the palette, and is represented in the workbench by the following icon:

Compute node icon

Using this node in a message flow

The JavaCompute node can be used in three ways:

  • Use the JavaCompute node to look at a message, and propagate the message to an output terminal, based on the message content. The message content is not changed and you have read-only access to the message.
  • Use the JavaCompute node to modify a message, and propagate the modified message to an output terminal.
  • Use the JavaCompute node to create a new message, and propagate the new message to an output terminal.
Look at the following sample to see how to use this node. You can view samples only when you use the information center that is integrated with the Message Brokers Toolkit.

Configuring the JavaCompute node

When you have put an instance of the JavaCompute node into a message flow, you can configure it; see Configuring a message flow node. Double-click the JavaCompute node to open the New JavaCompute Node Class wizard. The wizard guides you through the creation of a new Java project and a Java class that contains some skeleton code. This skeleton code is displayed in a Java editor. For more information about creating Java code for a JavaCompute node and for examples of the skeleton code or template that are provided, see Creating Java code for a JavaCompute node. If it is not the first time that you have double-clicked the node, the Java code is displayed in a Java compute perspective.

To associate an instance of a JavaCompute node with a Java class, configure the node's properties. The properties of the node are displayed in the Properties view.

All mandatory properties for which you must enter a value (those that do not have a default value defined) are marked with an asterisk.
  1. Optional: On the Description tab, enter a short description, a long description, or both. You can also rename the node on this tab.
  2. On the Basic tab, enter the name of the Java class that is used in this node. This name must be in the list of JavaCompute node classes that are available in the project references for the message flow project.

Specifying Java

Code Java statements to customize the behavior of the JavaCompute node. For example, you can customize the node to create a new output message or messages, using input message or database content (unchanged or modified), or new data. For example, you might want to modify a value in the input message by adding a value from a database, and store the result in a field in the output message.

Code the Java statements that you want in a Java file that is associated with the JavaCompute node.

If a Java file does not already exist for this node, right-click the JavaCompute node and click Open Java to create and open a new Java file in the Editor view. If the file exists already, click Browse beside the Java Class property to display the JavaCompute Node Type Selection dialog box, which lists the Java classes that can be accessed by this message flow. Select the appropriate Java class and click OK. The list of matching types show suitable Java classes when at least one character is entered in the Select field. All Java classes are shown if you enter '*' in the Select field.

Validating messages

Set the validation properties to define how the message that is produced by the JavaCompute node is validated. These properties do not cause the input message to be validated. It is expected that, if such validation is required, the validation has already been performed by the input node or a preceding validation node.

For more details about validating messages and validation properties, see Validating messages and Validation properties.

Terminals and properties

The JavaCompute node terminals are described in the following table.

Terminal Description
In The input terminal that accepts a message for processing by the node.
Failure The output terminal to which the input message is routed if a failure is detected during the computation. (Even if the Validate property is set, messages propagated to the Failure terminal of the node are not validated.)
Out The output terminal to which the transformed message is routed.
Alternate An alternative output terminal to which the transformed message can be routed, instead of to the Out terminal.

The following tables describe the node properties. The column headed M indicates whether the property is mandatory (marked with an asterisk if you must enter a value when no default is defined); the column headed C indicates whether the property is configurable (you can change the value when you add the message flow to the bar file to deploy it).

The Description properties of the JavaCompute node are described in the following table.

Property M C Default Description
Node name No No The node type The name of the node.
Short Description No No   A brief description of the node.
Long Description No No   Text that describes the purpose of the node in the message flow.

The JavaCompute node has the Basic property that is described in the following table.

Property M C Default Description
Java Class Yes No None The name of the Java class that is used in this node. This name must appear in the list of Java classes that are available to be used.

The Parser Options properties for the JavaCompute node are described in the following table.

Property M C Default Description
Parse Timing Yes No On Demand This property controls when an input message is parsed. Valid values are On Demand, Immediate, and Complete.

For a full description of this property, see Parsing on demand.

Use XMLNSC Compact Parser for XMLNS Domain No No Cleared Setting this property causes the outgoing MQRFH2 to specify the XMLNS instead of XMLNSC parser, allowing an external application to remain unchanged. If outgoing messages do not contain MQRFH2 headers, this property has no effect.
Retain mixed content No No Cleared This property controls whether the XMLNSC parser creates elements in the message tree when it encounters mixed text in an input message. If you select the check box, elements are created for mixed text. If you clear the check box, mixed text is ignored and no elements are created.
Retain comments No No Cleared This property controls whether the XMLNSC parser creates elements in the message tree when it encounters comments in an input message. If you select the check box, elements are created for comments. If you clear the check box, comments are ignored and no elements are created.
Retain processing instructions No No Cleared This property controls whether the XMLNSC parser creates elements in the message tree when it encounters processing instructions in an input message. If you select the check box, elements are created for processing instructions. If you clear the check box, processing instructions are ignored and no elements are created.

The Validation properties of the JavaCompute node are described in the following table.

Property M C Default Description
Validate Yes Yes None This property controls whether validation takes place, and what part of the message is validated. Valid values are None, Content and Value, Content, and Inherit.
Failure Action Yes No Exception This property controls what happens if a validation failure occurs. You can set this property only if Validate is set to Content or Content and Value. Valid values are User Trace, Local Error Log, Exception, and Exception List.
Include All Value Constraints Yes No Selected You cannot edit this property. If the check box is selected (the default), all value constraints are included in the validation.
Fix Yes No None You cannot edit this property. Minimal fixing is provided. Valid values are None, and Full.
Related concepts
Message flows overview
Notices | Trademarks | Downloads | Library | Support | Feedback

Copyright IBM Corporation 1999, 2007Copyright IBM Corporation 1999, 2007. All Rights Reserved.
This build: July 31, 2007 21:19:29

ac20805_ This topic's URL is: