Author |
Message
|
mangoMan |
Posted: Wed Aug 24, 2005 12:41 pm Post subject: 2058 with qmgr name and 2033 with no messages--spooky |
|
|
Acolyte
Joined: 16 Oct 2003 Posts: 69
|
Here is the problem:
Platform: AIX
MQSeries 5.3 with CSD 10
JDK 1.3.16
When I specify the queue manager name in my program, which runs under WAS 5.1, I get a 2058.
When I specify a blank "" for the queue manager name I get a 2033 on a get which is strange cause I do have a message sitting on the queue. I check to see if there is a process listening on that queue and I notice that both the Open Input queue and Open Output count are zero.
Very very very stange. Any ideas? I have scanned through some of the postings for 2058 but not help so far. Most people are getting these errors because they are using clients or forgetting to use the correct name. I am stumped. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Aug 24, 2005 1:01 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Can you browse the message sitting on the queue. Is it committed ?
2058 is qmgr name error. CASE DOES MATTER.  |
|
Back to top |
|
 |
mangoMan |
Posted: Wed Aug 24, 2005 1:04 pm Post subject: |
|
|
Acolyte
Joined: 16 Oct 2003 Posts: 69
|
I am using rfhutil to put the message so it should be commited. Secondly, I am using the correct queue manager name, I have even hard coded it. Oh and I am able to browse the message using amqsbcg. |
|
Back to top |
|
 |
bower5932 |
Posted: Wed Aug 24, 2005 1:22 pm Post subject: Re: 2058 with qmgr name and 2033 with no messages--spooky |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
mangoMan wrote: |
When I specify the queue manager name in my program, which runs under WAS 5.1, I get a 2058.
When I specify a blank "" for the queue manager name I get a 2033 on a get which is strange cause I do have a message sitting on the queue. |
When I see problems like this, I become suspicious of having multiple queue managers on the same machine. They are probably using different listener ports, and I wouldn't be surprised if one of them is a default queue manager (which is the blank name). |
|
Back to top |
|
 |
mangoMan |
Posted: Wed Aug 24, 2005 2:06 pm Post subject: |
|
|
Acolyte
Joined: 16 Oct 2003 Posts: 69
|
I was leaning towards your hunch but when I run dspmq I get
QMNAME(PROD13) STATUS(Running)
and
amqsbcg RPS_INPUT PROD13
amqsbcg RPS_INPUT
return the same message ( same msgID ) |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Aug 24, 2005 2:23 pm Post subject: Re: 2058 with qmgr name and 2033 with no messages--spooky |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
mangoMan wrote: |
When I specify the queue manager name in my program, which runs under WAS 5.1, I get a 2058.
When I specify a blank "" for the queue manager name I get a 2033 on a get which is strange cause I do have a message sitting on the queue. |
Can we see the offending code ? |
|
Back to top |
|
 |
mangoMan |
Posted: Wed Aug 24, 2005 2:42 pm Post subject: |
|
|
Acolyte
Joined: 16 Oct 2003 Posts: 69
|
Here is the code:
Code: |
// this works fine but I get a 2033 even with a message on the queue
MQQueueManager mqQueueMgr = null;
MQGetMessageOptions mqInGetMsgOpts = new MQGetMessageOptions();
mqInGetMsgOpts.waitInterval = _getWaitInterval;
mqInGetMsgOpts.options = MQC.MQGMO_WAIT + MQC.MQGMO_SYNCPOINT;
mqQueueMgr = new MQQueueManager("");
mqInQueue = mqQueueMgr.accessQueue(_inQueueName, MQ_GET_OPTIONS);
while(_running)
{
mqInMsg = new MQMessage();
mqInQueue.get(mqInMsg, mqInGetMsgOpts);
.........
.........
......... |
Code: |
// with this I get a 2058
MQQueueManager mqQueueMgr = null;
MQGetMessageOptions mqInGetMsgOpts = new MQGetMessageOptions();
mqInGetMsgOpts.waitInterval = _getWaitInterval;
mqInGetMsgOpts.options = MQC.MQGMO_WAIT + MQC.MQGMO_SYNCPOINT;
mqQueueMgr = new MQQueueManager("PROD13");
mqInQueue = mqQueueMgr.accessQueue(_inQueueName, MQ_GET_OPTIONS);
while(_running)
{
mqInMsg = new MQMessage();
mqInQueue.get(mqInMsg, mqInGetMsgOpts);
.........
.........
......... |
Note: I am running this as a thread inside a servlet on WAS. |
|
Back to top |
|
 |
hopsala |
Posted: Wed Aug 24, 2005 4:30 pm Post subject: |
|
|
 Guardian
Joined: 24 Sep 2004 Posts: 960
|
I think you should view this as two seperate problems - one is 2033, the other 2058 - they have no bearing on one another whatsoever. Solve one of them, then move on to the other.
Concerning the 2033, check the following:
1. That you are opening the right queue (not some alias queue or another queue with a similar name) don't trust your code - print your variables to console!
2. That you are not getting by corrlid - check that corrlid and msgid are cleared in the beginning and after each MQGET. Maybe what happens is that you are getting the first msg, then 2033 on the second and backing out - returning the first msg to queue and thus to inifinitum.
The main question here is, does the error happens the first time you go into the loop?
3. Try MATCH_MSGID and set msgid to the msgid of the first msg in q, see what happens...
4. Try a simpler prog - connect, openq, get, exit - no while and no syncpoint, and try opening some other q.
Concerning the 2058, I am not that well-acquainted with WAS, but possibly PROD13 is some JNDI name which points in the wrong direction, or something in similar style...? |
|
Back to top |
|
 |
bower5932 |
Posted: Thu Aug 25, 2005 5:00 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
I didn't see anything in any of the appends regarding WAS. There is also a dspmq above which shows a qmgr name of PROD13 so I don't think it is a JNDI problem. You could always take a trace and look through it for the 2058. You should then see the qmgr name right around it which might point to what is wrong.
I think hopsala's guess about not clearing out id's before reissuing the get might be your 2033. |
|
Back to top |
|
 |
kingsley |
Posted: Thu Aug 25, 2005 6:10 am Post subject: |
|
|
Disciple
Joined: 30 Sep 2001 Posts: 175 Location: Hursley
|
how many QueueManagers are running on the same machine. If it is more than one, then your producers is not placing the msg where your consumer is looking for.
try
runmqsc
dis qmgr.
Find the QueueManager name. which would be your Default QueueManager and it is the QueueManager to which your program connects. Now, you get 2033 ,means there is no msg on the queue in this QueueManager |
|
Back to top |
|
 |
hopsala |
Posted: Thu Aug 25, 2005 7:47 am Post subject: |
|
|
 Guardian
Joined: 24 Sep 2004 Posts: 960
|
bower5932 wrote: |
I didn't see anything in any of the appends regarding WAS. |
?
mangoMan wrote: |
Note: I am running this as a thread inside a servlet on WAS. |
Granted it's hidden away at the bottom, but it's there  |
|
Back to top |
|
 |
hopsala |
Posted: Thu Aug 25, 2005 7:50 am Post subject: |
|
|
 Guardian
Joined: 24 Sep 2004 Posts: 960
|
Oh, and
kingsley wrote: |
how many QueueManagers are running on the same machine. If it is more than one, then your producers is not placing the msg where your consumer is looking for. |
mangoMan wrote: |
I was leaning towards your hunch but when I run dspmq I get
QMNAME(PROD13) STATUS(Running) |
We've been there... |
|
Back to top |
|
 |
bower5932 |
Posted: Thu Aug 25, 2005 11:01 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA
|
I see the WAS now. However, I'm not sure that this has any bearing on his actual problem. I'd still go for the trace. |
|
Back to top |
|
 |
mangoMan |
Posted: Thu Aug 25, 2005 12:18 pm Post subject: |
|
|
Acolyte
Joined: 16 Oct 2003 Posts: 69
|
Guys, just one more idea. Could it be that WAS is running a queue manager? Which might explain why I keep getting a 2033 even when I delete the queue. |
|
Back to top |
|
 |
hopsala |
Posted: Thu Aug 25, 2005 12:30 pm Post subject: |
|
|
 Guardian
Joined: 24 Sep 2004 Posts: 960
|
mangoMan wrote: |
Could it be that WAS is running a queue manager? |
Yes, this is possible and even probable (sorry, assumed you already checked that option out yourself) - WAS has a strange decadent "embedded QManager" within, it works slightly differently than a normal qm, and does not have all the functionality of a regular qm.
You should read WAS literature on how to control it, and if something is unclear, ask. |
|
Back to top |
|
 |
|