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 » General IBM MQ Support » Report messages going to DLQ.

Post new topic  Reply to topic Goto page 1, 2  Next
 Report messages going to DLQ. « View previous topic :: View next topic » 
Author Message
kirani
PostPosted: Tue Jun 25, 2002 8:50 am    Post subject: Report messages going to DLQ. Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

I am having a problem with Report messages.

I am setting following fields in my MQMD header,
MQMD.Expiry = 10 secs.
MQMD.ReplyToQMgr = 'AH1_TNL11'
MQMD.ReplyToQ = 'KI.REPORT'
MQMD.Report = MQRO_EXCEPTION | MQRO_COA | MQRO_COD | MQRO_EXPIRATION (integer value is 18876672)

I verified these values and they are getting set properly. I am writing this message on a remote queue, which points to a local queue on 'MQSI' queue manager. I have defined a pair of channels between these two queue managers and they are working fine.

I get only COA Report message in KI.REPORT queue on AH1_TNL11 queue manager. If an application picks up the message, COD report message is generated and it goes to MQSI.DLQ queue. If an application doesn't pickup the message, and after i do a browse on queue, an Expiry report message is generated as expected, but again it goes to MQSI.DLQ queue.
The DLH shows following values,
Reason Code: MQRC_NOT_AUTHORIZED
Destination Queue: KI.REPORT
Destination Queue Manager: AH1_TNL11

Any idea??
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
mqonnet
PostPosted: Tue Jun 25, 2002 1:14 pm    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Kirani
Check out the following thread with a detailed explaination of why you are getting 2035.

http://www.mqseries.net/phpBB/viewtopic.php?topic=2680&forum=5&1

Cheers.
Kumar
_________________
IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator
Back to top
View user's profile Send private message Send e-mail Visit poster's website
kirani
PostPosted: Tue Jun 25, 2002 3:51 pm    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Kumar,

Thanks for your reply. It didn't work though.
What surprises me is how come COA report message is able to reach the originating queue manager and it fails for other report messages?
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
nimconsult
PostPosted: Wed Jun 26, 2002 1:18 am    Post subject: Reply with quote

Master

Joined: 22 May 2002
Posts: 268
Location: NIMCONSULT - Belgium

I would suspect that the user that sends the COA (the channel agent) is not the same as the one that sends the COD. Can you check that you can reach the reply queue KI.REPORT from the server queue manager, using the same user as the application that consumes the message?

'hope this helps,
_________________
Nicolas Maréchal
Senior Architect - Partner

NIMCONSULT Software Architecture Services (Belgium)
http://www.nimconsult.be
Back to top
View user's profile Send private message Send e-mail Visit poster's website
mrlinux
PostPosted: Wed Jun 26, 2002 4:11 am    Post subject: Reply with quote

Grand Master

Joined: 14 Feb 2002
Posts: 1261
Location: Detroit,MI USA

What is the put authority of the rcvr channel on qmgr that receives the
Reports ?????
_________________
Jeff

IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries
Back to top
View user's profile Send private message Send e-mail
nimconsult
PostPosted: Wed Jun 26, 2002 5:51 am    Post subject: Reply with quote

Master

Joined: 22 May 2002
Posts: 268
Location: NIMCONSULT - Belgium

Jeff,

I guess that the scenario is the following:

- Kiran runs an application on a queue manager AH1_TNL11, which sends a message to another queue manager (let's call it QM2).
- On QM2, the receiver channel receives the message, produces a COA and puts it on the transmission queue back to AH1_TNL11. The authority of the receiver channel agent depends on the PUTAUT parameter of the channel definition. By default it is either the MCAUSER if one is defined, or the user that started the process (typically the receiver channel is started by the channel initiatior, which on W2K runs as a service with the system user id).
- On QM2, Kiran now starts an application (real application or API exerciser or whatever) and reads the initial message, MQ Series produces a COD and attempts to put it on the transmission back to AH1_TNL11, but this time with the authority of the application. If the user of the application does not have the authority to put a message on the transmission queue, the COD goes to the dead-letter queue.
_________________
Nicolas Maréchal
Senior Architect - Partner

NIMCONSULT Software Architecture Services (Belgium)
http://www.nimconsult.be
Back to top
View user's profile Send private message Send e-mail Visit poster's website
mrlinux
PostPosted: Wed Jun 26, 2002 6:13 am    Post subject: Reply with quote

Grand Master

Joined: 14 Feb 2002
Posts: 1261
Location: Detroit,MI USA

I got the wrong impression from the fact the messages were in the deadq,
usally the messages in the deadq are not from that queue manager, except in certain cases.
_________________
Jeff

IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries
Back to top
View user's profile Send private message Send e-mail
nimconsult
PostPosted: Wed Jun 26, 2002 6:35 am    Post subject: Reply with quote

Master

Joined: 22 May 2002
Posts: 268
Location: NIMCONSULT - Belgium

In "MQ Series Application Programming Guide", Part 1, Chapter 3, Types of Messages, Report Messages (on page 26 in the 13rd edition), you can read:

"If a report message cannot be delivered (if the queue is full, for instance), the report message will be placed on the dead-letter queue"

This behaviour specific to report messages is applicable on the sender side.

On the receiver side, report messages can also be sent on the dead-letter queue, just like any other messages.
_________________
Nicolas Maréchal
Senior Architect - Partner

NIMCONSULT Software Architecture Services (Belgium)
http://www.nimconsult.be
Back to top
View user's profile Send private message Send e-mail Visit poster's website
mqonnet
PostPosted: Wed Jun 26, 2002 11:57 am    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Kirani,

[quote="kirani"]Kumar,

Thanks for your reply. It didn't work though.
What surprises me is how come COA report message is able to reach the originating queue manager and it fails for other report messages?[/quote]

The reason you get COA but not COD or expiration reports is because the path followed for the two is different. COA's are generated when an APP reads(browse/get) the specific message off the queue. Which means that this report(COA) generation is part of the applicaion request processing. Whereas, COD and Expiration reports are part of QMGR processing. QMGR is responsible to do that.
What i suspect here is, when you browse a msg using an app which generates a COA, the useridentifier that goes in is "mqm". But when the reports are generated by the QMGR, it uses the userid that the user is logged in as on the other Box, who may not have the respective principal on the originating Box.
In any case, defining a principal of that user on the 1st Box with minimum rights cannot harm, but resolve this problem.

Cheers.
Kumar
_________________
IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator
Back to top
View user's profile Send private message Send e-mail Visit poster's website
kirani
PostPosted: Wed Jun 26, 2002 2:54 pm    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

All,

mqonet wrote:

COA's are generated when an APP reads (browse/get) the specific message off the queue. Which means that this report (COA) generation is part of the application request processing. Whereas, COD and Expiration reports are part of QMGR processing. QMGR is responsible to do that.
Problem.


Kumar,
Not quite true. Here is what I know about COA & COD.
COA (Confirmation of Arrival) report messages are generated when the message is put on the target queue.
COD (Confirmation of Delivery) report messages are generated when the message is retrieved off the Target queue by the receiving application.
correct?

My setup is like this ...
I have a WMQI message flow (source application) running on WMQI server, which puts message to a remote queue (Q1) defined on AH1_TNL11. Q1 maps to a local queue, KI.LOCAL, on another queue manager, MQSI, which is on my local workstation. There are channels defined between these two queue managers. After I run my message flow, output message is written on to a remote queue (Q1) with user-id casswmqi.

Once MCA on MQSI delivers message on KI.LOCAL queue, the queue manager will generate COA message, which will go to replyToQ KI.REPORT on queue manager AH1_TNL11 specified in MQMD header. COA message indicates casswmqi as user-id in MQMD header.

After 10 seconds my message on queue KI.LOCAL on queue manager MQSI expires. After I browse the queue using MQSeries Explorer, Expiration report is generated, but this time the reprot message goes to DLQ of MQSI queue manager. User identifier is casswmqi in MQMD header for this message.

I have logged in a ci64 on my local workstation. casswmqi user-id is also defined on my local machine and following are the authorizations for these users.

Code:

C:\>dspmqaut -m MQSI -t qmgr -p casswmqi
Entity casswmqi has the following authorizations for object MQSI:
        inq
        set
        connect
        altusr
        crt
        dlt
        chg
        dsp
        setid
        setall

C:\>dspmqaut -m MQSI -t qmgr -p ci64
Entity ci64 has the following authorizations for object MQSI:
        inq
        set
        connect
        altusr
        crt
        dlt
        chg
        dsp
        setid
        setall


Are we missing something?
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
mrlinux
PostPosted: Wed Jun 26, 2002 7:42 pm    Post subject: Reply with quote

Grand Master

Joined: 14 Feb 2002
Posts: 1261
Location: Detroit,MI USA

Yes authority to the queue itself, what is the put authority of the receiver channel on your MQSI box ????? If you set it to default this will work
_________________
Jeff

IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries
Back to top
View user's profile Send private message Send e-mail
kirani
PostPosted: Wed Jun 26, 2002 8:38 pm    Post subject: Reply with quote

Jedi Knight

Joined: 05 Sep 2001
Posts: 3779
Location: Torrance, CA, USA

Jeff,

I didn't change any object authority so I would assume it is set to default. user-id casswmqi and ci64 is part of local mqm group on my workstation.

Tommorow I will run this command once again on other objects (channels/queues) and post the results here.

Thanks for your time.
_________________
Kiran


IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries

Back to top
View user's profile Send private message Visit poster's website
mqonnet
PostPosted: Thu Jun 27, 2002 4:00 am    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Kiran,
Please replace COA to COD and vice versa in my previous comments. Sorry about the mix up... Have been too stressed out, looks like..:).

But yes, i would like to see if you have defined a principal "casswmqi" on QM AH1_TNL11. Because the output of dspmqaut that you posted refers to QM MQSI. If there is one defined, i would like to see the authorities to it. If it is not defined, define it and run your test case again.

Hope this helps.

Cheers.
Kumar
_________________
IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator
Back to top
View user's profile Send private message Send e-mail Visit poster's website
nimconsult
PostPosted: Thu Jun 27, 2002 4:55 am    Post subject: Reply with quote

Master

Joined: 22 May 2002
Posts: 268
Location: NIMCONSULT - Belgium

Kumar,

I do not think that the problem is related to authority on QM AH1_TNL11, because the COA does not even leave the QM MQSI.

I come back to my previous statement:

The receiver channel agent on QM MQSI has the authority to put messages on the XMITQ (success to send COA), but the principal of the application does not have this authority (failure to send COD).

How to check this? Connect on QM MQSI (with the API exerciser for example) and post a message to KI.REPORT using the principal of the application.

How to solve the problem? Assign authority (with MQAUT) to put messages on xmitq (+connect +inq +set +setall on qmgr and +put +setall on queue).
_________________
Nicolas Maréchal
Senior Architect - Partner

NIMCONSULT Software Architecture Services (Belgium)
http://www.nimconsult.be
Back to top
View user's profile Send private message Send e-mail Visit poster's website
mqonnet
PostPosted: Thu Jun 27, 2002 5:22 am    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Nicolas, let me clarify the reason i am stressing on my comments.
You are right in stating that the report msg never leaves MQSI qm, and hence we need to look in here and not the authorities of ANH1_TNL11. But the reason for me pointing it out is, when the message expires and the QM finds that it has to put the report onto a remote queue, the MCA tries to open the local queue at the other end. And this is where the whole issue of authorities at the other end come into picture. If you are not authorized to open and put the message on the other end, the qmgr puts the message into the local qm dlq.
At least that's my understanding. I am opent to comments..


Cheers.
Kumar
_________________
IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » General IBM MQ Support » Report messages going to DLQ.
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.