users@genericjmsra.java.net

Re: EIS-specific properties defined at RA level for GenericJMSRA ?

From: Max Poon <maxpoon_at_gmail.com>
Date: Mon, 16 Jan 2006 18:14:52 +0800

Hi Binod

Pls see my testing results at the end of mail.

Binod wrote:

> Hi Max,
>
>> Hi Binod
>>
>> I noticed from article Getting Started with Connectors in Sun Java
>> System Application Server Platform Edition 8.0
>> <http://developers.sun.com/prodtech/appserver/reference/techart/as8_connectors/>
>> that we can "create multiple connector connection pools for a
>> connection definition in a functional resource adapter instance".
>>
>> However, in the GenericJMSRA User Guide
>> <https://genericjmsra.dev.java.net/docs/userguide/userguide.html>
>> "Resource Adapter Properties", I discovered that parameters like
>>
>> * ProviderIntegrationMode
>> * ConnectionFactoryClassName
>> * QueueConnectionFactoryClassName
>> * ...
>> * JndiProperties
>> * CommonSetterMethodName
>> * UserName
>> * Password
>>
>> which are specific to each of the different EIS (i.e.
>> QueueConnectionFactoryClassName=com.ibm.mq.jms.MQQueueConnectionFactory)
>> are defined in the generic resource adapter level, instead of
>> Connection Pool level. In this case, how can different connection /
>> connection-pool for different EIS (e.g. WMQ, TibEMS) be sharing one
>> and the same genericjmsra definition?
>
> Good question::
>
> As per connector spec, if a ManagedConnectionFactory allows overriding
> of any resource adapter property, then the overridden property
> in the MCF take precedence. So, all of these can be overridden in each
> connection pool.
>
> thanks,
> Binod.

I tested out that minimally, I need to specify the following (Still need
to include some EIS-specific parameters at RA, instead of MCF, level.
Otherwise got exception e.g. "cannot create ejb-container for
mdb-simpleEjb" during appserver startup)

    * SupportsXA
    * ProviderIntegrationMode
    * UserName
    * Password
    * JndiProperties

... extracted from my working domain.xml. Supposedly, we do not need to
specify all of the above EIS-specifc parameters (e.g. some JMS providers
being integrated may support, while the other may not support XA).

<resource-adapter-config object-type="user"
resource-adapter-name="genericra">
  <property name="SupportsXA" value="true"/>
  <property name="ProviderIntegrationMode" value="jndi"/>
  <property name="UserName" value=""/>
  <property name="Password" value=""/>
  <property name="JndiProperties"
value="java.naming.factory.url.pkgs=com.ibm.mq.jms.naming,java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory,java.naming.provider.url=file:/C:/IBM/WMQ6/JNDI"/>
</resource-adapter-config>
....
<connector-connection-pool
connection-definition-name="javax.jms.XAQueueConnectionFactory"
fail-all-connections="false" idle-timeout-in-seconds="300"
max-pool-size="32" max-wait-time-in-millis="60000" name="jms/wmqQCFPool"
pool-resize-quantity="2" resource-adapter-name="genericra"
steady-pool-size="8">
  <property name="ConnectionFactoryJndiName" value="wmqQCF"/>
  <property name="SupportsXA" value="true"/>
  <property name="ProviderIntegrationMode" value="jndi"/>
  <property name="UserName" value=""/>
  <property name="Password" value=""/>
  <property name="JndiProperties"
value="java.naming.factory.url.pkgs=com.ibm.mq.jms.naming,java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory,java.naming.provider.url=file:/C:/IBM/WMQ6/JNDI"/>
  <property name="LogLevel" value="finest"/>
  <property name="QueueClassName" value="com.ibm.mq.jms.MQQueue"/>
  <property name="TopicClassName" value="com.ibm.mq.jms.MQTopic"/>
  <property name="ConnectionFactoryClassName"
value="com.ibm.mq.jms.MQConnectionFactory"/>
  <property name="QueueConnectionFactoryClassName"
value="com.ibm.mq.jms.MQQueueConnectionFactory"/>
  <property name="TopicConnectionFactoryClassName"
value="com.ibm.mq.jms.MQTopicConnectionFactory"/>
  <property name="XAConnectionFactoryClassName"
value="com.ibm.mq.jms.MQXAConnectionFactory"/>
  <property name="XAQueueConnectionFactoryClassName"
value="com.ibm.mq.jms.MQXAQueueConnectionFactory"/>
  <property name="XATopicConnectionFactoryClassName"
value="com.ibm.mq.jms.MQXATopicConnectionFactory"/>
</connector-connection-pool>