Get JMS Queue Message

Get JMS Queue Message is an asynchronous activity that retrieves a message from the specified queue. You can use this activity to perform a receive operation on the queue as opposed to waiting for a queue message to be delivered to the Wait for JMS Queue Message activity.

You can use the Message Selector field on the Advanced tab to retrieve a specific queue message from the queue.

General

The General tab has the following fields.

Field Literal Value/Process Property/Module Property Description
Name None The name to be displayed as the label for the activity in the process.
JMS Connection Literal Value

Module Property

The JMS connection. For more information, see JMS Connection.
Destination Yes The name of the queue from which to retrieve the message.

The syntax of the destination name is specific to the JMS provider you are using. For more information about queue names, see the JMS provider documentation .

Message Type None The type of the message. This can be one of the following:
  • Text: the message is a java.lang.String.
  • Byte: a stream of bytes.
  • Map: a set of name or value pairs. The names are strings, and the values are simple datatypes (JAVA primitives), an array of bytes (use the Binary datatype when mapping this data), or a string. Each item can be accessed sequentially or by its name.
  • Object: a Java object that can be serialized.
  • Object Ref: an object reference to a Java object.
  • Simple: a message with no body part.
  • Stream: a stream of Java primitives, strings, or arrays of bytes. Each value must be read sequentially.
  • XML Test: the message is XML text.
Acknowledge Mode Yes The acknowledge mode for incoming messages. It can be one of the following:
  • Auto: the message is automatically acknowledged, when it is received.
  • Client: the message is acknowledged at a later point by using the Confirm activity. If the message is not confirmed before the process instance ends, the message is redelivered and a new process instance is created to handle the new incoming message. Ensure that your process confirms the message when using the acknowledge mode.
  • Dups Ok: the message is acknowledged automatically when it is received. JMS provides this mode for lazy acknowledgment, but TIBCO BusinessWorks Container Edition acknowledges messages upon receipt.
  • TIBCO EMS Explicit Client: (only available for TIBCO Enterprise Message Service) a message which is not acknowledged using the Confirm activity before the process instance ends, is redelivered instead of all messages in the session. The session is not blocked and one session handles all incoming messages for each process instance.
  • TIBCO EMS Explicit Client Dups OK: (only available for TIBCO Enterprise Message Service) a message which is not acknowledged using the Confirm activity before the process instance ends, is redelivered instead of all messages in the session. The session is not blocked and one session handles all the incoming messages for each process instance. The messages however, are lazily acknowledged.
  • TIBCO EMS No Acknowledge: messages delivered using this mode do not require acknowledgment. Therefore, messages in this mode are not redelivered regardless of whether the delivery was successful.
Default Map Type Value Yes When the message is sent with the message type as Map, the optional XML schema elements having data type as Int, Integer, Float, Decimal, or Double with null values, and the Default Map Type Value check box is selected, then the default value is added while creating the node at the receiver side for respective element, otherwise the node is not created.

Description

Provide a short description for the activity here.

Advanced

The Advanced tab has the following fields.

Field Literal Value/Process Property Description
Message Selector Yes A string to determine whether a message should be received. The syntax of the message selector is determined by the JMS provider (where message properties are used instead of table column names).

For more information and syntax for a message selector string, see the JMS provider documentation .

Application Properties Type None The type of application-specific message properties that is part of the message.

Output Editor

The Output Editor tab defines the schema to use for messages of type Map, Stream, or XML Text. Map messages are name or value pairs, and using this schema you can define the structure of the retrieved destination queue message. The schema defined on the Output Editor tab becomes the body of the message on the Output tab. For XML Text message type, select an XSD element. For Map and Stream message types, select an XSD type in the Output Editor tab.

Input

The following is the input for the activity.

Input Item Datatype Description
destinationQueue string The queue to which to send the request. This input item overrides the Destination field on the General tab.
timeout integer This field specifies the amount of time (in milliseconds) that the activity waits before it times out. If set to zero (0), the activity does not time out.
selector string A string to determine whether a message should be received. The value of this element overrides any value specified in the Message Selector field on the Advanced tab. The syntax of the message selector is determined by the JMS provider, but it is usually a subset of SQL92 (where message properties are used instead of table column names).

For more information and syntax for a message selector string, see the JMS provider documentation .

Output

The following is the output of the activity.

Output Item Datatype Description
JMSHeaders complex The message header fields for the message. For more information about message header fields, see Common JMS Properties and Headers .

Only properties applicable to this type of message are displayed.

JMSProperties complex The message properties for the message. For more information about message properties, see Common JMS Properties and Headers .

Only properties applicable to this type of message are displayed.

Body as per message type The body of the message.
DynamicProperties complex Dynamic properties is an additional parameter to add runtime property to the outgoing JMS messages that are specified in the Input tab. This is an optional element with only one instance. Dynamic property can have multiple property elements.

Each property element denotes a single dynamic property and can contain the following elements:

  • Name - Required. Name of the property with one instance.
  • Value - Required. Value of the property with one instance.
  • Type - Optional. Type of the property. If not provided, it is considered as string.

The following data types are supported:

  • string
  • boolean
  • short
  • integer
  • long
  • float
  • double
  • byte
Note: The DynamicProperty overwrites the value of a property (with the same name) added using the JMS Application Property. The DynamicProperties are also added to the outgoing message.

Fault

The Fault tab lists the possible exceptions generated by this activity. For more information about error codes and the corrective action to take, see TIBCO BusinessWorks™ Container Edition Error Codes guide.

Fault Generated When..
JMSInvalidInputException The input to the activity is not valid.
JMSSessionCreateException The JMS session could not be created.
JMSReceiveException The JMS receive operation failed.
ActivityTimedOutException A timeout has been reached.