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 » Dead letter queues

Post new topic  Reply to topic
 Dead letter queues « View previous topic :: View next topic » 
Author Message
paul0al
PostPosted: Thu Aug 08, 2002 7:19 am    Post subject: Dead letter queues Reply with quote

Apprentice

Joined: 30 May 2002
Posts: 26

Why doesn't MQSeries for Windows support dead letter queue? I have a VB program that sends messages to a queue, but the program quits when queue becomes full. I need the program to continue even if the remaining messages end up in the dead letter queue. Is there a windows alternative that offers the same benefits as a dead letter queue?

thanks
Back to top
View user's profile Send private message
pankajg
PostPosted: Thu Aug 08, 2002 9:09 am    Post subject: Reply with quote

Acolyte

Joined: 11 Oct 2001
Posts: 53

Try Defining the system DLQ As your Qmgr's DLQ.
I think it does not happen by default , u have to do it explicitly.
_________________
Regards
Pankaj
Back to top
View user's profile Send private message Send e-mail
bower5932
PostPosted: Thu Aug 08, 2002 10:09 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Aug 2001
Posts: 3023
Location: Dallas, TX, USA

MQ on Windows does support the dead letter queue. When you create your queue manager, you have to specify what queue to use as the DLQ. When you do create the qmgr, a SYSTEM.DEAD.LETTER.QUEUE is created. It just doesn't associate this queue as the qmgr's DEADQ unless you tell it to. If you've already created your qmgr, you can use runmqsc and the alter qmgr command to alter the DEADQ that your qmgr uses.
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger
paul0al
PostPosted: Thu Aug 08, 2002 10:54 am    Post subject: Reply with quote

Apprentice

Joined: 30 May 2002
Posts: 26

I read this document from IBM that said "Dead-Letter queues are not supported on MQSeries for Windows." You can take a look at www-3.ibm.com/software/ts/mqseries/library/ manualsa/csqzae05/csqzae050i.htm I also tried setting up a dead-letter queue for use with my queue manager but my program still fails when the queue runs out of space.

thanks
Back to top
View user's profile Send private message
bduncan
PostPosted: Thu Aug 08, 2002 11:00 am    Post subject: Reply with quote

Padawan

Joined: 11 Apr 2001
Posts: 1554
Location: Silicon Valley

paul0al,
What you read was referring to MQSeries for Windows, as opposed to MQSeries for NT, Win2K, etc... The MQSeries for Windows product is quite old (didn't get past 2.1 I believe). All MQSeries v5 products for all platforms support dead letter queues.
From what you wrote it sounds like you were able to create one - but things broke when it filled up? This is going to be the case. If you application does something which causes messages to go the dead letter queue, the queue manager will put them there for reprocessing later (with a dead letter handler). In the meantime you application can continue to run. However, when you fill up the dead letter queue for a queue manager, all sorts of bad things can happen, depending on whether you are putting the messages locally or from some other queue manager...
_________________
Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator
Back to top
View user's profile Send private message Visit poster's website AIM Address
RogerLacroix
PostPosted: Thu Aug 08, 2002 8:17 pm    Post subject: Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3264
Location: London, ON Canada

Paul0al,

Brandon is right about MQSeries for Windows (originally called Leaf Node). It was designed for laptop users who were not always connected to a network but had an application that required MQ access. Therefore, Leaf Node implemented a partial queue manager. Hence, the dead letter queue was not included - as per the docs you were reading.

We are assuming that you read the wrong manual.

As requested, is this a local or remote queue that your VB application is putting the messages to? Because your answer will make a difference to our answer.
- If you are putting the messages to a remote queue, AND if a dead letter queue is defined on the remote queue manager, then when the queue becomes full the queue manager will automatically put the next message(s) onto the dead letter queue.
- If you are putting the messages to a local queue, a dead letter queues is NOT used. But rather when the queue becomes full, the queue manager will return a reason code of 2053 (X'805') MQRC_Q_FULL. Therefore, it is up to the VB application to determine what to do next (e.g. put messages to another queue or exit). Or you can set the maximum queue depth to a higher number!!!

The bigger question is "why isn't the receiver application running?".

later
Roger Lacroix
Enterprise Architect
Capitalware Inc.
http://www.capitalware.biz
----------------------------------------
IBM Certified Specialist - MQSeries
IBM Certified Developer - MQSeries
IBM Certified Solutions Expert - MQSeries
----------------------------------------
Back to top
View user's profile Send private message Visit poster's website
Chris123
PostPosted: Thu Apr 17, 2003 3:20 am    Post subject: Reply with quote

Novice

Joined: 14 Apr 2003
Posts: 11

No wonder I've been confused reading the MQ Information Centre.

I never realised that MQSeries for Windows was completely different from MQSeries for Windows NT. I thought the former was just shorthand for all Windows platforms, and the latter was old documentation pre-W2k and XP. That puts a whole new slant on things like the following from the Info Centre for MQ 5.2.1:

Quote:
3. Dead-letter queue
If a message cannot be delivered or returned, it is put on to the dead-letter queue. You can use the DLQ handler to process the message. This is described in the MQSeries System Administration book for V5.1 of MQSeries for AIX, HP-UX, OS/2 Warp, Sun Solaris, and Windows NT, the MQSeries for AS/400 System Administration book for MQSeries for OS/400, and in the MQSeries for OS/390 System Administration Guide for OS/390.
If the dead-letter queue is not available, the sending MCA leaves the message on the transmission queue, and the channel stops. On a fast channel, nonpersistent messages that cannot be written to a dead-letter queue are lost.

Dead-letter queues are not supported on MQSeries for Windows.


Thanks Roger and Brandon.

Cheers,

Chris
Back to top
View user's profile Send private message
Chris123
PostPosted: Thu Apr 17, 2003 5:07 am    Post subject: Reply with quote

Novice

Joined: 14 Apr 2003
Posts: 11

On a similar theme, the same page of the Info Centre says
Quote:
Message-retry is not available on MQSeries for OS/390, MQSeries for Windows, or MQSeries for VSE/ESA

Does this really mean MQSeries for Windows or MQSeries for Windows NT (2000, XP, etc)?

Cheers,

Chris
Back to top
View user's profile Send private message
bduncan
PostPosted: Thu Apr 17, 2003 11:05 am    Post subject: Reply with quote

Padawan

Joined: 11 Apr 2001
Posts: 1554
Location: Silicon Valley

I don't think it is referring to MQSeries based on the NT platform, i.e., NT4, 2000, XP, etc...
"MQSeries for Windows" is a much older product which isn't released any longer. It was made for Windows 3.1 and Windows 95, and is basically at the level of MQSeries v2. Check the following link on the IBM website - funny, there is no link to it from the IBM site anymore, but luckily google cached it at some point:
http://www-3.ibm.com/software/ts/mqseries/platforms/win/
_________________
Brandon Duncan
IBM Certified MQSeries Specialist
MQSeries.net forum moderator
Back to top
View user's profile Send private message Visit poster's website AIM Address
tillywern
PostPosted: Mon Apr 21, 2003 9:34 am    Post subject: Dead letter queues used only in distributed messaging Reply with quote

Centurion

Joined: 28 Jan 2003
Posts: 109
Location: Colorado

My understanding may be old but as I recall Dead letter queues are only used in distributed queueing. If an application is connected to a local queue manager and issues a put to a full queue the aplication will error...

The DEAD.LETTER.QUEUE is used by a queue manager when recieving traffic from another queue manager that it cannot place onto a local queue due to some error.

Don't expect the DLQ to do anything when an applicaiton is running local.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
MichaelR
PostPosted: Mon Apr 21, 2003 10:33 am    Post subject: Reply with quote

Apprentice

Joined: 20 May 2002
Posts: 37
Location: Tampa

There are certain situations where the DLQ is used in a local queuing scheme. One that comes to mind involves Confirmation of Delivery
to a reply queue specified which is either "full" or has been deleted (i.e. TDRQ).

For the most part, though, local applications would/should receive a "2053" when attempting to directly MQPUT messages to a queue who has reached its defined maximum number of messages value.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Mon Apr 21, 2003 12:17 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

One situation where messages will go onto a DLQ from a local application (as I understand it) is if an application attempts to back out a message onto an undefined backout queue.
Back to top
View user's profile Send private message
HrothgarV
PostPosted: Thu Apr 24, 2003 6:30 am    Post subject: Reply with quote

Novice

Joined: 07 Apr 2003
Posts: 17

[quote]
[color=red]
- If you are putting the messages to a remote queue, AND if a dead letter queue is defined on the remote queue manager, then when the queue becomes full the queue manager will automatically put the next message(s) onto the dead letter queue.
[/color]
[/quote]

is this correct?

here's the scenario:
QM A is the local queue manager (with its own default dead-letter queue)
QM B is the remote queue manager (also with its own dead-letter queue)

if you are try to put a message to a remote queue in QM B (via a local definition of that queue in QM A) and fails, the message will go to the dead-letter queue of QM B ??? and not in the dead-letter queue of QM A ???
Back to top
View user's profile Send private message
mgrabinski
PostPosted: Thu Apr 24, 2003 11:05 pm    Post subject: Reply with quote

Master

Joined: 16 Oct 2001
Posts: 246
Location: Katowice, Poland

You will have messages in local DLQ if you set the CONVERT(YES) attribute of a channel, and the conversion fails.
_________________
Marcin Grabinski <><
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » Dead letter queues
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.