Author |
Message
|
tfennelly |
Posted: Wed May 20, 2009 9:20 am Post subject: XA Connection over BINDING transport?? |
|
|
Newbie
Joined: 20 May 2009 Posts: 9
|
Hi.
Is it possible to create an XA Connection over JNDI, without the Extended Client? My understanding is that is is possible to create a local XA Connection using the BINDING mode, but I can't seem to find the correct JNDI config.
I'm currently using the following JNDI config:
Code: |
java.naming.provider.url=localhost:1414/SYSTEM.DEF.SVRCONN
java.naming.factory.initial=com.ibm.mq.jms.context.WMQInitialContextFactory
|
But I'm getting a "client connection not XA enabled" exception. I assume this is because I have not specified to use a BINDING connection in the JNDI env I supplied in the lookup and so it's trying to work in Client mode.
How do I specify the JNDI config to use Binding mode? What's the correct property name and value?
I'm using a Trial version of WMQ - v6.0.2.5. I'm running on Windows XP.
Thanks,
Tom.
|
|
Back to top |
|
 |
mqjeff |
Posted: Wed May 20, 2009 9:31 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Don't use the WMQ Naming Provider unless you really really know exactly why.
It breaks the logical separation between MQ and JNDI, in that it provides you naming entries that exactly match the names of your MQ objects.
Secondly, the properties you provide to your Naming provider have nothing to do with the properties used by your application Queue Connection Factories. Nothing you have shown provides any information about what you are passing to your QCFS.
Thirdly, all you need for a bindings connection is the name of the local queue manager. |
|
Back to top |
|
 |
tfennelly |
Posted: Wed May 20, 2009 12:10 pm Post subject: |
|
|
Newbie
Joined: 20 May 2009 Posts: 9
|
Thanks for the swift reply
mqjeff wrote: |
Don't use the WMQ Naming Provider unless you really really know exactly why.
It breaks the logical separation between MQ and JNDI, in that it provides you naming entries that exactly match the names of your MQ objects. |
So our application uses JNDI to connect to the JMS Provider. It knows nothing about the specifics of WMQ and we'd like to keep it that way i.e. to treat WMQ the same as any other provider and to look it up in the same way, via JNDI.
One of our users encountered the one-XASession-per-XAConnection issue with WMQ and I was trying to replicate the issue locally. Before getting to that issue however, I encountered the "client connection not XA enabled" issue while trying to create the connection. I see this as a linked exception off an "unable to get XAResource" exception.
We're trying this through the WQM JCA Adapter, deployed on JBoss AS. I can see that the WMQ connection factory we're getting back from the JCA Adapter is XA enabled/aware.
I guess my question was really just if local XA binding connections were even possible without the Extended Client? Some posts I've read seem to suggest that it is, while others appear to suggest that it's not.
Does "local" mean on the same machine, or does it mean within the same VM i.e. WMQ running in the websphere server? If it means the later, which I'm inclined to think it does, then I guess I am wasting my time
mqjeff wrote: |
Secondly, the properties you provide to your Naming provider have nothing to do with the properties used by your application Queue Connection Factories. Nothing you have shown provides any information about what you are passing to your QCFS. |
OK, sorry about that. So we are configuring these on the JCA connection-factory config in JBoss. I didn't go into this in the original post because I thought it would just be a distraction. I need to go back and do more investigating. Sorry for wasting your time
mqjeff wrote: |
Thirdly, all you need for a bindings connection is the name of the local queue manager. |
Ah OK... so it is within the same VM then for "local" XA binding connections without the Extended Client? |
|
Back to top |
|
 |
mqjeff |
Posted: Wed May 20, 2009 1:12 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
The queue manager does not run inside of any JVM. Nor will it likely ever. It's a collection of C-runtime OS processes.
Ergo the only viable meaning of "local" is "in the same OS instance". That OS instance may or may not be hosted in a VM, that has no bearing on anything.
I may be out of date on the WMQ Naming Provider in the context of the WMQ JCA Adapter. You should go back and review the MQ documentation on using the JCA Adapter and the JBoss documentation on this.
But again, you posted configuration information for connecting to the Naming provider, not configuration information for your application to use to create a QCF. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed May 20, 2009 1:25 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
tfennelly wrote: |
I'm currently using the following JNDI config:
Code: |
java.naming.provider.url=localhost:1414/SYSTEM.DEF.SVRCONN
java.naming.factory.initial=com.ibm.mq.jms.context.WMQInitialContextFactory
|
|
Please please use the file system JNDI provider.
The JNDI provider you used forces a client connection. This is not a binding connection and as such does not allow you to test the case you are trying to.
IMHO only the highly enlightened should use the JNDI provider you did.
There are ample reasons for a separation of naming space between the qmgr and JNDI entries. The JNDI provider you used will not allow that. The other part is that the JNDI provider you used forces you to a client connection... so no XA without the etc support jars. _________________ MQ & Broker admin |
|
Back to top |
|
 |
tfennelly |
Posted: Wed May 20, 2009 1:31 pm Post subject: |
|
|
Newbie
Joined: 20 May 2009 Posts: 9
|
Thanks again
So do I need the Extended Client to create an XA Connection when the client is running on the same OS ("locally") as the WMQ Server? |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed May 20, 2009 1:32 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
tfennelly wrote: |
Thanks again
So do I need the Extended Client to create an XA Connection when the client is running on the same OS ("locally") as the WMQ Server? |
No you don't. You need to switch JNDI provider. _________________ MQ & Broker admin |
|
Back to top |
|
 |
tfennelly |
Posted: Wed May 20, 2009 1:41 pm Post subject: |
|
|
Newbie
Joined: 20 May 2009 Posts: 9
|
fjb_saper wrote: |
tfennelly wrote: |
Thanks again
So do I need the Extended Client to create an XA Connection when the client is running on the same OS ("locally") as the WMQ Server? |
No you don't. You need to switch JNDI provider. |
Ah excellent... thanks for that. I haven't used that before, but look forward to trying it out.
Thanks for your patience guys!! |
|
Back to top |
|
 |
|