User development,
A new message was posted in the thread "Remote vs. Local client lookup of same JNDI
object":
http://community.jboss.org/message/525558#525558
Author : Ben Cotton
Profile :
http://community.jboss.org/people/ben.cotton@rutgers.edu
Message:
--------------------------------------------------------------
Just as an FYI, my dialog with senior technical staff at IBM resulted in the following
personal musings:
1. This is not a JBoss AS 5.1 lookup "bug". No where does the JCA
specification address the requirement that JCA compatible application servers accommodate
a +remote+ client lookup of a JNDI bound ConnectionFactory name that bridges to a
provider's ConnectionFactory implementation via a resource adapter.
2. This is not an IBM resource adapter "bug". The exact same thing happens, in
the exact same way, when my +remote+ client does a lookup of a JNDI bound
ConnectionFactory name ('JmsXA') that bridges to a JBoss provided
ConnectionFactory implementation via a JBoss provided resource adapter. (see below for
details). Like IBM's RA ConnectionFactory, the jBoss RA ConnectionFactory lookup
works perfect when the client code is +locally+ deployed to JBoss AS.
3. Though theres are not "bugs", we still suffer from not realizing an ideal
(remote_client-->JBoss JNDI lookup-->IBM JCA RA bridge-->WSMQ) capability.
4. NOTE: The following bridge works ideally (remote_client-->Apache Geronimo JNDI
lookup-->IBM JCA RA bridge--> WSMQ).
5. NOTE: The following bridge works ideally (remote_client-->GlassFish JNDI
lookup-->IBM JCA RA bridge-->WSMQ).
6. NOTE: The following bridge has a (not ideal) functional work-around
(remote_client-->WebLogic-->non-JCA WLS:MQ bridge-->WSMQ)
7. Though not a JBoss "bug", it may be appropriate to create a JBoss
"feature enhancement" JIRA that requests that a capabilty similar to #4-#6 above
be provided in JBoss AS. Agree?
Here are details for confirming #2.
(i) Change the default +$JBOSS_HOME/server/default/deploy/messaging+/+jms-ds.xml+
as follows
<?xml version="1.0" encoding="UTF-8"?>
<connection-factories>
<!-- ==================================================================== -->
<!-- JMS Stuff -->
<!-- ==================================================================== -->
<!--
The JMS provider loader. Currently pointing to a non-clustered ConnectionFactory.
Need to
be replaced with a clustered non-load-balanced ConnectionFactory when it becomes
available.
See
http://jira.jboss.org/jira/browse/JBMESSAGING-843.
-->
<mbean code="org.jboss.jms.jndi.JMSProviderLoader"
name="jboss.messaging:service=JMSProviderLoader,name=JMSProvider">
<attribute
name="ProviderName">DefaultJMSProvider</attribute>
<attribute
name="ProviderAdapterClass">org.jboss.jms.jndi.JNDIProviderAdapter</attribute>
<attribute
name="FactoryRef">java:/XAConnectionFactory</attribute>
<attribute
name="QueueFactoryRef">java:/XAConnectionFactory</attribute>
<attribute
name="TopicFactoryRef">java:/XAConnectionFactory</attribute>
</mbean>
<!-- JMS XA Resource adapter, use this to get transacted JMS in beans -->
<tx-connection-factory>
<jndi-name>JmsXA</jndi-name>
<xa-transaction/>
<rar-name>jms-ra.rar</rar-name>
* <use-java-context>false</use-java-context> <!-- add this line to
"out of the box" config -->*
<connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
<config-property name="SessionDefaultType"
type="java.lang.String">javax.jms.Topic</config-property>
<config-property name="JmsProviderAdapterJNDI"
type="java.lang.String">java:/DefaultJMSProvider</config-property>
<max-pool-size>20</max-pool-size>
<security-domain-and-application>JmsXARealm</security-domain-and-application>
<depends>jboss.messaging:service=ServerPeer</depends>
</tx-connection-factory>
</connection-factories>
(ii) reboot JBoss AS 5.1 process
(iii) confirm (from JMX consoleJNDIView) that the 'JmsXA' ConnectionFactory name
is bound in JBoss' global JNDI tree, referencing the JBoss resource adapter
ConnectionFactory implementation
+- JmsXA (class:
org.jboss.resource.adapter.jms.JmsConnectionFactoryImpl)
(iv) execute the followng
lookup code from remote client Java application (sorry this code is listed as image, text
cut/paste stopped working for me for this "Post reply" session)
http://community.jboss.org/servlet/JiveServlet/showImage/2037/Untitled.jpg
(v) Confirm from the stdout that this code's lookup() of the JBoss apapter's
ConnectionFactory invoke returned NULL (exactly like the lookup() of the IBM adapter's
ConnectionFactory)
http://community.jboss.org/servlet/JiveServlet/showImage/2038/JmsXaConnec...
--------------------------------------------------------------
To reply to this message visit the message page:
http://community.jboss.org/message/525558#525558