I'm using AE subscriber activity over JMS, I wish to use 'client' acknowledge mode and also specify the number of sessions. But I don't see a way to do it. Why ?

I'm using AE subscriber activity over JMS, I wish to use 'client' acknowledge mode and also specify the number of sessions. But I don't see a way to do it. Why ?

book

Article ID: KB0091311

calendar_today

Updated On:

Products Versions
TIBCO ActiveMatrix BusinessWorks -
Not Applicable -

Description

Resolution:
Lets first talk about a simple JMS queue/topic receiver activity. When using this activity you can specify 'Client' acknowledge mode which is a JMS standard. The JMS spec says that confirming one message on a session should confirm all the messages received in that Session. This is to enforce the usage of the Session in a single thread. This doesn’t fit very well for Multi-threaded applications like BW. To workaround this issue for the ‘Client’ acknowledge mode, BW allows users to specify number of sessions and internally BW uses a pool of Thread/Session/Consumers. This works fine, but comes at a price.

TIBCO EMS provides an extension to the acknowledge mode called "TIBCO EMS Explicit" client acknowledge mode. This acknowledge mode overcomes the restrictions described above. Each message received by the session needs to be explicitly acknowledged, so there is no need to block the session in a thread.

For the AE subscriber activity over JMS, if 'Auto-confirm' is not used internally we set the acknowledge mode to 'TIBCO EMS explicit'. Only one session is created and it can still handle all the incoming messages as the session is not blocked. So there is no necessity to use 'client' acknowledge mode and specify number of sessions. But what if you want to use AE-JMS subscriber with other JMS vendors ? AE subscriber is supported only with TIBCO EMS, so 'TIBCO EMS explicit' acknowledge mode will always work.

Issue/Introduction

I'm using AE subscriber activity over JMS, I wish to use 'client' acknowledge mode and also specify the number of sessions. But I don't see a way to do it. Why ?