3 Administering the JMS Resource Adapter on Oracle GlassFish Server

The following topics describe the JMS resource adapter implementation, including the main components, design options, and other prerequisite considerations that are needed to use the JMS resource adapter to interoperate using WebLogic JMS in a foreign application server:

JMS Resource Adapter Components

The JMS resource adapter includes the following components:

  • ra.xml file—An xml file used to configure the JMS resource adapter to interoperate between foreign application servers and WebLogic JMS.

  • wlthint3client.jar file—The WebLogic Thin T3 Java client is a lightweight client that provides integration between applications running on foreign application servers and WebLogic Server. One common use case is integration with WebLogic JMS destinations.

    For more information, see Understanding the WebLogic Thin T3 Client in Developing Standalone Clients for Oracle WebLogic Server.

  • The following classes and JAR files to support Oracle Wallet:

    • oraclepki.jar

    • osdt_cert.jar

    • osdt_core.jar

    • WalletUtilWrapper.class

    For more information, see Securing Credentials with Oracle Wallet.

  • weblogic.jms.ra.jar file—The WebLogic Server resource adapter implementation that complies with the Java EE Connector Architecture version 1.7.

How to Integrate the JMS Resource Adapter in a JMS Environment

Complete the following tasks to integrate the JMS resource adapter with a foreign application server, allowing applications to interoperate with WebLogic JMS:

General Limitations and Considerations

Note the following considerations and limitations when you use the JMS resource adapter:

  • If two or more JMS resource adapters are deployed on the same application server, those deployments must use the same version of Oracle WebLogic Server in the wljmsra.rar file. Different release versions of the JMS resource adapter may contain differences that can produce unpredictable results.

  • The JMS resource adapter does not automatically unsubscribe (that is, remove) a durable subscriber if the listening message-driven bean (MDB) becomes unavailable. Although WebLogic Server MDBs support the ability to unsubscribe, they also create and name the subscription. Foreign application servers typically allow users to specify subscription names in MDB configurations, making it difficult to determine if it is appropriate to unsubscribe a given durable subscriber. Even it can be determined that it is appropriate to remove a given subscription, the Java Connector Architecture contract does not provide a standard implementation to provide the callback interface to remove a subscriber.

  • Automatic JMS client failover is not supported.

    For more information, see JMS Resource Adapter Outbound Connection Limitations.

  • Applications that use the WebLogic JMS resource adapter automatically use WebLogic JMS connections that are associated with a foreign application server's connection manager. These managed JMS connections are created, used, and returned to the foreign application server's connection pool for reuse by other applications, as described in various Java EE specifications. This has the following limitations:

    • Using the setClientID method on a connection is not supported. If a ClientID property is set on a connection, then the connection can't be removed, and every application that reuses the connection gets a ClientID value. An application using such a connection is also prevented from invoking the setClientID method on that connection because this operation will have already been performed.

    • As specified by the Java EE 7 specification, other methods that may interfere with connection management by the container, such as setExceptionListener, are not supported.

    • You must set connection properties, for example by using the setSubscriptionSharingPolicy method, as part of the connection factory settings. Otherwise, you need to make sure that the connection and session are created in the managed connection pool before you attempt to set the property directly on the connection.

  • When configuring the message listener for an MDB, the only values you may use with the <trans-attribute> element are REQUIRED and NOT_SUPPORTED.

    For more information, see the description of the TransactionAttributeType enumerated type at the following URL:

    http://docs.oracle.com/javaee/7/api/javax/ejb/TransactionAttributeType.html

Support for the weblogic.jms.extension API

The following topics explain how the JMS resource adapter supports the weblogic.jms.extensions API:

Supported weblogic.jms.extension Interfaces

The JMS resource adapter uses custom wrapper classes to automatically implement the weblogic.jms.extensions interfaces and provide support for WebLogic features such as Unit-of-Order (UOO) and message scheduling. The JMS resource adapter ra.xml file is prepopulated with entries corresponding to the correct WebLogic JMS wrapper classes so that you do not need any additional configuration to access supported WebLogic JMS features.

Note:

Use WebLogic connection factories when using the weblogic.jms.extensions API, as explained in JMS Resource Adapter Connection Factories.

The JMS resource adapter supports the following weblogic.jms.extensions interfaces:

  • weblogic.jms.extensions.WLConnection

  • weblogic.jms.extensions.WLSession

  • weblogic.jms.extensions.WLQueueSession

  • weblogic.jms.extensions.WLTopicSession

  • weblogic.jms.extensions.WLDestination

  • weblogic.jms.extensions.WLMessageProducer

  • weblogic.jms.extensions.WLMessage

  • weblogic.jms.extensions.XMLMessage

Supported weblogic.jms.extension Classes

The JMS resource adapter supports the following weblogic.jms.extensions classes:

  • weblogic.jms.extensions.ClientSAFEncrypt

  • weblogic.jms.extensions.ClientSAFFactory

  • weblogic.jms.extensions.ClientSAFGenerate

  • weblogic.jms.extensions.ClientSAFParser

  • weblogic.jms.extensions.ConsumerInfo

  • weblogic.jms.extensions.DestinationInfo

  • weblogic.jms.extensions.JMSDestinationAvailabilityHelper

  • weblogic.jms.extensions.JMSHelper

  • weblogic.jms.extensions.JMSMessageFactoryImpl

  • weblogic.jms.extensions.JMSMessageInfo

  • weblogic.jms.extensions.JMSModuleHelper

  • weblogic.jms.extensions.JMSRuntimeHelper

  • weblogic.jms.extensions.Schedule

JMS Resource Adapter Example

Oracle provides a JMS resource adapter example that is available when you install and configure the examples component of WebLogic Server. This example demonstrates how to use a JMS resource adapter that is deployed on a foreign application server. This example interoperates with the WebLogic JMS service using a simple employee clock-in application.

This example shows how to:

  • Configure and use a WebLogic Server cluster

  • Configure and use WebLogic connection factories.

  • Configure and use distributed topics and queues.

  • Deploy the JMS resource adapter on one of the supported foreign application servers listed in Supported Application Servers.

  • Configure JMS resource adapter config-properties file, which specifies:

    • A WebLogic JNDI context for the WebLogic Server instance that provides the JMS service

    • An adminobject element, which maps the local JNDI name sample/destination/queue to the destination bound to the WebLogic JNDI as DistributedQueue

    • An adminobject element, which maps the local JNDI name sample/destination/topic to the destination bound in the WebLogic JNDI as DistributedTopic

    • A connection factory bound in the local JNDI name as a sample or factory that maps to the connection factory bound to WebLogic JNDI as weblogic.jms.ConnectionFactory

  • Configure the resource-ref and resource-env-ref elements in a servlet's web.xml deployment descriptor file that map to the local JNDI names defined for the JMS resource adapter's connection factory and destinations

  • Configure activation-config elements required to allow MDBs to consume inbound messages

When installed, the JMS resource adapter example is located in the ORACLE_HOME\wl_server\samples\server\examples\src\samples\jms\resourceAdapter directory. For more information, see Sample Applications and Code Examples in Understanding Oracle WebLogic Server.