![]() |
Copyright © Cloud Software Group, Inc. All Rights Reserved |
Refer to the TIBCO Enterprise Message Service User’s Guide for details on the JMS message delivery and acknowledgement 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.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_numberwhere delivery_mode_number is one of the numbers that represent a delivery mode, as shown in JMS Message Delivery Modes table.
Table 34: JMS Message Delivery Modes
• 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.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_numberwhere 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:
Table 35: JMS Message Acknowledgement Modes 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 (TIBCO Proprietary)
• 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 |