...
When you have no way to create a XAConnectionFactory in a javabean way, you can specify the className argument of PoolingConnectionFactory to be bitronix.tm.resource.jms.JndiXAConnectionFactory. This class is an implementation of XAConnectionFactory that will wrap another implementation fetched from JNDI.
...
It is often required to use credentials to be able to connect to a JNDI repository. The bitronix.tm.resource.jms.JndiXAConnectionFactory class fully supports this via its securityPrincipal and securityCredentials properties as illustrated bellow:
| Code Block |
|---|
PoolingConnectionFactory myConnectionFactory = new PoolingConnectionFactory ();
...
myConnectionFactory.getDriverProperties().setProperty("name", "QueueConnectionFactory@router1");
myConnectionFactory.getDriverProperties().setProperty("initialContextFactory", "com.swiftmq.jndi.InitialContextFactoryImpl");
myConnectionFactory.getDriverProperties().setProperty("providerUrl", "smqp://localhost:4001/timeout=10000");
// set JNDI username / password
myConnectionFactory.getDriverProperties().setProperty("securityPrincipal", "jndiUser");
myConnectionFactory.getDriverProperties().setProperty("securityCredentials", "jndiPassword");
...
|
Other JNDI properties
Some new properties have been added in BTM 1.3.3 to make the JndiXAConnectionFactory more flexible:
- urlPkgPrefixes Used to set the Context#URL_PKG_PREFIXES.
- narrowJndiObject Used to indicate if PortableRemoteObject.narow() should be applied on the object fetched from JNDI.
- extraJndiProperties Extra JNDI environment properties added the the InitialContext.
