book
Article ID: KB0085975
calendar_today
Updated On:
Description
Resolution:
Description:
= = = = = =
When the clientID is set in BW (hard coded clientID or auto-generated clientID), BW appends the clientID with the subscription/durable name and creates a new durable subscription, though the subscription/durable name is already defined in the durables.conf file.
Environment:
= = = = = = =
1. TIBCO Enterprise Message Service (EMS) - All versions
2. TIBCO Business Works (BW) – All versions
3. TIBCO Runtime Agent (TRA) – All versions
Resolution:
= = = = = =
1). Create a user who is authorized to connect to the EMS server, for example, user name is" test". Set the password as "test", i.e. “create user test password=test”.
2). Make the topic name secure, for example if the topic name is topic.sample, then add the property "secure" to it, i.e. “addprop topic topic.sample secure”.
3). Create the durable statically, for example create a durable named "subscriber" on topic "topic.sample". i.e. “create durable topic.sample subscriber”.
4). Create an ACL in the acl.conf file which allows the user "test" only to publish and subscribe to an existing durable, i.e.
TOPIC=topic.sample USER=test PERM=subscribe,publish,use_durable
5). Restart the EMS server.
6). Enable the Authorization in EMS server. i.e. “set server authorization=enabled”.
7). In the BW process, uncheck the “Auto generate Client ID” checkbox from the BW-JMS Connection.
Use the user “test” and password “test” in the JMS connection which is used by the durable subscriber process.
Set the “Durable Subscription Name” as “subscriber”.
By doing so, dynamic durable creation has been blocked in the EMS server for the topic “topic.sample” and BW is forced to use the static durable name that has been configured in the EMS server.
This behavior cannot be achieved if the Auto generate clientID” checkbox in BW is checked. However if ClientID must be used with BW application a hard-coded clientID should be provided for the JMS-Connection that the subscriber is using, i.e. testClient. In that case, the static durable in EMS needs to be defined as “testClient:subscriber”.
Issue/Introduction
How to force a BusinessWorks (BW) application to use a pre-created durable subscription name in EMS instead of creating a dynamic durable subscriber?