Resolution: The major difference between Client Ack and EMS Explicit Ack is that, with Client Ack mode the Session is blocked until a Confirmation comes back. So one message will be picked by the Session and it is blocked until a confirmation is send back. Where as in EMS Explicit Ack mode the Session is not blocked. One session will be able to take n number of messages, and has an ability to confirm each message at a time. Please note that the EMS Explicit Ack mode is a TIBCO EMS Server extension to the JMS Standard spec.
In general we recommend using Tibco EMS Explicit when you do query a database, waiting for a reply and similar cases in your processing.
One example of when EXPLICIT_CLIENT_ACKNOWLEDGE would be used is when receiving messages and putting the information in a database. If the database insert operation is slow, you may want to 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.