Structure of a process choreographer JMS message
For V5.0-style processes, a Java Message Service (JMS) message
consists of:
- A message header for message identification and routing information.
- Properties for JMS-specific data, application-specific data, and provider-specific
data (optional).
- The body (payload) of the message that holds the content (optional).
Process choreographer supports text, object, and bytes-message formats.
Message header
A process choreographer client application can set the following fields:
- JMSReplyTo
The destination to send a reply to the request. If this
field is not set, a reply is not returned.
- JMSMessageID
Uniquely identifies a message. This value is set by process choreographer when
the message sent returns. This identifier is used as the JMSCorrelationID
in the reply message.
- JMSCorrelationID
Links messages. Do not set this field. A process choreographer reply
message contains the JMSMessageID of the request message.
Data properties
This data is passed as name-value pairs. Process choreographer adds the following
properties:
- wf$verb
The function to call. Possible values are: initiate, call,
forceTerminate, sendEvent.
If the wf$verb property is not set and the
JMSReplyTo field is set, then call is issued. If neither the wf$verb property
nor the JMSReplyTo field are set, then initiate is issued.
- wf$processTemplateName
The name of the process template to instantiate.
This template name must be set for the call and the initiate functions. If
the template name is not set, Dispatch is assumed.
- wf$piid
The object ID of the process instance. You can use this ID
with the forceTerminate and the sendEvent functions to identify the process
instance. The value is set as the result of the initiate function if the JMSReplyTo
filed is set. If both the wf$piid and the wf$processInstanceName values are
set, the value for wf$processInstanceName is used.
- wf$processInstanceName
The name of the process instance. You can use
this name with the forceTerminate and the sendEvent functions to identify
the process instance to process. It can be used with the call and the initiate
functions to specify the process instance name of the process instance to
create.
- wf$eventName
The name of the event to send. This value must be set
for the sendEvent function.
- wf$processState
The state of the process instance. This value is set
in reply messages.
- wf$exceptionText
Specifies the message text of the exception that ended
the process.
Message payload
Use to specify input, output, and fault messages.
- Request messages
- TextMessage must contain an object of the type String. This object contains
the input message to pass. It requires that the defined input message is also
of type String.
- ObjectMessage must contain an object of the type ClientObjectWrapper.
This object contains the input message to pass.
- BytesMessage must contain a byte array that represents the streamed version
of the input message to pass.
- Reply messages
- If possible, the reply message is the same format as the request message.
That is, if the request message has a TextMessage format, then the reply message
also has a TextMessage format. If a TextMessage format cannot be used, for
example, because the type of the process instance output message is not a
String, then a message with ObjectMessage format is returned.
- If an ObjectMessage message is returned, it contains an object of the
type ClientObjectWrapper. This object contains the output message or the message
of the fault terminal.
- If a BytesMessage message is returned, it contains the streamed output
message or the streamed message of the fault terminal.
- If a process can be navigated until its output or fault terminal is reached,
the wf$processInstanceName and the wf$processState properties are set.
- If an exception occurs during the processing of a request or if an exception
occurs during the execution of a process instance and the fault is not connected
to a fault terminal of the process, the reply message does not contain a payload.
The wf$processInstanceName, the wf$processState, and the wf$exceptionText
properties are set. The wf$exceptionText property contains the message text
of the exception that ended the process. Nested exceptions follow the message
text. These exceptions are separated by new-line characters.
Searchable topic ID:
c6jmsxml
Last updated: Jun 21, 2007 8:07:48 PM CDT
WebSphere Business Integration Server Foundation, Version 5.0.2
http://publib.boulder.ibm.com/infocenter/wasinfo/index.jsp?topic=/com.ibm.wasee.doc/info/ee/wfapi/concepts/c6jmsxml.html