|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Bad queuenames using MDB's under WSAD/MQ |
« View previous topic :: View next topic » |
Author |
Message
|
MikkelKliim |
Posted: Wed Oct 01, 2003 8:08 am Post subject: Bad queuenames using MDB's under WSAD/MQ |
|
|
Newbie
Joined: 01 Oct 2003 Posts: 2
|
I'm trying to set up an MDB listening on a queue called XXX.YYY.ZZZ
My QueueManager is called QSRT.
The problem is that it prefixes the queuename twice with QRST, thus ending up requesting a queue called QSRT.QSRT.XXX.YYY.ZZZ which does not exist.
I'm running in WSAD 5.0.1 and using MQ version 5.3. The MQ server is running on a host and my WSAD is under Win XP prof.
The strange thing is that if I use the JMS API to manually send and receive messsages, it all works fine. Apparently, the code used (in *.mq.jar) is different whether or not we're running the receiver as an MDB.
Can anyone recognize this problem? |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Oct 01, 2003 9:09 am Post subject: Re: Bad queuenames using MDB's under WSAD/MQ |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
MikkelKliim wrote: |
I'm trying to set up an MDB listening on a queue called XXX.YYY.ZZZ
My QueueManager is called QSRT.
The problem is that it prefixes the queuename twice with QRST, thus ending up requesting a queue called QSRT.QSRT.XXX.YYY.ZZZ which does not exist.
...
Can anyone recognize this problem? |
This sounds like an issue with your Queue Connection Factory or Queue Destination setup. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
bower5932 |
Posted: Wed Oct 01, 2003 11:01 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
I'm not sure what you mean by:
Quote: |
I'm running in WSAD 5.0.1 and using MQ version 5.3. The MQ server is running on a host and my WSAD is under Win XP prof.
|
Are you saying that you are attempting to client connect from WSAD to your Qmgr? If so, I've done this without any problems. I had to use a WebSphere MQ QCF and fill out all of the connection type of information (ie, hostname, port, channel, qmgr).
Can you post your actual error here? It might shed some more light. |
|
Back to top |
|
 |
MikkelKliim |
Posted: Thu Oct 02, 2003 7:00 am Post subject: |
|
|
Newbie
Joined: 01 Oct 2003 Posts: 2
|
>JeffLowrey: This sounds like an issue with your Queue Connection Factory or Queue Destination setup.
Yes, I agree. The funny thing is that it only fails using MDB's - not using the same QCF and queues from the JMS API in a stateless session bean.
>bower5932: Can you post your actual error here? It might shed some more light
Yes. After the WSAD test server is startes is prints this error continuosly
[02-10-03 16:38:43:805 CEST] b0643f2 JMSExceptionL W WMSG0018E: Error on JMSConnection for MDB BevillingsLytter , JMSDestination jms/pssQueue : javax.jms.JMSException: MQJMS2008: failed to open MQ queue
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:535)
at com.ibm.mq.jms.MQQueueAgentThread1Impl.setup(MQQueueAgentThread1Impl.java:150)
at com.ibm.mq.jms.MQQueueAgentThread.run(MQQueueAgentThread.java:1516)
at java.lang.Thread.run(Thread.java:512)
And on the host it produces this error
ICH408I USER(QSRTMSTR) GROUP(STCGRP ) NAME(STC-QSRTMSTR )
QSRT.QSRT.PSS.AIN00.Q01 CL(MQQUEUE )
INSUFFICIENT ACCESS AUTHORITY
FROM QS%T.QS%T.*.%IN00.** (G)
The thing to notice is the double use of QSRT. The queue I need has just one prefixed QSRT. So where did the extra one come from?
This is a snippet of my resources.xml file where I define JMS stuff.
<resources.jms:JMSProvider xmi:id="builtin_jmsprovider" name="WebSphere JMS Provider" description="Built-in WebSphere JMS Provider" externalInitialContextFactory="" externalProviderURL=""/>
<resources.jms:JMSProvider xmi:id="builtin_mqprovider" name="WebSphere MQ JMS Provider" description="WebSphere MQ JMS Provider" externalInitialContextFactory="" externalProviderURL="">
<classpath>${MQJMS_LIB_ROOT}</classpath>
<nativepath>${MQJMS_LIB_ROOT}</nativepath>
<factories xmi:type="resources.jms.mqseries:MQQueueConnectionFactory" xmi:id="MQQueueConnectionFactory_1" name="PSSQcf" jndiName="jms/PSSQcf" authMechanismPreference="BASIC_PASSWORD" XAEnabled="true" host="192.168.24.20" port="1414" channel="QSRT.BRF.INET.CHO1" transportType="CLIENT" msgRetention="true">
<connectionPool xmi:id="ConnectionPool_2"/>
<mapping xmi:id="MappingModule_3" mappingConfigAlias="DefaultPrincipalMapping" authDataAlias=""/>
<sessionPool xmi:id="ConnectionPool_3"/>
</factories>
<factories xmi:type="resources.jms.mqseries:MQQueue" xmi:id="MQQueue_1" name="testq" jndiName="jms/testq" description="Test kø" persistence="NONPERSISTENT" priority="APPLICATION_DEFINED" expiry="APPLICATION_DEFINED" baseQueueName="REPLY.AIN00.Q04" useNativeEncoding="false" integerEncoding="Normal" decimalEncoding="Normal" floatingPointEncoding="IEEENormal"/>
<factories xmi:type="resources.jms.mqseries:MQQueue" xmi:id="MQQueue_2" name="pssQueue" jndiName="jms/pssQueue" persistence="QUEUE_DEFINED" priority="APPLICATION_DEFINED" expiry="APPLICATION_DEFINED" baseQueueName="PSS.AIN00.Q01" useNativeEncoding="false" integerEncoding="Normal" decimalEncoding="Normal" floatingPointEncoding="IEEENormal"/>
</resources.jms:JMSProvider>
I define a QueueConnectionFactory called PSSQcf and a queue called pssQueue. But nowhere do I define QSRT twice in a name.
So my problem is - how do I set this up so the queuename requested is
QSRT.PSS.AIN00.Q01?
Appreciate any help  |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Oct 02, 2003 7:46 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
MikkelKliim wrote: |
>JeffLowrey: This sounds like an issue with your Queue Connection Factory or Queue Destination setup.
Yes, I agree. The funny thing is that it only fails using MDB's - not using the same QCF and queues from the JMS API in a stateless session bean.
|
Then I'd say it could be an issue with your Message Listener Port definition.
MikkelKliim wrote: |
>bower5932: Can you post your actual error here? It might shed some more light
Yes. After the WSAD test server is startes is prints this error continuosly
[02-10-03 16:38:43:805 CEST] b0643f2 JMSExceptionL W WMSG0018E: Error on JMSConnection for MDB BevillingsLytter , JMSDestination jms/pssQueue : javax.jms.JMSException: MQJMS2008: failed to open MQ queue
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:535)
at com.ibm.mq.jms.MQQueueAgentThread1Impl.setup(MQQueueAgentThread1Impl.java:150)
at com.ibm.mq.jms.MQQueueAgentThread.run(MQQueueAgentThread.java:1516)
at java.lang.Thread.run(Thread.java:512)
And on the host it produces this error
ICH408I USER(QSRTMSTR) GROUP(STCGRP ) NAME(STC-QSRTMSTR )
QSRT.QSRT.PSS.AIN00.Q01 CL(MQQUEUE )
INSUFFICIENT ACCESS AUTHORITY
FROM QS%T.QS%T.*.%IN00.** (G)
|
But "Insufficient Access Authority" tells me it's a security issue, not a setup issue.
And "QS%T.QS%T.*.%IN00.** " makes me very suspicious about where the extra QSRT is coming from.
MikkelKliim wrote: |
The thing to notice is the double use of QSRT. The queue I need has just one prefixed QSRT. So where did the extra one come from?
This is a snippet of my resources.xml file where I define JMS stuff. |
That all looks okay to me.
MikkelKliim wrote: |
So my problem is - how do I set this up so the queuename requested is
QSRT.PSS.AIN00.Q01?
|
The one thing I wonder is where either of these are getting the first 'QSRT', as your base queue name is "PSS.AIN00.Q01". So the QSRT must be coming from some piece of code somewhere? Maybe that's generating two? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
bower5932 |
Posted: Thu Oct 02, 2003 8:23 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
The security issue certainly looks suspect. You could check into that. I'd also double-check what you have setup for your ListenerPort. It should have a QCF of jms/PSSQcf and a Q of jms/pssQueue. I'd also double-check that you actually have an MQ queue called PSS.AIN00.Q01 (although this usually throws a 2085). I'm also guessing that you have global security turned on? If so, turn it off and give it a try.
The MQ jar files should be the same in WSAD vs. MQ. However, it is entirely possible that you have newer ones with MQ. You could add them as external jars to your WSAD. However, this problem usually gives a 2009 or 2059 error. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|