Input Arguments Used by the Dispatch Step
The following table shows the options for each input argument of the JMS Transport methods, except the user-defined properties and arguments used by the Dispatch step. R denotes a required argument; NR denotes an optional argument (not required); and I denotes an argument that is ignored. Notes following the table provide further explanation for particular values.
Input Argument | Send |
Publish |
Send Receive |
Receive |
Subscribe |
Receive Dispatch |
Receive Dispatch Send |
Subscribe Dispatch |
---|---|---|---|---|---|---|---|---|
ConnectionFactory |
R |
R |
R |
R |
R |
R |
R |
R |
ReceiveQueue |
I |
I |
R |
R |
I |
R |
R |
I |
ReceiveTimeout |
I |
I |
NR |
NR |
NR |
NR |
NR |
NR |
SendQueue |
R |
I |
R |
I |
I |
I |
R |
I |
Topic |
I |
R |
I |
I |
R |
I |
I |
R |
ConnectionUsername |
NR |
NR |
NR |
NR |
NR |
NR |
NR |
NR |
ConnectionPassword |
NR |
NR |
NR |
NR |
NR |
NR |
NR |
NR |
SendUsername |
NR |
I |
NR |
I |
I |
NR |
I |
I |
SendPassword |
NR |
I |
NR |
I |
I |
NR |
I |
I |
ReceiveUsername |
I |
I |
NR |
I |
I |
I |
NR |
I |
ReceivePassword |
I |
I |
NR |
I |
I |
I |
NR |
I |
TopicUsername |
I |
NR |
I |
I |
NR |
I |
I |
NR |
TopicPassword |
I |
NR |
I |
I |
NR |
I |
I |
NR |
SubscriberIdentifier |
I |
I |
I |
I |
R |
I |
I |
R |
JMS Headers |
||||||||
JMSPriority |
NR |
NR |
NR |
I |
I |
I |
NR 2 |
I |
JMSDeliveryMode |
NR |
NR |
NR |
I |
I |
I |
NR 2 |
I |
JMSExpiration |
NR |
NR |
NR |
I |
I |
I |
NR 2 |
I |
JMSReplyTo |
NR |
NR |
I |
I |
I |
I |
NR 2 |
I |
JMSType |
NR |
NR |
NR |
I |
I |
I |
NR 2 |
I |
JMSCorrelationID |
NR |
NR |
NR |
I |
I |
I |
I |
I |
Dispatch |
||||||||
Connection Subsystem |
NR |
NR |
NR |
NR |
NR |
NR |
NR |
NR |
DataHandling Subsystem |
I |
I |
I |
I |
I |
NR |
NR |
NR |
DispatchService |
I |
I |
I |
I |
I |
R |
R |
R |
DispatchMethod |
I |
I |
I |
I |
I |
R |
R |
R |
DispatchWorkflow Process |
I |
I |
I |
I |
I |
R |
R |
R |
DispatchRuleSet |
I |
I |
I |
I |
I |
R |
R |
R |
ConverterService |
I |
I |
I |
I |
I |
NR |
NR |
NR |
Some special notes regarding particular values in the previous table:
When the JMSReplyTo header is used, the SendQueue value is ignored.
When the JMSPriority, JMSDeliveryMode, JMSExpiration, JMSReplyTo, or JMSType header is used, these values are assigned to the reply message during the Send step.
The JMSReplyTo header of the sent message is set to the value of the ReceiveQueue argument.
The JMSCorrelationID header of the reply message cannot be set directly. The JMSCorrelationID of the reply message is set to the JMSCorrelationID of the received message, unless empty, in which case it is set to its JMSMessageID.
For DispatchService, DispatchMethod, DispatchWorkflowProcess, and DispatchRuleSet method arguments, one of the following three combinations is required:
(DispatchService && DispatchMethod)
DispatchWorkflowProcess
DispatchRuleSet
The ConnectionUsername and ConnectionPassword input parameters apply to IBM WebSphere MQ only.
Note: When sending messages to IBM WebSphere MQ, ConnectionUsername and ConnectionPassword are recommended for supported Microsoft Windows operating systems.The SendUsername, SendPassword, ReceiveUsername, ReceivePassword, TopicUsername, and TopicPassword input parameters apply to Oracle WebLogic only.
The JMSType and JMSCorrelationID input arguments can also be used as output arguments.
-
All methods that receive messages automatically time out if no message is available. The timeout length is three seconds by default or is specified by the ReceiveTimeout or JBSTimeout parameter. JBSTimeout is an input argument that automatically has the ReceiveTimeout value. ReceiveTimeout must be set to a value greater than 0 (milliseconds), or else the receive operation will fail and you will not receive any message. The EAI JMS Transport business service obtains the ReceiveTimeout value in one of three ways, in the following order or precedence:
- In the connection subsystem. If the ReceiveTimeout value is found in the connection subsystem, then the business service does not look for it elsewhere.
- In the input property set. If the ReceiveTimeout value is not found in the connection subsystem, then the business service looks for it in the input property set.
- In the user properties of the EAI JMS Transport business service. If the ReceiveTimeout value is not found in the connection subsystem or in the input property set, then the business service looks for it in the user properties of the EAI JMS Transport business service.
For the ConnectionSubsystem input argument, a subsystem can be provided instead of the connection parameters. However, it must contain the same required method arguments as used for the connection parameters.
For the DataHandlingSubsystem input argument, a subsystem can be provided instead of the dispatch parameters. However, it must contain the same required method arguments as used for the dispatch parameters.
The ConverterService input argument is used to process the output of the received message before dispatching.
In place of providing the arguments individually, the single argument ConnectionSubsystem can be provided. Its value must be the name of a valid named subsystem of type JMSSubsys, and it must include all of the arguments that are required by the method to which it is passed. For more information about the ConnectionSubsystem named subsystem, see About the JMS Receiver.
JMS message properties are also supported as input arguments (properties), as described in JMS Headers and Properties. See also Input Argument Values, following.