This chapter provides information about the WebLogic JMS RA deployment descriptor file, ra.xml
.
This chapter includes the following sections:
The JCA compliant deployment descriptor for the JMS RA is called ra.xml
. This file is used to integrate a WebLogic JMS client with supported foreign application servers.
The following example shows the ra.xml
deployment descriptor:
<?xml version="1.0" encoding="UTF-8"?> <connector xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd" version="1.5"> <display-name>Oracle JMS Connector</display-name> <vendor-name>Oracle Corporation</vendor-name> <eis-type>JMS</eis-type> <resourceadapter-version>2.0</resourceadapter-version> <resourceadapter> <resourceadapter-class>weblogic.jms.ra.ResourceAdapterImpl</resourceadapter-class> <config-property> <config-property-name>resourceProviderDefinitions</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>groupDefinitions</config-property-name> <config-property-type>java.lang.String</config-property-type> <config-property-value> (:) </config-property-value> </config-property> <outbound-resourceadapter> <!-- ************* WebLogic JMS Connection Factories ************* --> <!-- WebLogic JMS non-XA javax.jms.ConnectionFactory --> <connection-definition> <managedconnectionfactory-class> weblogic.jms.ra.WLManagedConnectionFactory </managedconnectionfactory-class> <connectionfactory-interface> weblogic.jms.ra.WLConnectionFactoryInterface </connectionfactory-interface> <connectionfactory-impl-class> weblogic.jms.ra.WLConnectionFactory </connectionfactory-impl-class> <connection-interface> weblogic.jms.ra.WLConnectionInterface </connection-interface> <connection-impl-class> weblogic.jms.ra.WLConnection </connection-impl-class> </connection-definition> <!-- WebLogic JMS non-XA javax.jms.QueueConnectionFactory --> <connection-definition> <managedconnectionfactory-class> weblogic.jms.ra.WLManagedQueueConnectionFactory </managedconnectionfactory-class> <connectionfactory-interface> weblogic.jms.ra.WLQueueConnectionFactoryInterface </connectionfactory-interface> <connectionfactory-impl-class> weblogic.jms.ra.WLQueueConnectionFactory </connectionfactory-impl-class> <connection-interface> weblogic.jms.ra.WLQueueConnectionInterface </connection-interface> <connection-impl-class> weblogic.jms.ra.WLQueueConnection </connection-impl-class> </connection-definition> <!-- WebLogic JMS non-XA javax.jms.TopicConnectionFactory --> <connection-definition> <managedconnectionfactory-class> weblogic.jms.ra.WLManagedTopicConnectionFactory </managedconnectionfactory-class> <connectionfactory-interface> weblogic.jms.ra.WLTopicConnectionFactoryInterface </connectionfactory-interface> <connectionfactory-impl-class> weblogic.jms.ra.WLTopicConnectionFactory </connectionfactory-impl-class> <connection-interface> weblogic.jms.ra.WLTopicConnectionInterface </connection-interface> <connection-impl-class> weblogic.jms.ra.WLTopicConnection </connection-impl-class> </connection-definition> <!-- WebLogic JMS XA javax.jms.ConnectionFactory --> <connection-definition> <managedconnectionfactory-class> weblogic.jms.ra.WLManagedXAConnectionFactory </managedconnectionfactory-class> <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> <!-- WebLogic JMS XA javax.jms.QueueConnectionFactory --> <connection-definition> <managedconnectionfactory-class> weblogic.jms.ra.WLManagedXAQueueConnectionFactory </managedconnectionfactory-class> <connectionfactory-interface> weblogic.jms.ra.WLXAQueueConnectionFactoryInterface </connectionfactory-interface> <connectionfactory-impl-class> weblogic.jms.ra.WLXAQueueConnectionFactory </connectionfactory-impl-class> <connection-interface> weblogic.jms.ra.WLXAQueueConnectionInterface </connection-interface> <connection-impl-class> weblogic.jms.ra.WLXAQueueConnection </connection-impl-class> </connection-definition> <!-- WebLogic JMS XA javax.jms.TopicConnectionFactory --> <connection-definition> <managedconnectionfactory-class> weblogic.jms.ra.WLManagedXATopicConnectionFactory </managedconnectionfactory-class> <connectionfactory-interface> weblogic.jms.ra.WLXATopicConnectionFactoryInterface </connectionfactory-interface> <connectionfactory-impl-class> weblogic.jms.ra.WLXATopicConnectionFactory </connectionfactory-impl-class> <connection-interface> weblogic.jms.ra.WLXATopicConnectionInterface </connection-interface> <connection-impl-class> weblogic.jms.ra.WLXATopicConnection </connection-impl-class> </connection-definition> <!-- ****************** miscellaneous outbound ****************** --> <transaction-support>XATransaction</transaction-support> <authentication-mechanism> <authentication-mechanism-type> BasicPassword </authentication-mechanism-type> <credential-interface> javax.resource.spi.security.PasswordCredential </credential-interface> </authentication-mechanism> <reauthentication-support>false</reauthentication-support> </outbound-resourceadapter> <inbound-resourceadapter> <messageadapter> <messagelistener> <messagelistener-type> javax.jms.MessageListener </messagelistener-type> <activationspec> <activationspec-class> weblogic.jms.ra.ActivationSpecImpl </activationspec-class> <required-config-property> <config-property-name>ConnectionFactory</config-property-name> </required-config-property> <required-config-property> <config-property-name>Destination</config-property-name> </required-config-property> <required-config-property> <config-property-name>DestinationType</config-property-name> </required-config-property> </activationspec> </messagelistener> </messageadapter> </inbound-resourceadapter> <!-- ****************** WebLogic JMS Destinations ****************** --> <!-- WebLogic JMS javax.jms.Queue, weblogic.jms.extensions.WLDestination --> <adminobject> <adminobject-interface> weblogic.jms.ra.WLQueueAdminInterface </adminobject-interface> <adminobject-class> weblogic.jms.ra.WLQueueAdmin </adminobject-class> </adminobject> <!-- WebLogic JMS javax.jms.Topic, weblogic.jms.extensions.WLDestination --> <adminobject> <adminobject-interface> weblogic.jms.ra.WLTopicAdminInterface </adminobject-interface> <adminobject-class> weblogic.jms.ra.WLTopicAdmin </adminobject-class> </adminobject> <!-- javax.naming.Context for looking up weblogic.jms.extensions.WLDestination --> <adminobject> <adminobject-interface> weblogic.jms.ra.WLDestinationContextInterface </adminobject-interface> <adminobject-class> weblogic.jms.ra.WLDestinationContext </adminobject-class> </adminobject> </resourceadapter> </connector>
The element hierarchy of the ra.xml deployment descriptor file is provided below. The number of occurrences allowed is listed in braces following element name. Each element is described in detail in the following sections.
<connector> {1} <display-name> {0 or 1} <vendor-name {0 or 1} <eis-type> {1} <resourceadapter-version> {1} <resourceadapter> {1} <resourceadapter-class> {1} <config-property> {0 or more} <config-property-name> {1} <config-property-type> {1} <config-property-value {0 or 1} <outbound-resourceadapter> {1} <connection-definition> {1 or more} <managedconnectionfactory-class{1} <config-property> {0 or more} <config-property-name> {1} <config-property-type> {1} <config-property-value {0 or 1} <connectionfactory-interface> {1} <connectionfactory-impl-class> {1} <connection-interface> {1} <connection-impl-class> {1} <transaction-support> {1} <authentication-mechanism> {1} <authentication-mechanism-type> {1} <credential-interface> {1} <reauthentication-support> {1} <inbound-resourceadapter> {1} <messageadapter> {1} <messagelistener> {1} <messagelistener-type> {1} <activationspec> {1} <activationspec-class> {1} <required-config-property> {0 or more} <config-property-name> {1} <adminobject> {1 or more} <adminobject-interface> {1} <adminobject-class> {1} <config-property> {0 or more} <config-property-name> {1} <config-property-type> {1} <config-property-value {0 or 1}
The <activationspec>
child element of the <messagelistener>
element is used to specify an activation specification. The information includes fully qualified Java class name of an activation specification and a set of required configuration property names.
The <activationspec-class>
child element of the <activationspec>
element is used to specify the fully qualified Java class name of the activation specification class. This class must implement the javax.resource.spi.ActivationSpec
interface. The implementation of this class is required to be a JavaBean.
The <adminobject>
child element of the <resourceadapter>
element is used to specify information about an administered object. Administered objects are specific to a messaging style or message provider. This contains information on the Java type of the interface implemented by an administered object, its Java class name and its configuration properties.
The <adminobject-class>
child element of the <adminobject>
element is used to specify the fully qualified name of the Java type of the interface implemented by an administered object.
The <adminobject-interface>
child element of the <adminobject>
element is used to specify the fully qualified name of the Java type of the interface implemented by an administered object.
The <authentication-mechanism>
child element of the <outbound-resourceadapter>
element specifies an authentication mechanism supported by the resource adapter.
The BasicPassword
mechanism type should support the javax.resource.spi.security.PasswordCredential
interface. The Kerbv5
mechanism type should support the org.ietf.jgss.GSSCredential
interface or the deprecated javax.resource.spi.security.GenericCredential
interface.
The <authentication-mechanism-type>
child element of the <authentication-mechanism>
element specifies the authentication mechanism. Values are:
BasicPassword
Kerbv5
The <config-property-name>
child element of the <config-property>
or <required-config-property>
element defines the name of a configuration property and is entered as a string. Valid names are specific to a resource adapter or ministered object implementation.
The <config-property-type>
child element of the <config-property> element
defines the data type of a configuration property value and is entered as a string. For example: java.lang.String
The <config-property-value>
child element of the <config-property> element
defines the value of a configuration property and is entered as a string.
The <connection-definition>
child element of the <outbound-resourceadapter>
element defines the classes and interfaces required by the JCA specification to define connection factories.
The <connectionfactory-imlp-class>
child element of the <connection-definition>
element defines the fully qualified name of the ConnectionFactory class that implements resource adapter specific ConnectionFactory interface. See http://java.sun.com/xml/ns/javaee/connector_1_6.xsd.
The <config-property>
child element of the <resourceadapter>
element, <adminobject> element, and <connection-definition>
element that defines a conversation property for a resource adapter administered objects. A configuration property is defined in the same manner as it is defined in the standard connector deployment descriptor.
The <connectionfactory-interface>
child element of the <connection-definition>
element specifies the fully qualified name of the ConnectionFactory interface supported by the resource adapter. See http://java.sun.com/xml/ns/javaee/connector_1_6.xsd.
The <connection-imlp-class>
child element of the <connection-definition>
element specifies the fully qualified name of the Connection class that implements resource adapter specific Connection interface. See http://java.sun.com/xml/ns/javaee/connector_1_6.xsd.
The <connection-interface>
child element of the <connection-definition>
element specifies the fully qualified name of the Connection interface supported by the resource adapter.
The <connector>
element is the root element of the WebLogic JMS RA deployment descriptor file, ra.xml
The <authentication-mechanism>
child element of the <outbound-resourceadapter>
element specifies the interface that the resource adapter implementation supports for the representation of the credentials.Values are:
javax.resource.spi.security.PasswordCredential
org.ietf.jgss.GSSCredential
javax.resource.spi.security.GenericCredential
The <display-name>
element is an optional element that specifies the JMS RA display name, a short name that can be displayed by GUI tools.
The <eis-type>
element specifies the Enterprise Information System (EIS) resource as JMS for this deployment descriptor file.
The <inbound-resourceadapter>
child element of the <resourceadapter>
element is used to specify information about an inbound resource adapter. This contains information specific to the implementation of the resource adapter library as specified through the <messageadapter>
element.
The <managedconnectionfactory-class>
child element of the <connection-definition>
specifies the fully qualified name of the Java class that implements the javax.resource.spi.ManagedConnectionFactory interface. This Java class is provided as part of resource adapter's implementation of connector architecture specified contracts. The implementation of this class is required to be a JavaBean. See http://java.sun.com/xml/ns/javaee/connector_1_6.xsd.
The <messageadapter>
child element of the <inbound-resourceadapter>
element is used to specify messaging capabilities of the resource adapter. This contains information specific to the implementation of the resource adapter library as specified through the <messagelistener>
element.
The <messagelistener>
child element of the <messageadapter>
element is used to specify the implementation of the message listener as specified through the <messagelistener-type>
element.
The <messagelistener-type>
child element of the <messageadapter>
element is used to specify the specific message listener supported by the messaging resource adapter. It contains information on the Java type of the message listener interface and an activation specification.
The <reauthentication-support>
child element of the <outbound-resourceadapter>
element specifies whether the resource adapter implementation supports re-authentication of existing managed connection instances. Vaues are true
or false
.
The <required-config-property>
child element of the <activationspec>
element is used to specify required properties.
The <resourceadapter>
element encompasses the configuration of a single resource adapter that is deployed to a foreign JMS provider.
The <resourceadapter-class>
child element of the <resourceadapter>
element specifies the JMS RA implementation class.
The <resourceadapter-version>
element specifies the release version number for this deployment descriptor file.
The <outbound-resourceadapter>
child element of the <resourceadapter>
element defines the configuration that is used to connect to an Enterprise Information System (EIS) from a foreign application server. The configuration defines connection factories for the resource adapter.
The <transaction-support>
child element of the <outbound-resourceadapter>
element specifies the level of transaction support provided by the resource adapter. The value must be one of the following:
NoTransaction
LocalTransaction
XATransaction
The optional vendor-name
element specifies the JMS RA vendor, Oracle Corporation, that can be displayed by GUI tools.
The following table provides information on additional properties used to configure the MDBs that consume inbound messages.
Table 12-1 JMS RA inbound Configuration Properties
Property | Value | Description |
---|---|---|
|
|
Set to Note: This release of the JMS RA ignores this property. A QoS at least as strong as " Default is |
|
|
A string value used to identify a JMS client. If set, connection(s) used by the listener threads are set to use this value. A |
|
|
The JNDI name of the connection factory. The JMS RA uses this connection factory to create the JMS connection it uses to receive messages for an MDB's If the You must supply a |
|
|
The JNDI name of the destination. The JMS RA receives messages from this destination and passes the received messages to this MDB's You must supply a |
|
|
One of the following: You must supply a |
|
The JNDI location of the j Required when |
|
|
|
The amount of time, in milliseconds, an application server waits to for a Default is 60,000 milliseconds. |
|
When There are two cases where this property does not apply:
Default value is |
|
|
|
The amount of time, in milliseconds, a listener thread which is not receiving any messages is kept available before being returned to the pool. As long as an endpoint is active, idle threads are not dropped if the result it causes the number of available threads to be less than the value of Default value is 300,000. |
|
|
The name used to obtain a logger for this endpoint (see |
|
|
Each log message has an associated severity level. The level gives a rough guide to the importance and urgency of a log message. Supported values are:
|
|
If a message has a If an exception queue is enabled, a copy of the message is sent to the exception queue. If the value of Note: When an MDB responds to a message by throwing an exception, the message is not considered delivered and it may be redelivered. If an MDB always respond to a given message by throwing an exception, and Default value is |
|
|
The maximum number of listener threads created for an endpoint.
Default value is |
|
|
The additional number of listener threads created for an endpoint. The JMS RA implements a fairness policy for allocating threads whereby any destination which is below This fairness policy continues functioning even if the application server's Default value is 1000. |
|
|
|
A selector expression used to filter messages sent to the MDB's Default value is null, no message filtering. |
|
The minimum number of listener threads created for this endpoint. Valid values are range from 1 to Default value is 1. |
|
noLocal |
boolean |
If In some cases, a connection may both publish and subscribe to a topic. The subscriber Default value is |
|
|
The password of the resource provider. See Setting userName/password. Default value is |
|
|
A list of additional vendor specific properties defined as name/value pairs separated by a comma (","). For example:
See "WLConnection" in Java API Reference for Oracle WebLogic Server. |
|
|
The amount of time, in milliseconds, the JMS RA waits for a message to arrive before exiting the current transaction. The transaction manager limits the amount of time a transaction lasts. Set this value such that such that the transaction manager does timeout a transaction during Default value is 15,000. |
|
When Valid values are Requires Default value is |
|
|
The reference name mapped to a subscriber when creating a durable subscriber for the listener thread. This property is required when the value of For a given JMS server, a subscription name is assigned to at most one MDB which must have at most one listener thread. |
|
boolean |
When See |
|
|
|
The user name of the resource provider. See Setting userName/password. Default value is |
Each JMS Connection Factory interface has its own <connection-definition>
element. The <connection-definition>
defines classes and interfaces as required by the JCA specification and it defines resource-adapter configuration properties. The configuration properties can be set here, in the ra.xml
file or set using the configuration tools provided by the JEE container where this resource adapter is deployed.
The following outbound configuration properties are supported:
Table 12-2 JMS RA Outbound Configuration Properties
Property | Value | Description |
---|---|---|
|
String |
The name of the group to associate with this connection definition. See Configuring JMS RA Connection Factory Properties. |
|
String |
Provides information to the resource adapter describing how to look up the JMS connection factory associated with the The macros defined in a |
|
boolean |
When This is a workaround for some foreign JMS providers that do not close XA connections when a session is open. |
|
String |
Specifies the JMS-provider-specific customization code. The value is a fully qualified class name. Provider customization code may customize anything the RA customization API provides a hook for which may include inbound, outbound and recovery scenarios. The 'ProviderCustomization' property need not be set if the JMS provider's connection factories implement the "public String getOracleJMSRAProviderCustomization()" method. If both are specified, the 'ProviderCustomization' property (if set to a non-null/non-blank value) takes precedence over the getOracleJMSRAProviderCustomization() method. |
|
String |
Optional. All connections created from this This should only be used when no |
The following adminobject
configuration properties are supported:
Table 12-3 JMS RA adminobject Configuration Properties
Property | Value | Description |
---|---|---|
|
String |
The name of the group to associate with this connection definition. See Configuring Destinations and Naming Contexts. |
|
String |
Provides information to the resource adapter describing how to look up the JMS connection factory associated with the The macros defined in a |
|
String |
Provides information to the resource adapter describing how how to lookup the destination context that is used to locate the Queue or Topic in a WebLogic Server instance. Typically the form is: |