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 Discussion » DLQ Messages Recovery

Post new topic  Reply to topic
 DLQ Messages Recovery « View previous topic :: View next topic » 
Author Message
bpsree
PostPosted: Mon Dec 20, 2004 7:10 am    Post subject: DLQ Messages Recovery Reply with quote

Novice

Joined: 13 Sep 2004
Posts: 18

We have ICS running in production. We are doing data transformations through ICS from AS400 DB2 DB to SQL Server DB.

We have two input Q's and two AP Q's corresponding to two MQSeries connectors. I have given the Max. Q depth for the input Q's as 1000 as the ICS server is crashing quite often so that we will not be loosing any incoming messages from AS400 system.

Recently, I have defined a SYSTEM.DEAD.LETTER.QUEUE on the production ICS server. Now, when the input Q's are full, all the messages are being thrown into DLQ. Is there any way, for me to recover the messages from DLQ. I have increased the Max. Q Depth on the input Q's to be 5000, now. And I do not want to increase the Max. Q Depth more than the limit 5000 as we may loose the messages when the system crashes.
Anybody, please advise.
Thank you in advance!
Back to top
View user's profile Send private message
vennela
PostPosted: Mon Dec 20, 2004 7:18 am    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

Quote:
Is there any way, for me to recover the messages from DLQ.

You have to write a dead letter handler to do that.

Quote:
And I do not want to increase the Max. Q Depth more than the limit 5000 as we may loose the messages when the system crashes.


If you use persistent messages, when the system crashes messages will not be lost.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
bpsree
PostPosted: Mon Dec 20, 2004 7:33 am    Post subject: Dead Letter Handler Reply with quote

Novice

Joined: 13 Sep 2004
Posts: 18

Thank you Grand Master,
I am newbie to MQSeries. Could you pl. let me know where do I find more about writing Dead Letter Handlers?
Also, I just checked the Q properties. It says Default persistence as "Persistent". Does that mean, the messages are persistent in this Q ?
Will they be saved in case of system crashes?
Also, there is one more question. I am planning to write a Java program to monitor the input Q's and AP Q's using Performance events. In case of Q depth is 1000 for ex:, then I have to send an email notification for the concerned person. After 15 min. again I have to send another notification and the third time too just in case, the person missed the notification. Is it possible to do this or is there any better approach.
Pl. let me know!
Thank you!
Back to top
View user's profile Send private message
vennela
PostPosted: Mon Dec 20, 2004 8:08 am    Post subject: Reply with quote

Jedi Knight

Joined: 11 Aug 2002
Posts: 4055
Location: Hyderabad, India

Quote:
Could you pl. let me know where do I find more about writing Dead Letter Handlers?

I have never written one so I can't answer.
Quote:
Also, I just checked the Q properties. It says Default persistence as "Persistent". Does that mean, the messages are persistent in this Q ?
It depends. Some applications specifies to use the persistence as Q defined in which case the messages are persistent. If the queue is defined as persistent and if the application specifies the message as non-persistent, then the message will be non persistent.

What QUEUEs are you talking about? The connector's queues or the application queues. The queues that you give in the connector or URIs. So all you have to do is specify the PERSISTENT property.

Example:
queue://crossworlds.queue.manager/MQCONN.IN?persistence=2&priority=5


Quote:
Is it possible to do this or is there any better approach.


YES
Back to top
View user's profile Send private message Send e-mail Visit poster's website
bpsree
PostPosted: Mon Dec 20, 2004 8:35 am    Post subject: Thank you Reply with quote

Novice

Joined: 13 Sep 2004
Posts: 18

Thank you GrandMaster,
Yes, I checked the persistency. The messages that are coming to input Q's(Application Q's) are persistent. Only thing that I am concerned while increasing the Q depth is when recovering ICS, it takes lot of time. I will look for Dead Letter Handler.
Thank you once again for your valuable comments!
Back to top
View user's profile Send private message
JT
PostPosted: Mon Dec 20, 2004 11:19 am    Post subject: Reply with quote

Padawan

Joined: 27 Mar 2003
Posts: 1564
Location: Hartford, CT.

Quote:
In addition to the DLQ handler invoked using the runmqdlq command, WebSphere MQprovides the source of a sample DLQ handler, amqsdlq, whose function is similar to that provided by runmqdlq. You can customize amqsdlq to provide a DLQ handler that meets your requirements. For example, you might decide that you want a DLQ handler that can process messages without dead-letter headers.

Check the \IBM\WebSphere MQ\Tools\c\Samples\ directory for a copy of amqsdlq.
Back to top
View user's profile Send private message
csmith28
PostPosted: Mon Dec 20, 2004 11:24 am    Post subject: Reply with quote

Grand Master

Joined: 15 Jul 2003
Posts: 1196
Location: Arizona

Not exactly sure how this works on the AS/400 but when I replay messages on the SDLQ on a UNIX OS I do the following:

Code:

# echo "REASON(*) ACTION(RETRY) WAIT(NO)" > /tmp/retry.txt
# /usr/mqm/bin/runmqdlq < /tmp/retry.txt


This will cause the MQManager to re-attempt to deliver all the messages on your SYSTEM.DEAD.LETTER.QUEUE once.
_________________
Yes, I am an agent of Satan but my duties are largely ceremonial.


Last edited by csmith28 on Mon Dec 20, 2004 11:54 am; edited 1 time in total
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Dec 20, 2004 11:42 am    Post subject: Reply with quote

Grand High Poobah

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

Depending on your platform there is a DLQ handler delivered by IBM.(runmqdlq)
Check out the admin manual. It tells you how to use it.

Enjoy
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 » General Discussion » DLQ Messages Recovery
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.