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 » MQJE001:Completion code 2, Reason 2026

Post new topic  Reply to topic
 MQJE001:Completion code 2, Reason 2026 « View previous topic :: View next topic » 
Author Message
s19251
PostPosted: Wed Mar 15, 2006 7:36 am    Post subject: MQJE001:Completion code 2, Reason 2026 Reply with quote

Newbie

Joined: 15 Mar 2006
Posts: 2
Location: France

I have 2 MDB on the same listening port and I want to consume a message if the value of applIdentityData of the MQ header is correctly.
For do this I want to use the <message_selector>ApplIdentityData='myapp'</message_selector> (ejb-jar.xml).

I work on WSAD 5.1 and MQSeries6.
If I don't use the selector, i consume the message.
If I use the selector I have an exception:

[15/03/06 16:31:29:335 CET] 1904576f JMSExceptionL E WMSG0018E: Erreur sur JMSConnection pour le MDB MDB_MQ , JMSDestination jms/mq/GDF.REPONSE.A : javax.jms.JMSException: MQJMS1025: Impossible de lire le message.
at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:540)
at com.ibm.mq.jms.MQQueueAgentThread1Impl.browse(MQQueueAgentThread1Impl.java:324)
at com.ibm.mq.jms.MQQueueAgentThread.run(MQQueueAgentThread.java:1553)
at java.lang.Thread.run(Thread.java:567)
---- Begin backtrace for Nested Throwables
com.ibm.mq.MQException: MQJE001 : Code achèvement 2, raison 2026
at com.ibm.mq.jms.MQQueueAgentThread1Impl.makeSuitableForDelivery(MQQueueAgentThread1Impl.java:583)
at com.ibm.mq.jms.MQQueueAgentThread1Impl.browse(MQQueueAgentThread1Impl.java:251)
at com.ibm.mq.jms.MQQueueAgentThread.run(MQQueueAgentThread.java:1553)
at java.lang.Thread.run(Thread.java:567)

[15/03/06 16:31:29:351 CET] 1904576f JMSExceptionL E WMSG0057E: Erreur sur JMSConnection pour le MDB MDB_MQ , JMSDestination jms/mq/GDF.REPONSE.A , Exception liée à JMS : com.ibm.mq.MQException: MQJE001 : Code achèvement 2, raison 2026
at com.ibm.mq.jms.MQQueueAgentThread1Impl.makeSuitableForDelivery(MQQueueAgentThread1Impl.java:583)
at com.ibm.mq.jms.MQQueueAgentThread1Impl.browse(MQQueueAgentThread1Impl.java:251)
at com.ibm.mq.jms.MQQueueAgentThread.run(MQQueueAgentThread.java:1553)
at java.lang.Thread.run(Thread.java:567)

[15/03/06 16:31:29:351 CET] 1904576f MDBListenerIm I WMSG0043I: MDB Listener MQQueueListenerPort arrêté pour la JMSDestination jms/mq/GDF.REPONSE.A

Someone could help me????
Back to top
View user's profile Send private message
fschofer
PostPosted: Wed Mar 15, 2006 7:44 am    Post subject: Reply with quote

Knight

Joined: 02 Jul 2001
Posts: 524
Location: Mainz, Germany

Hi,

http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/topic/com.ibm.mq.amqzao.doc/csq05rea3.htm

Quote:
2026 (X'07EA')MQRC_MD_ERROR
Explanation:
The MQMD structure is not valid, for one of the following reasons:

The StrucId field is not MQMD_STRUC_ID.
The Version field specifies a value that is not valid or not supported.
The parameter pointer is not valid. (It is not always possible to detect parameter pointers that are not valid; if not detected, unpredictable results occur.)
The queue manager cannot copy the changed structure to application storage, even though the call is successful. This can occur, for example, if the pointer points to read-only storage.
Completion Code:
MQCC_FAILED

Programmer Response:
Ensure that input fields in the MQMD structure are set correctly.


Greetings
Frank
Back to top
View user's profile Send private message Send e-mail
s19251
PostPosted: Wed Mar 15, 2006 7:59 am    Post subject: Reply with quote

Newbie

Joined: 15 Mar 2006
Posts: 2
Location: France

Hi,
when I look messages on my queue I see the specified properties applIdentityData whith the correct value.
But when I try to select message on WSAD based on it, I have the exception 2026 but my header MQ is correct because the message is correctly consume when I don't use the selector....
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Wed Mar 15, 2006 8:12 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

...

WSAD is a development environment. Presumably you are testing your code by running it in a test server within WSAD. What server version are you running in?

How are you configuring the selector on the MDB? Are you really hand-editing ejb-jar.xml?

Also, if you get this to work - you will have very poor performance. You are trying, in some manner or another, to use a queue as a database -"Select messages from queue where message.x like ..." - and this is pretty much an anti-pattern in messaging.

You can consider using Pub/Sub instead - and publish messages under topics that are whatever information you are putting into app;IdentityData, and then set up different subscribers to those new topics.

Or you can consider creating two or more MDBs - one that acts as a preprocessing filter to divide messages into different queues based on the applIdentityData.

I repeat - even if you get this to work - it is a bad idea! Mal! Mal!
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Wed Mar 15, 2006 12:54 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Even if you do browse the messages for applIdentityData, I hope you do realize that this field has a different name in JMS. See using java manual and JMS <-->MQMD correspondance tables.

And as Jeff said the only efficient patterns using JMS selectors are to have the selector either on MessageID or on CorrelationID (and using the provider form of the selector).

If the application ID is important I would suggest to solve this at the requester level by specifying a different reply to queue per app.

A bon entendeur Salut!
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » IBM MQ Java / JMS » MQJE001:Completion code 2, Reason 2026
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.