Sun Java System Application Server Platform Edition 8.2 Administration Guide

Chapter 4 Configuring Java Message Service Resources

This chapter describes how to configure resources for applications that use the Java Message Service (JMS) API. It contains the following sections:

About JMS Resources

The JMS Provider in the Application Server

The Application Server implements the Java Message Service (JMS) API by integrating the Sun Java System Message Queue (formerly Sun ONE Message Queue) software into the Application Server. For basic JMS API administration tasks, use the Application Server Admin Console. For advanced tasks, use the tools provided in the MQ-install-dir/imq/bin directory.

For details about administering Message Queue, see the Message Queue Administration Guide.

JMS Resources

The Java Message Service (JMS) API uses two kinds of administered objects:

These objects are created administratively, and how they are created is specific to each implementation of JMS. In the Application Server, perform the following tasks:

JMS applications use the JNDI API to access the connection factory and destination resources. A JMS application normally uses at least one connection factory and at least one destination. To learn what resources to create, study the application or consult with the application developer.

There are three types of connection factories:

There are two kinds of destinations:

The chapters on JMS in the J2EE 1.4 Tutorial provide details on these two types of communication and other aspects of JMS (see http://java.sun.com/j2ee/1.4/docs/tutorial/doc/index.html).

The order in which the resources are created does not matter.

For a J2EE application, specify connection factory and destination resources in the Application Server deployment descriptors as follows:

The Relationship Between JMS Resources and Connector Resources

The Application Server implements JMS by using a system resource adapter named jmsra. When a user creates JMS resources, the Application Server automatically creates connector resources that appear under the Connectors node in the Admin Console’s tree view.

For each JMS connection factory that a user creates, the Application Server creates a connector connection pool and connector resource. For each JMS destination a user creates, the Application Server creates an admin object resource. When the user deletes the JMS resources, the Application Server automatically deletes the connector resources.

It is possible to create connector resources for the JMS system resource adapter by using the Connectors node of the Admin Console instead of the JMS Resources node. See Chapter 7, Connector Resources for details.

Admin Console Tasks for JMS Connection Factories

ProcedureTo create a JMS connection factory resource

  1. In the tree component, expand the Resources node, then expand the JMS Resources node.

  2. Select the Connection Factories node.

  3. On the JMS Connection Factories page, click New.

    The Create JMS Connection Factory page appears.

  4. In the JNDI Name field, type the name of the connection factory.

    It is a recommended practice to use the naming subcontext prefix jms/ for JMS resources. For example: jms/ConnectionFactory1.

  5. From the Type drop-down list, choose either javax.jms.ConnectionFactory, javax.jms.QueueConnectionFactory, or javax.jms.TopicConnectionFactory.

  6. Select the Enabled checkbox to enable the resource at run time.

  7. In the Advanced area, change values as needed for the connection factory attributes.

    For details about these attributes, see To edit a JMS connection factory resource. The Application Server applies these attributes to the connector connection pool created for the connection factory.

  8. For a JMS connection factory resource, specify the Transaction Support value as follows:

    • Specify XATransaction (the default value) for a resource that can be used for transactions that involve the use of more than one resource within a transaction scope.

      For example, this resource plus a JDBC resource, a connector resource, or another JMS connection factory resource. This value offers the most flexibility. A resource that is configured as XATransaction will participate in two-phase commit operations.

    • Specify LocalTransaction for a resource that can be used either for transactions that involve only one resource within the transaction scope or as the last agent in a distributed transaction that involves more than one XA resource.

      This value offers significantly better performance. A resource that is configured as LocalTransaction will not be used in two-phase commit operations.

    • Specify NoTransaction for a resource that can never participate in transactions.

      This setting is of limited use in JMS applications.

  9. In the Additional Properties area, provide values for properties required by applications. The following table lists the available properties.

    Property Name  

    Description  

    ClientId

    Specifies a client ID for a connection factory that will be used by a durable subscriber. 

    AddressList

    Specifies the name (and, optionally, port number) of a message broker instance with which applications will communicate. Each address in the list specifies the host name (and, optionally, host port and connection service) for the connection. For example, the value might be earth or earth:7677. Specify the port number if the message broker is running on a port other than the default (7676).

    For details, see the Message Queue Developer’s Guide for Java Clients.

    Default: The local host and default port number (7676). The client will attempt a connection to a broker on port 7676 of the local host. 

    MessageServiceAddressList

    Same as AddressList. This property name is deprecated. Use AddressList instead.

    UserName

    The user name for the connection factory. 

    Default: guest

    Password

    The password for the connection factory. 

    Default: guest

    ReconnectEnabled

    If enabled (value = true), specifies that the client runtime attempts to reconnect to a message server (or the list of addresses in the AddressList) when a connection is lost.

    Default: true 

    ReconnectAttempts

    Specifies the number of attempts to connect (or reconnect) for each address in the AddressList before the client runtime tries the next address in the list. A value of -1 indicates that the number of reconnect attempts is unlimited (the client runtime attempts to connect to the first address until it succeeds).

    Default: 3 

    ReconnectInterval

    Specifies the interval in milliseconds between reconnect attempts. This applies for attempts on each address in the AddressList and for successive addresses in the list. If the interval is too short, the broker does not have time to recover. If it is too long, the reconnect might represent an unacceptable delay.

    Default: 30000 

    AddressListBehavior

    Specifies whether connection attempts are in the order of addresses in the AddressList attribute (PRIORITY) or in a random order (RANDOM).

    RANDOM means that the reconnect chooses a random address from the AddressList. If many clients are likely to attempt a connection using the same connection factory, this value prevents them from all being connected to the same address.

    PRIORITY means that the reconnect always tries to connect to the first server address in the AddressList and uses another address only if the first broker is not available.

    Default: RANDOM

    AddressListIterations

    Specifies the number of times the client runtime iterates through the AddressList in an effort to establish (or reestablish) a connection). A value of -1 indicates that the number of attempts is unlimited.

    Default: 3 

  10. Click OK to save the connection factory.

Equivalent asadmin command

create-jms-resource

ProcedureTo edit a JMS connection factory resource

  1. In the tree component, expand the Resources node, then expand the JMS Resources node.

  2. Expand the Connection Factories node.

  3. Select the connection factory to be edited.

  4. On the Edit JMS Connection Factory page, you can perform these tasks:

    • Modify the text in the Description field.

    • Select or deselect the Enabled checkbox to enable or disable the resource.

    • Change the values of the attributes in the Advanced area.

    • Add, remove, or modify properties.

  5. Click Save to save the changes.

ProcedureTo delete a JMS connection factory resource

  1. In the tree component, expand the Resources node, then expand the JMS Resources node.

  2. Select the Connection Factories node.

  3. On the JMS Connection Factories page, select the checkbox next to the name of the connection factory to be deleted.

  4. Click Delete.

Equivalent asadmin command

delete-jms-resource

Admin Console Tasks for JMS Destination Resources

ProcedureTo create a JMS destination resource

  1. In the tree component, expand the Resources node, then expand the JMS Resources node.

  2. Select the Destination Resources node.

  3. On the JMS Destination Resources page, click New. The Create JMS Destination Resource page appears.

  4. In the JNDI Name field, type the name of the resource.

    It is a recommended practice to use the naming subcontext prefix jms/ for JMS resources. For example: jms/Queue.

  5. From the Type drop-down list, choose either javax.jms.Topic or javax.jms.Queue.

  6. Select the Enabled checkbox to enable the resource at run time.

  7. In the Additional Properties area, provide values for properties.

    The following table lists the available properties.

    Property Name  

    Description  

    Name

    (Required) The name of the physical destination to which the resource refers. 

    Description

    A description of the physical destination. 

  8. Click OK.

Equivalent asadmin command

create-jms-resource

ProcedureTo edit a JMS destination resource

  1. In the tree component, expand the Resources node, then expand the JMS Resources node.

  2. Expand the Destination Resources node.

  3. Select the destination resource to be edited.

  4. On the Edit JMS Destination Resource page, you can perform these tasks:

    • Change the type of the resource.

    • Modify the text in the Description field.

    • Select or deselect the Enabled checkbox to enable or disable the resource.

    • Add, remove, or modify the Name or Description property.

  5. Click Save to save the changes.

ProcedureTo delete a JMS destination resource

  1. In the tree component, expand the Resources node, then expand the JMS Resources node.

  2. Select the Destination Resources node.

  3. On the JMS Destination Resources page, select the checkbox next to the name of the destination resource to be deleted.

  4. Click Delete.

Equivalent asadmin command

delete-jms-resource

Admin Console Tasks for JMS Physical Destinations

ProcedureTo create a JMS physical destination

For production purposes, always create physical destinations. During the development and testing phase, however, this step is not required. The first time an application accesses a destination resource, Message Queue automatically creates the physical destination specified by the Name property of the destination resource. The physical destination is temporary and expires after a period specified by a Message Queue configuration property.

  1. In the tree component, expand the Configuration node, then expand the Java Message Service node.

  2. Select the Physical Destinations node.

  3. On the Physical Destinations page, click New.

    The Create Physical Destination page appears.

  4. In the Physical Destination Name field, type the name of the destination (for example, PhysicalQueue).

  5. From the Type drop-down list, choose either topic or queue.

  6. In the Additional Properties area, click Add Property to add a property.

    The following table lists the one property currently available.

    Property Name  

    Description  

    maxNumActiveConsumers

    The maximum number of consumers that can be active in load-balanced delivery from a queue destination. A value of -1 means an unlimited number. The default is1. (Platform Edition limits this value to 2.) 

    To modify the value of this property or to specify other physical destination properties, use the MQ-install-dir/imq/bin/imqcmd command. See the Message Queue Administration Guide for more information.

  7. Click OK.

Equivalent asadmin command

create-jmsdest

System Destination

The Physical Destinations page shows the system destination, a queue named mq.sys.dmq, to which expired and undeliverable messages are redirected. You can create destination resources, consumers, and browsers for this destination. You cannot delete it or send messages to it.

ProcedureTo delete a JMS physical destination

  1. In the tree component, expand the Configuration node, then expand the Java Message Service node.

  2. Select the Physical Destinations node.

  3. On the Physical Destinations page, select the checkbox next to the name of the destination to be deleted.

  4. Click Delete.

    If you try to delete the system destination mq.sys.dmq, an error message appears.

Equivalent asadmin command

delete-jmsdest

Admin Console Tasks for the JMS Provider

ProcedureTo configure general properties for the JMS provider

Use the JMS Service page to configure properties to be used by all JMS connections.

For more information about configuring the JMS service, see the Application Server Developer’s Guide.

  1. In the tree component, select the Configuration node.

  2. Select the Java Message Service node to open the JMS Service page.

  3. Edit the value in the Startup Timeout field to change the time the Application Server waits for the JMS service to start before aborting the startup.

    On a slow or overloaded system, increase the value from the default (60).

  4. From the Type drop-down list:

    • Choose LOCAL (the default) to access the JMS service on the local host. The JMS service is started and managed by the Application Server.

    • Choose REMOTE to access the JMS service on another system. If you choose REMOTE, the JMS service is not started by the Application Server the next time the server starts. Instead, the JMS service is started and managed via Message Queue, so you must start the Message Queue broker separately. For information about starting the broker, see the Message Queue Administration Guide. If you choose this value and are using a remote host, follow the instructions in To edit a JMS host to specify the name of the remote host.

  5. In the Start Arguments field, type arguments to customize the JMS service startup.

    Use any arguments available through the MQ-install-dir/imq/bin/imqbrokerd command.

  6. Use the Reconnect checkbox to specify whether the JMS service attempts to reconnect to a message server (or the list of addresses in the AddressList) when a connection is lost.

    By default, reconnection is enabled.

  7. In the Reconnect Interval field, type the number of seconds between reconnect attempts.

    This applies for attempts on each address in the AddressList and for successive addresses in the list. If it is too short, this time interval does not give a broker time to recover. If it is too long, the reconnect might represent an unacceptable delay.

    The default value is 60 seconds.

  8. In the Reconnect Attempts field, type the number of attempts to connect (or reconnect) for each address in the AddressList before the client runtime tries the next address in the list.

    A value of -1 indicates that the number of reconnect attempts is unlimited (the client runtime attempts to connect to the first address until it succeeds). The default value is 3.

  9. Choose a host from the Default JMS Host drop-down list. The default is default_JMS_host.

  10. In the Address List Behavior drop-down list, choose whether connection attempts are in the order of addresses in the AddressList (priority) or in a random order (random).

    priority means that the reconnect always tries to connect to the first server address in the AddressList and uses another one only if the first broker is not available.

    If there are many clients attempting a connection using the same connection factory, specify random to prevent them from all being connected to the same address.

    The default is random.

  11. In the Address List Iterations field, type the number of times the JMS service iterates through the AddressList in an effort to establish (or reestablish) a connection).

    A value of -1 indicates that the number of attempts is unlimited.

    The default value is 3.

  12. In the MQ Scheme and MQ Service fields, type the Message Queue address scheme name and the Message Queue connection service name if a non-default scheme or service is to be used.

    The full syntax for a message service address is


    scheme://address-syntax
    

    where the scheme and address-syntax are described in the table below.

    The MQ Scheme and MQ Service are the values shown in the first two columns of the following table.

    Scheme Name  

    Connection Service  

    Description  

    Address Syntax  

    mq

    jms and ssljms

    Message Queue client runtime makes a connection to the MQ Port Mapper at the specified host and port. The Port Mapper returns a list of the dynamically established connection service ports, and the Message Queue client runtime then makes a connection to the port hosting the specified connection service. 

    [hostName][:port][/serviceName]

    Defaults: hostName = localhost, port = 7676, serviceName = jms

    Defaults only apply to the jms connection service. For the ssljms connection service, all variables need to be specified.

    Example: mq:MyHost:7677/ssljms

    mqtcp

    jms

    Message Queue client runtime makes a TCP connection to the specified host and port (bypassing the MQ Port Mapper) to establish a connection. 

    hostName:port/jms

    Example: mqtcp:localhost:7676/jms

    mqssl

    ssljms

    Message Queue client runtime makes a secure SSL connection to the specified host and port (bypassing the MQ Port Mapper) to establish a connection. 

    hostName:port/ssljms

    Example: mqssl:localhost:7676/ssljms

    http

    httpjms

    Message Queue client runtime makes an HTTP connection to an Message Queue tunnel servlet at the specified URL. (The broker must be configured to access the HTTP tunnel servlet, as described in the Message Queue Administrator’s Guide.)

    hostName:port/contextRoot/tunnel

    If multiple broker instances are using the same tunnel servlet, then the syntax for connecting to a specific broker instance (rather than a randomly selected one) is: http://hostName:port/contextRoot/tunnel?serverName=hostName:instanceName

    https

    httpsjms

    Message Queue client runtime makes a secure HTTPS connection to the specified Message Queue tunnel servlet URL. (The broker must be configured to access the HTTPS tunnel servlet, as described in the Message Queue Administrator’s Guide.)

    hostName:port/contextRoot/tunnel

    If multiple broker instances are using the same tunnel servlet, then the syntax for connecting to a specific broker instance (rather than a randomly selected one) is: http://hostName:port/contextRoot/tunnel?serverName=hostName:instanceName

  13. In the Additional Properties area, click Add Property to add a property.

    The following table lists the available Sun Java System Message Queue broker configuration properties.

    Property Name  

    Description  

    instance-name

    Specifies the full Message Queue broker instance name. The default is imqbroker.

    instance-name-suffix

    Specifies a suffix to add to the full Message Queue broker instance name. The suffix is separated from the instance name by an underscore character (_). For example, if the instance name is imqbroker, appending the suffix xyz changes the instance name to imqbroker_xyz.

    append-version

    If true, appends the major and minor version numbers, preceded by underscore characters (_), to the full Message Queue broker instance name. For example, if the instance name is imqbroker, appending the version numbers changes the instance name to imqbroker_8_0. The default is false.

  14. Click Save to save the changes, or click Load Defaults to restore the default values for the service.

Accessing Remote Servers

Changing the provider and host to a remote system causes all JMS applications to run on the remote server. To use both the local server and one or more remote servers, create a connection factory resource with the AddressList property to create connections that access remote servers. See To create a JMS connection factory resource.

ProcedureTo verify JMS Service settings

  1. In the tree component, select the Configuration node.

  2. Select the Java Message Service node to open the JMS Service page.

  3. Click Ping.

    If the JMS service is up and running, the message “Ping succeeded: JMS service is running” appears.

Equivalent asadmin command

jms-ping

ProcedureTo create a JMS host

The Application Server Platform Edition expects there to be exactly one JMS host, whose default name is default_JMS_host. It is possible to create additional hosts, but the Application Serverhas no way of knowing about them.

  1. In the tree component, expand the Configuration node.

  2. Expand the Java Message Service node.

  3. Select the JMS Hosts node.

  4. On the JMS Hosts page, click New. The Create JMS Host page appears.

  5. In the Name field, type the name of the host. For example:


    NewJmsHost
  6. In the Host field, type the name or Internet Protocol (IP) address of the system where the JMS host will run (localhost or the name of the local or remote system).

  7. In the Port field, type the port number of the JMS service.

    Change this field only if the JMS service to be used is running on a non-default port. (The default port is 7676.)

  8. In the Admin Username and Admin Password fields, type the Message Queue broker user name and password.

    These are different from the Application Server user name and password. Edit these fields only if the Message Queue broker values have been changed using the MQ-install-dir/imq/bin/imqusermgr command. The default values are admin and admin.

  9. Click OK.

Equivalent asadmin command

create-jms-host

ProcedureTo edit a JMS host

  1. In the tree component, expand the Configuration node.

  2. Expand the Java Message Service node.

  3. Select the JMS Hosts node.

  4. On the JMS Hosts page, select the host to be edited.

  5. On the Edit JMS Host page, it is possible to perform these tasks:

    • Change the host name or Internet Protocol (IP) address in the Host field.

      • Change the port number of the JMS service in the Port field.

      • Change the values in the Admin Username and Admin Password fields.

  6. Click Save to save the changes, or click Load Defaults to restore the default values for the host.

ProcedureTo delete a JMS host

Deleting the default JMS host is not recommended.

  1. In the tree component, expand the Configuration node.

  2. Expand the Java Message Service node.

  3. Select the JMS Hosts node.

  4. On the JMS Hosts page, select the checkbox next to the name of the host to be deleted.


    Caution – Caution –

    Do not delete the default JMS host. Doing so can prevent Application Server startup.


  5. Click Delete.

Equivalent asadmin command

delete-jms-host

Admin ConsoleTasks for the Foreign JMS Providers

Generic Resource Adapter for JMS is a J2EE Connector 1.5 resource adapter that can wrap the JMS client library of external JMS providers such as IBM Websphere MQ, Tibco EMS, and Sonic MQ among others, and thus integrate any JMS provider with a J2EE 1.4 application server such as Sun Java System Application Server. The adapter is a.rar archive that can be deployed and configured using a J2EE 1.4 application server's administration tools.

Configuring the Generic Resource Adapter for JMS

Application server's administration tools can be used to deploy and configure the generic resource adapter for JMS. This section explains how to configure Generic Resource Adapter for JMS with Sun Java System Application Server. Overall, the Resource Adapter can be configured to indicate whether JMS provider supports XA or not. It is also possible to indicate what mode of integration is possible with JMS provider. Two modes of integration are supported by the resource adapter. First one uses JNDI as the means of integration. In this case, administered objects are set up in JMS provider's JNDI tree and will be looked up for use by the generic resource adapter resources. If that mode is not suitable for integration, it is also possible to use Java reflection of JMS administered object javabean classes as the mode of integration. You can use the Sun Java System Application Server's Administration Console or the CLI to configure the resource adapter. This is not different from configuring any other resource adapter.

ProcedureTo configure the generic resource adapter

Prior to deploying the resource adapter JMS client libraries should be made available to the application server. For some JMS providers, client libraries may also include native libraries. In such cases, these native libraries should also be made available to the application server JVM(s).

  1. Deploy the generic resource adapter using the steps in the section To deploy a connector modulein Chapter 2 of this guide. In this case, make sure that you specify install-dir/lib/addons/resourceadapters/genericjmsra/genericra.raras the location of the generic resource adapter. Also, you should specify the properties explained in the section Resource Adapter Properties.

  2. Create a connector connection pool using the steps in the section To create a connector connection pool. In the New Connector Connection Pool page, from the Resource Adapter combo box, select genericra. Also, in the Connection Definition combo box, select javax.jms.QueueConnectionFactory. Additionally, specify the properties explained in the section ManagedConnectionFactory Properties.

  3. Create a connector resource following the steps in the section To create a connector resource. In the New Connector Resource page, select the pool you created in the previous step.

  4. Create an administered object resource using the steps in the section To create an administered object resource. In the New Admin Object Resource page, select genericra as the Resource Adapter and javax.jms.Queue as the Resource Type. Click Next and in the second page, click Add Property. In the Additional Properties table, specify a new property called DestinationProperties with the value Name\\=clientQueue. For information on more properties, see the section Administered Object Resource Properties.

  5. Make the following changes to the security policy in Sun Java System Application Server.

    1. Modify sjsas_home/domains/domain1/config/server.policy to add java.util.logging.LoggingPermission "control"

    2. Modifysjsas_home/lib/appclient/client.policy to add permission javax.security.auth.PrivateCredentialPermission "javax.resource.spi.security.PasswordCredential * \"*\"","read";

Resource Adapter Properties

The following table presents the properties to be used while creating the resource adapter.

Property Name

Valid Values

Default value

Description

ProviderIntegrationMode 

javabean/jndi 

javabean 

Decides the mode of integration between the resource adapter and the JMS client. 

ConnectionFactoryClassName 

Name of the class available in the appserver classpath, for example, com.sun.messaging.ConnectionFactory

none 

Class name of javax.jms.ConnectionFactory implementation of the jms client. Used if ProviderIntegrationMode is javabean.

QueueConnectionFactoryClassName 

Name of the class available in the appserver classpath, for example, com.sun.messaging.QueueConnectionFactory

none 

Class name of javax.jms.QueueConnectionFactory implementation of the jms client. Used if ProviderIntegrationMode is javabean.

TopicConnectionFactoryClassName 

Name of the class available in the appserver classpath , for example, com.sun.messaging.TopicConnectionFactory

none 

Class name of javax.jms.TopicConnectionFactory implementation of the jms client. Used if ProviderIntegrationMode is specified as a javabean.

XAConnectionFactoryClassName 

Name of the class available in appserver classpath , for example, com.sun.messaging.XAConnectionFactory

none 

Class name of javax.jms.ConnectionFactory implementation of the jms client. Used if ProviderIntegrationMode is specified as a javabean.

XAQueueConnectionFactoryClassName 

Name of the class available in appserver classpath , for example, com.sun.messaging.XAQueueConnectionFactory

none 

Class name of javax.jms.XAQueueConnectionFactory implementation of the JMS client. Used if ProviderIntegrationMode is specified as javabean.

XATopicConnectionFactoryClassName 

Name of the class available in appserver classpath , for example, com.sun.messaging.XATopicConnectionFactory

NA 

Class name of javax.jms.XATopicConnectionFactory implementation of the JMS client. Used if ProviderIntegrationMode is javabean.

TopicClassName 

Name of the class available in appserver classpath , for example, com.sun.messaging.Topic

NA 

Class Name of javax.jms.Topic implementation of the JMS client. Used if ProviderIntegrationMode is javabean.

QueueClassName 

Name of the class available in appserver classpath , for example, com.sun.messaging.Queue

NA 

Class Name of javax.jms.Queue implementation of the JMS client. Used if ProviderIntegrationMode is specified as a javabean.

SupportsXA 

True/false

FALSE

Specifies whether the jms client supports XA or not. 

ConnectionFactoryProperties 

Name value pairs separated by comma. 

none 

This specifies the javabean property names and values of the ConnectionFactory of the JMS client. Required only if ProviderIntegrationMode is a javabean. 

JndiProperties 

Name value pairs separated by comma. 

NA 

This specifies the JNDI provider properties to be used for connecting to the JMS provider's JNDI. Used only if ProviderIntegrationMode is jndi. 

CommonSetterMethodName 

Method name 

none 

This specifies the common setter method name some JMS vendors use to set the properties on their administered objects. Used only if ProviderIntegrationMode is javabean. In case of SJSMQ, this value is setProperty

UserName 

Name of the JMS user 

none 

User name to connect to the JMS Provider. 

Password 

Password for the JMS user. 

none 

Password to connect to the JMS provider. 

RMPolicy  

need info 

   

ManagedConnectionFactory Properties

ManagedConnectionFactory properties are specified when a connector-connection-pool is created. All the properties specified while creating the resource adapter can be overridden in a ManagedConnectionFactory. Additional properties available only in ManagedConnectionFactory are given below.

Property Name

Valid Value

Default Value

Description

ClientId 

A valid client ID 

none 

ClientID as specified by JMS 1.1 specification. 

ConnectionFactoryJndiName 

JNDI Name 

none 

JNDI name of the connection factory bound in the JNDI tree of the JMS provider. The administrator should provide all connection factory properties (except clientID) in the JMS provider itself. This property name will be used only if ProviderIntegratinMode is jndi. 

ConnectionValidationEnabled 

true/false 

FALSE 

If set to true, the resource adapter will use an exception listener to catch any connection exception and will send a CONNECTION_ERROR_OCCURED event to application server. 

Administered Object Resource Properties

Properties in this section are specified when an administered object resource is created. All the properties specified in the resource adapter section can be overridden in an administered resource object. Additional properties available only in the administered object resource are given below.

Property Name

Valid Value

Default Value

Description

DestinationJndiName 

JNDI Name 

none 

JNDI name of the destination bound in the JNDI tree of the JMS provider. Administrator should provide all properties in the JMS provider itself. This property name will be used only if ProviderIntegrationMode is jndi. 

DestinationProperties 

Name value pairs separated by comma 

none 

This specifies the javabean property names and values of the destination of the JMS client. Required only if ProviderIntegrationMode is javabean. 

Activation Spec Properties

Properties in this section are specified in the sun specific deployment descriptor of MDB as activation-config-properties. All the properties specified in resource adapter section can be overridden in an ActivationSpec. Additional properties available only in ActivationSpec are given below.

Property Name

Valid Value

Default Value

Description

MaxPoolSize 

An integer 

Maximum size of server session pool internally created by resource adapter for achieving concurrent message delivery. This should be equal to maximum pool size of MDB objects. 

MaxWaitTime 

An integer 

Resource Adapter will wait for the time in seconds specified by this property to obtain a server session from its internal pool. If this limit is exceeded message delivery will fail. 

SubscriptionDurability 

?Durable? or ?Non-Durable? 

?Non-Durable? 

SubscriptionDurability as specified by JMS 1.1 specification. 

SubscriptionName  

 

NA 

SubscriptionName as specified by JMS 1.1 specification. 

MessageSelector 

A valid message selector 

NA 

MessageSelector as specified by JMS 1.1 specification. 

ClientID 

A valid client ID 

NA 

ClientID as specified by JMS 1.1 specification. 

ConnectionFactoryJndiName 

A valid Jndi Name 

NA 

JNDI name of connection factory created in JMS provider. This connection factory will be used by resource adapter to create a connection to receive messages. Used only if ProviderIntegrationMode is configured as jndi. 

DestinationJndiName 

A valid Jndi Name 

NA 

JNDI name of destination created in JMS provider. This destination will be used by resource adapter to create a connection to receive messages from. Used only if ProviderIntegrationMode is configured as jndi. 

DestinationType 

?javax.jms.Queue? or ?javax.jms.Topic? 

javax.jms.Queue) 

Type of the destination the MDB will listen to. 

DestinationProperties 

Name Value Pairs separated by comma 

NA 

This specifies the javabean propery names and values of the Destination of jms client. Required only if ProviderIntegrationMode is javabean. 

RedeliveryAttempts 

integer 

 

Number of times a message will be redelivered in case a message cause a runtime exception in the MDB. 

RedeliveryInterval 

time in seconds 

 

Interval between repeated deliveries, in case a message causes a runtime exception in the MDB. 

SendBadMessagesToDMD 

true/false 

false 

Indicates whether RA should send the messages to a dead message destination, if redelivery attempts is exceeded. 

DeadMessageDestinationJndiName 

a valid JNDI name. 

none 

JNDI name of destination created in JMS provider. Target destination for dead messages. Used only if ProviderIntegrationMode is configured as jndi. 

DeadMessageDestinationClassName 

class name of destination object. 

none 

Used if ProviderIntegrationMode is specified as javabean. 

DeadMessageDestinationProperties 

Name Value Pairs separated by comma 

NA 

This specifies the javabean propery names and values of the Destination of the JMS client. Required only if ProviderIntegrationMode is javabean. 

ReconnectAttempts 

integer 

 

Number of times a reconnect will be attempted in case exception listener catches an error on connection. 

ReconnectInterval 

time in seconds 

 

interval between reconnects.