users@jmsjca.java.net

RE: JMSJCA, CAPS 6.2, WebSphere MQ 7

From: Frank Kieviet <fkieviet_at_iname.com>
Date: Mon, 2 Nov 2009 10:12:03 -0800

Hi sysprv,

From what you're describing it looks like you're deploying the IBM RAR into
GlassFish, then bind its connection factories into JNDI, and then use JMSJCA
to look them up.

If that's the case, the issue with that is that the RAR has a lot of
functionality to start/stop transactions, participate in connection pooling
etc. To the application, the RAR exposes only application connection
factories. In practical terms, these are non-XA connection factories. In
other words, the factories that the RAR exposes to the application are
wrappers around the "naked" connection factories, and these wrappers add a
lot of functionality.

What JMSJCA needs are the "naked" connection factories. What I mean with
that are the factories that provide a direct line of communication between
the calling code and the JMS server, of course all using the JMS api.

So, to make it work with JNDI, you would have to instantiate the WMQ "naked"
factories, bind them into JNDI (e.g. a file provider if WMQ 7 did not any
new facilities such as a built-in JNDI server), and use those in JMSJCA.

We're looking into adding explicit support for WMQ7. First issue we ran into
is how to get a copy of WMQ7. Do you know by any chance?

BTW, are you in contact with Jason Baragry?

One more thing: would you mind if we move this discussion to the OpenESB
users list?

Frank

Frank Kieviet
Senior Staff Engineer, SOA/BI
Sun Microsystems, Monrovia, CA
Tel +1 626 471 6322
Blog: http://frankkieviet.blogspot.com/
 


> -----Original Message-----
> From: ioj [mailto:tex_at_tinspoon.net]
> Sent: Monday, November 02, 2009 08:44
> To: users_at_jmsjca.dev.java.net
> Subject: JMSJCA, CAPS 6.2, WebSphere MQ 7
>
> Hi Frank :)
>
> Configured a JMSJCA-driven JCD in jndi:// mode to connect to a WebSphere
> MQ 7 queue; Getting this error:
>
> [#|2009-11-02T17:09:55.496+0100|INFO|sun-
> appserver2.1|javax.enterprise.system.core.classloading|_ThreadID=18;_Threa
> dName=httpWorkerThread-4848-4;dpJMSJCATest_1_0_0;|LDR5010:
> All ejb(s) of [dpJMSJCATest_1_0_0] loaded successfully!|#]
>
> [#|2009-11-02T17:09:55.498+0100|WARNING|sun-
> appserver2.1|com.stc.jmsjca.core.Activation|_ThreadID=25;_ThreadName=JMSJC
> A
> connect;Context=TestProjects |
> prjJMSJCATest/svcJMSJCATest/qJMSJCATestIN;_RequestID=07fb37e9-63b3-4015-
> a035-dcc50c47ac93;|JMSJCA-E016:
> [serial-QueueReceiver(QJMSJCATEST){TestProjects |
> prjJMSJCATest/svcJMSJCATest/qJMSJCATestIN} @ [jndi://]]: message
> delivery initiation failed (attempt #1); will retry in 1 seconds. The
> error was: com.ibm.mq.connector.outbound.QueueConnectionFactoryImpl
> cannot be cast to javax.jms.XAQueueConnectionFactory
> java.lang.ClassCastException:
> com.ibm.mq.connector.outbound.QueueConnectionFactoryImpl cannot be cast
> to javax.jms.XAQueueConnectionFactory
> at
> com.stc.jmsjca.jndi.RAJNDIObjectFactory.createConnectionFactory(RAJNDIObje
> ctFactory.java:208)
> at com.stc.jmsjca.core.SerialDelivery.start(SerialDelivery.java:74)
> at com.stc.jmsjca.core.Activation.asyncStart(Activation.java:552)
> at com.stc.jmsjca.core.Activation.access$000(Activation.java:81)
> at com.stc.jmsjca.core.Activation$1.run(Activation.java:347)
> at java.lang.Thread.run(Thread.java:619)
> |#]
>
>
>
> Details:
>
> I've installed and configured the WMQ 7 RA from IBM in GlassFish
> Enterprise v2.1 Patch 02. The IVT (installation verification test) app
> from IBM runs fine and passes all tests.
>
> Next, I have the simplest message driven JCD you can think of: it reads
> a TextMessage using JMSJCA and writes the Text to the server.log. Works
> fine with GlassFish MQ.
>
> Then I have a connector connection pool of type QueueConnectionFactory,
> using the IBM RA, configured for XA (Transaction Support: XATransaction)
>
> When I configure JMSJCA (inside GF, with the Env overrides in CAPS 6.x)
> with:
>
> Connection URL: jndi://
> JMSJCA.NoXA=false
> JMSJCA.QueueCF=jms/wmq/xa/qcf
>
> and enable the JCD, I get the message above.
>
> I've made sure that the MQ transaction support jar is available to the
> appserver etc. etc. (the IVT passes all tests incl. transactions -
> though it's much simpler than a JCD with JMSJCA +)
>
> What's going wrong here, and how can it be fixed?
>
>
> Thanks in advance!
> /sysprv
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jmsjca.dev.java.net
> For additional commands, e-mail: users-help_at_jmsjca.dev.java.net