The JMS resource adapter is a thin wrapper of the WebLogic JMS client. Users can choose to configure their connection client-id to be either RESTRICTED or UNRESTRICTED and their subscriptions to be either Sharable or Exclusive.
The JMS resource adapter provides a number of predefined JMS connection factories. Each JMS connection factory interface has its own <connection-definition>
element. Each <connection-definition>
defines the classes and interfaces as required by the Java Connector Architecture specification and additional configuration properties.
The JMS resource adapter supports the following connection factories:
WebLogic JMS non-XA ConnectionFactory
WebLogic JMS non-XA QueueConnectionFactory
WebLogic JMS non-XA TopicConnectionFactory
WebLogic JMS XA ConnectionFactory
WebLogic JMS XA QueueConnectionFactory
WebLogic JMS XA TopicConnectionFactory
See the <outbound-resourceadapter>
element of the ra.xml
file in Example JMS Resource Adapter ra.xml File.
The JMS resource adapter supports additional configuration properties that can be set in the ra.xml
file or in the Java EE container of the foreign application server where the JMS resource adapter is deployed, as explained in JMS Resource Adapter Outbound Configuration Properties.
The following is an example WebLogic XA connection factory with additional configuration properties:
. . . <connection-definition> <managedconnectionfactory-class> weblogic.jms.ra.WLManagedXAConnectionFactory </managedconnectionfactory-class> <config-property> <config-property-name>LoggerName</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value>weblogic.jms.ra</config-property-value> </config-property> <config-property> <config-property-name>LogLevel</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value>FINEST</config-property-value> </config-property> <config-property> <config-property-name>group</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value></config-property-value> </config-property> <config-property> <config-property-name>rpResourceLocation</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value></config-property-value> </config-property> <config-property> <config-property-name>autoCloseSession</config-property-name> <config-property-type>java.lang.Boolean</config-property-type> <config-property-value>false</config-property-value> </config-property> <connectionfactory-interface> weblogic.jms.ra.WLXAConnectionFactoryInterface </connectionfactory-interface> <connectionfactory-impl-class> weblogic.jms.ra.WLXAConnectionFactory </connectionfactory-impl-class> <connection-interface> weblogic.jms.ra.WLXAConnectionInterface </connection-interface> <connection-impl-class> weblogic.jms.ra.WLXAConnection </connection-impl-class> </connection-definition> . . .
Note the following connection management limitations:
The WebLogic automatic JMS client failover feature enables a JMS client to automatically reconnect to another live server instance in a cluster if a server or network failure occurs. This feature interferes with a JMS resource adapter's ability to associate the best Interposed Transaction Managers (ITMs) for managed connections. The JMS resource adapter automatically disables this feature and throws an exception if application code tries to enable automatic reconnect programmatically.
The UP
and DOWN
events are not currently supported in WebLogic Server. You also cannot create a connection to a specific WebLogic Server instance. This may result in repeated use of a bad connection because JMS resource adapter connection purging may not immediately identify bad connections before they are resused.
Because UP
events are not currently supported in WebLogic Server, the JMS resource adapter does not support connection rebalancing.
The JMS resource adapter outbound implementation is not aware of the UP
and DOWN
events of Managed Server instances in a cluster with which an outbound application is communicating. Because of this limitation, note the following:
You may see the continued use of a bad connection because JMS resource adapter connection purging may not immediately identify a bad connection before it is reused.
The JMS resource adapter does not automatically rebalance connections.
A WebLogic Server cluster consists of multiple Managed Server instances running simultaneously and working together to provide increased scalability and reliability. A JMS distributed destination usually has a set of members distributed across multiple Managed Server instances, with each member hosted by a separate JMS server instance. See Understanding WebLogic Server Clustering in Administering Clusters for Oracle WebLogic Server.
The following topics provide information about how the JMS resource adapter load balances outbound WebLogic JMS communication:
The JMS resource adapter supports RMI object load balancing using WebLogic JMS connection factories to create connections and sessions that point to different WebLogic Server instances.
See Load Balancing in a Cluster in Administering Clusters for Oracle WebLogic Server.
Load balancing to WebLogic distributed destinations (DDs) is automatically supported without additional configuration. DDs appear to the JMS resource adapter as a single, logical destination. Both a distributed destination and its members are advertised in WebLogic JNDI. When messages are load balanced to a member of a distributed destination on a WebLogic Server instance that is different from the instance that the JMS resource adapter's managed connection points to, the Interposed Transaction Manager (ITM) of the managed connection is able to enlist the messages sent to a different WebLogic Server instance, transparently relaying XA calls to the corresponding transaction coordinator on that instance, if necessary.
Note:
Individual distributed topic members must be referenced when creating, using, and unsubscribing a durable subscription.
The JMS resource adapter provides outbound XA capability for applications using WebLogic JMS according to the Java Connector Architecture standard. See Transaction Support for Outbound Communication.
Configure the authentication-mechanism
element in the ra.xml
file, as explained in Java Connector Architecture Security.