Message Broker Nodes
Message Broker Nodes
Message Broker Nodes
Nodes
Message broker nodes are used in Message flows. A message flow node is a processing
step in a message flow.
A message flow node receives a message, performs a set of actions against the message,
and optionally passes the message on to the next node in the message flow. A message
flow node can be a built-in node, a user-defined node, or a subflow node.
A built-in node is a message flow node that is supplied by WebSphere Message
Broker. The built-in nodes provide input and output, manipulation and transformation,
decision making, collating requests, and error handling and reporting functions.
A user-defined node is an extension to the broker that provides a new message flow
node in addition to those supplied with the product. It must be written to the user-defined
node API provided by WebSphere Message Broker for both C and Java languages.
A subflow is a directed graph that is composed of message flow nodes and connectors
and is designed to be embedded in a message flow or in another subflow. A subflow must
include at least one Input node or one Output node. A subflow can be executed by a
broker only as part of the message flow in which it is embedded, and therefore cannot be
independently deployed.
A message flow node has a fixed number of input and output points known as terminals.
You can make connections between the terminals to define the routes that a message can
take through a message flow.
Input and output nodes define points in the message flow to which client applications
send messages, and from which client applications receive messages.Client applications
interact with these nodes by putting messages to, or getting messages from, the I/O
resource that is specified by the node as the source or target of the messages. Although a
message flow must include at least one input node, it does not need to include an output
node.
Overview of all the nodes available in WMB v6.0, 6.1 and 7.0
Input Nodes:
MQInput
Use an MQInput node if the messages arrive at the broker on a WebSphere MQ queue,
and the node is to be at the start of a message flow.
MQGet
Use an MQGet node if the messages arrive at the broker on a WebSphere MQ queue
and the node is not to be at the start of a message flow.
SCADAInput
Use a SCADAInput node if the messages are sent by a telemetry device.
HTTPInput
Use an HTTPInput node if the messages are sent by a Web services client.
Real-timeInput or Real-timeOptimizedFlow
Use one of these nodes if the messages are sent by a JMS or multicast application.
The Real-timeInput node is an input node and the Real-timeOptimizedFlow node is a
complete message flow that provides a high performance publish/subscribe message
flow.
JMSInput
Use a JMSInput node if the messages are sent by a JMS application.
User-defined input node
Use a user-defined input node if the message source is a client or application that uses
a different protocol or transport.
Input node
If you are creating a message flow that you want to embed in another message flow (a
subflow) that you will not deploy as a stand-alone message flow, you must include at
least one Input node to receive messages into the subflow.
Output Nodes:
Publication
Use a Publication node to distribute the messages using the publish/subscribe network
for applications that subscribe to the broker across all supported protocols.
MQOutput
Use an MQOutput node if the target application expects to receive messages on a
WebSphere MQ queue, or on the WebSphere MQ reply-to queue that is specified in the
input message MQMD
MQReply
Use an MQReply node if the target application expects to receive messages on the
WebSphere MQ reply-to queue that is specified in the input message MQMD.
SCADAOutput
Use a SCADAOutput node if a telemetry device is the target of the output messages,
and the Publication node is not suitable.
HTTPReply
Use an HTTPReply node if the messages are in response to a Web services client
request.
HTTPRequest
Use an HTTPRequest node if your message flow interacts with a Web service.
Real-timeOptimizedFlow
Use a Real-timeOptimizedFlow node if the target application is a JMS or multicast
application.
JMSOutput
Use a JMSOutput node if the messages are for a JMS destination.
User-defined output node
Use a user-defined output node if the target is a client or application that uses a
different protocol or transport.
Output node
If you are creating a message flow that you want to embed in another message flow (a
subflow) that you will not deploy as a stand-alone message flow, you must include at
least one Output node to propagate messages to subsequent nodes that you connect to the
subflow.
Compute
Use the Compute node to:
* Manipulate message content
* Transform the message in some way
* Interact with a database to modify the content of the message or the database and
pass on one or more new messages
JavaCompute
Use the JavaCompute node to:
* 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.
Mapping
Use the Mapping node to create a new message from the input message by mapping
the content of elements of the output message from elements of the input message, or
from database content. You can also extract parts of the message, and optionally change
their content, to create a new output message that is a partial copy of the message that is
received by the node.
Database
Use the Database node to interact with a database that is identified by the node
properties. The Database node handles both predefined and self-defining messages.
DataDelete, DataInsert, DataUpdate
The DataDelete, DataInsert, and DataUpdate nodes are specialized forms of the
Database node that provide a single mode of interaction (deletion of one or more rows,
insertion of one or more rows, or update of one or more existing rows).
Warehouse
The Warehouse node provides a store interface that you can use to store all or part of
the message in a database
XMLTransformation
Use the XMLTransformation node to transform an input XML message into another
format using XSLT style sheets.
It, can perform the following actions:
* Sort the data
* Select data elements to include or exclude based on some criteria
* Transform the data into another format
JMSMQTransform
Use the JMSMQTransform node to transform a message with a JMS message tree into
a message that has a tree structure that is compatible with the format of messages that are
produced by the WebSphere MQ JMS provider.
MQJMSTransform
Use the MQJMSTransform node to receive messages that have a WebSphere MQ JMS
provider message tree format, and transform them into a format that is compatible with
messages that are to be sent to JMS destinations.
MQOptimizedFlow
Use the MQOptimizedFlow node to replace a publish/subscribe message flow that
consists of an MQInput node connected to a Publication node, and that uses the JMS over
WebSphere MQ transport.
User-defined
Use a user-defined node to handle specific requirements that are not met by the built-in
nodes.
Validate
Use the Validate node to check that the message that arrives on its input terminal is as
expected.
Filter
Use the Filter node with an ESQL statement to determine the next node to which the
message is sent by this node.
FlowOrder
You can connect the terminals of this node to force the message to be processed by one
sequence of nodes, followed by a second sequence of nodes.
Passthrough
Use the Passthrough node to enable version control of a subflow at run time. Use this
node to add a label to your subflow.
RouteToLabel and Label
Use the RouteToLabel node following a Compute node for complex routing. Define a
list of destinations in a Compute node that are acted on by the RouteToLabel node, which
interrogates the destinations and passes the message on to the corresponding Label node.
ResetContentDescriptor
Use the ResetContentDescriptor node to set new message properties that are used when
the message bit stream is next parsed by a subsequent node in the message flow.
Nodes for controlling time-sensitive operations
TimeoutControl
Use a TimeoutControl node and a TimeoutNotification node together in a message
flow to control events that occur at a specific time or at defined time intervals. The
TimeoutControl node receives an input message that contains a timeout request. All or
part of this input message is validated and stored to be propagated by an associated
TimeoutNotification node in the message flow. The input message is also propagated
unchanged to the next node in the message flow.
TimeoutNotification
Use a stand-alone TimeoutNotification node to generate messages that are propagated
at configured times or time intervals to the next node in the message flow for further
processing.
Trace
Include a Trace node to generate one or more trace entries to record what is happening
in the message flow at this point.
TryCatch
Include a TryCatch node to control the error processing when exceptions are thrown.
Throw
Include a Throw node to force an exception to be thrown, and specify the identity of
the exception, to make it easier to diagnose the problem.
FileInput node reads files from the local file system or FTP server
FileOutput node writes files to the local file system or FTP server
The new Route node provides a graphical technique to enable incoming requests to be
examined, and flow sent down the appropriate part of the message flow, depending on the
specified criteria.
The DatabaseRoute node provides a similar function to the Route node, but the routing
decision is based on the contents of a relational database.
DatabaseRetrieve node enables data to be retrieved from one of more relational
databases, and use a similar dialogue to the DatabaseRoute node.
New nodes in V7
V7 introduced new nodes for SCA (service component architecture). These are nodes are
basically for use with websphere process server which uses SCA.
SCA Input Node: A WebSphere Process Server SCA Import component can use
Message Broker as an SCA endpoint. The message received by the broker can be a SOAP
over HTTP message or an MQ message on a queue, depending on the binding used by
the node.
SCA Reply Node: This allows a response message to be sent from the broker back to the
originating Process Server SCA client, in response to a prior message received by an
SCA Input Node.
SCA Request Node: This allows synchronous requests to be made from the broker,
allowing the broker to participate in synchronous message exchange patterns with a
Process Server SCA export component. The message sent by the broker can be a SOAP
message over HTTP, or an MQ message, depending on the binding used by the node. The
node will perform a blocked wait for a specified time period until a response is received