Details
-
Bug
-
Resolution: Done
-
Major
-
8.1.0.Final
-
None
Description
If an users uses the generic JMS RA with the TIBCO EMS messaging server, he has to duplicate all the JNDI parameters in the MDB annotations.
Instead, he should be able to use a naming's external-context to connect to the Remote TIBCO server with the following configuration:
<bindings> <external-context name="java:global/tibco" module="com.tibco" class="javax.naming.InitialContext"> <environment> <property name="java.naming.factory.initial" value="com.tibco.tibjms.naming.TibjmsInitialContextFactory"/> <property name="java.naming.provider.url" value="tcp://<tibco_server>:<tibco_port>"/> <property name="java.naming.factory.url.pkgs" value="com.tibco.tibjms.naming"/> </environment> </external-context> </bindings>
With these settings, the user only needs to pass the expected connection factory and destination lookup in the MDB:
@ActivationConfigProperty(propertyName = "connectionFactory", propertyValue = "java:global/tibco/XACF"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "java:global/tibco/Q1"),
The local JNDI lookup "java:global/tibco/Q1" will then use the external context (bound to "java:global/tibco") to lookup the "Q1" name on the TIBCO EMS.
There are a few bugs in the ExternalObjectFactory that prevents to use this configuration with a regular javax.naming.InitialContext to build the external context.