ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » IBM MQ Java / JMS » Bad queuenames using MDB's under WSAD/MQ

Post new topic  Reply to topic
 Bad queuenames using MDB's under WSAD/MQ « View previous topic :: View next topic » 
Author Message
MikkelKliim
PostPosted: Wed Oct 01, 2003 8:08 am    Post subject: Bad queuenames using MDB's under WSAD/MQ Reply with quote

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
View user's profile Send private message
jefflowrey
PostPosted: Wed Oct 01, 2003 9:09 am    Post subject: Re: Bad queuenames using MDB's under WSAD/MQ Reply with quote

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
View user's profile Send private message
bower5932
PostPosted: Wed Oct 01, 2003 11:01 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger
MikkelKliim
PostPosted: Thu Oct 02, 2003 7:00 am    Post subject: Reply with quote

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
View user's profile Send private message
jefflowrey
PostPosted: Thu Oct 02, 2003 7:46 am    Post subject: Reply with quote

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
View user's profile Send private message
bower5932
PostPosted: Thu Oct 02, 2003 8:23 am    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Java / JMS » Bad queuenames using MDB's under WSAD/MQ
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.