Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved


Chapter 5 Transport Communication : Set JMS Message Delivery and Acknowledgement Mode

Set JMS Message Delivery and Acknowledgement Mode
This section explains the delivery and acknowledgement modes for the JMS messages as processed by the TIBCO API Exchange Gateway. You can set the delivery and acknowledgement modes for a message sent over the JMS channel.
Refer to the TIBCO Enterprise Message Service User’s Guide for details on the JMS message delivery and acknowledgement modes.
JMS Message Delivery Modes
The delivery mode for a JMS message is specified by the sender and instructs the server concerning persistent storage for the message. The JMSDeliveryMode message header field defines the delivery mode for the message.
JMS supports PERSISTENT and NON_PERSISTENT delivery modes for both topic and queue. TIBCO Enterprise Message Service extends these delivery modes to include a RELIABLE delivery mode.
To set the delivery mode for the JMS message, add the following configuration property in the ASG_CONFIG_HOME/asg.properties file:
 
tibco.clientVar.ASG/SharedResources/JMS/deliveryMode=delivery_mode_number
where delivery_mode_number is one of the numbers that represent a delivery mode, as shown in JMS Message Delivery Modes table.
For example, if you want to set the delivery mode as PERSISTENT, add the property as follows:
tibco.clientVar.ASG/SharedResources/JMS/deliveryMode=2
JMS providers such as IBM WebSphere MQ support the standard delivery modes (1 interpreted as NON_PERSISTENT and 2 interpreted as PERSISTENT), but, do not support the delivery mode 22 interpreted as RELIABLE.
TIBCO Enterprise Message Service supports the standard delivery modes (1 interpreted as NON_PERSISTENT, 2 interpreted as PERSISTENT) and the extended mode 22 interpreted as RELIABLE.
JMS Message Acknowledgement Mode
Set the acknowledgement mode for the JMS message by adding a configuration property in the ASG_CONFIG_HOME/asg.properties file as follows:
 
tibco.clientVar.ASG/SharedResources/JMS/ackMode=acknowledgement_mode_number
where acknowledgement_mode_number is one of the numbers that represent an acknowledgement mode, as shown in JMS Message Acknowledgement Modes table.
For example, if you want to set the acknowledgement mode as CLIENT_ACKNOWLEDGE, add the property as follows:
tibco.clientVar.ASG/SharedResources/JMS/ackMode=2
Specifies that the session is to "lazily" acknowledge the delivery of messages to the consumer. "Lazy" means that the consumer can delay the acknowledgement of messages to the server until a convenient time; meanwhile the server might redeliver messages. This mode reduces the session overhead. However, if JMS fails, the consumer may receive duplicate messages.
NO_ACKNOWLEDGE (TIBCO Proprietary)
Note  Sessions created in NO_ACKNOWLEDGE receipt mode cannot be used to create durable subscribers.
Note  Also, queue receivers on a queue that is routed from another server are not permitted to specify NO_ACKNOWLEDGE mode.
EXPLICIT_CLIENT_ACKNOWLEDGE (TIBCO Proprietary)
EXPLICIT_CLIENT_ACKNOWLEDGE is like CLIENT_ACKNOWLEDGE except it acknowledges only the individual message, rather than all messages received so far on the session.
One example of when EXPLICIT_CLIENT_ACKNOWLEDGE is used when receiving messages and putting the information in a database. If the database insert operation is slow, use multiple application threads all doing simultaneous inserts. As each thread finishes its insert, it can use EXPLICIT_CLIENT_ACKNOWLEDGE to acknowledge only the message that it is currently working on.
EXPLICIT_CLIENT_DUPS_OK_ACKNOWLEDGE mode is similar to TIBEMS-DUPS-OK-ACKNOWLEDGE except it "lazily" acknowledges only the individual message, rather than all messages received so far on the session.
 
The standard acknowledgement modes (1-AUTO_ACKNOWLEDGE,2-CLIENT_ACKNOWLEDGE,3-DUPS_OK_ACKNOWLEDGE) are supported by all the JMS providers such as IBM WebSphere MQ.
The extended acknowledgment modes (22-NO_ACKNOWLEDGE, 23-EXPLICIT_CLIENT_ACKNOWLEDGE, 24-EXPLICIT_CLIENT_DUPS_OK_ACKNOWLEDGE) are provided as an extension only by TIBCO Enterprise Message Service. These modes are not supported by other JMS providers such as IBM WebSphere MQ.
If you are using TIBCO Enterprise Message Service for JMS transport, use the extended acknowledgment modes (22-NO_ACKNOWLEDGE, 23-EXPLICIT_CLIENT_ACKNOWLEDGE, 24-EXPLICIT_CLIENT_DUPS_OK_ACKNOWLEDGE) for performance and tuning purposes.

Copyright © Cloud Software Group, Inc. All Rights Reserved
Copyright © Cloud Software Group, Inc. All Rights Reserved