Author |
Message
|
rebornspririt |
Posted: Fri Jul 29, 2005 6:11 am Post subject: [Newbie] First msg on inactive queue not deliverd |
|
|
Newbie
Joined: 29 Jul 2005 Posts: 9
|
Hi,
First of all I'm now to MQSeries, so I'm still a little bit lost in the dark
I'm having a problem in the following scenario:
- I have 2 managers that communicate with each other
- Because of time-out settings all my channels are inactive (i.e. in the morning)
- I sent a message (using the Java api) to my out queue on (which is inactive at that time)
- This message should be sent to my other manager's in queue
- No message is found in the other in queue
But:
- I sent a second message (or 3th, ... and so on) to the same out queue
- The message is sent to the in queue of the other manager
- The message is actually on that in queue and can be retrieved
- But still no trace of my first message ???
Has anyone have an explaination for this behaviour why EVERY first message to my inactive in queue is lost in space? And if so a solution for the problem would be even better
Thanks[/b] |
|
Back to top |
|
 |
mq_crazy |
Posted: Fri Jul 29, 2005 6:42 am Post subject: |
|
|
 Master
Joined: 30 Jun 2004 Posts: 295
|
Do you see any errors?? Did you check the dead letter queue?? |
|
Back to top |
|
 |
JT |
Posted: Fri Jul 29, 2005 6:43 am Post subject: |
|
|
Padawan
Joined: 27 Mar 2003 Posts: 1564 Location: Hartford, CT.
|
Post the definitions for the various objects: 'in & out' queues, transmission queue, sender/receiver channels. |
|
Back to top |
|
 |
kevinf2349 |
Posted: Fri Jul 29, 2005 7:02 am Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
Without seeing the definitions or code ..... my guess would be that the first message is expiring before the channel actually starts (assuming that triggered channels are in use). |
|
Back to top |
|
 |
rebornspririt |
Posted: Mon Aug 01, 2005 12:03 am Post subject: Inactive -> running queue VERY slow |
|
|
Newbie
Joined: 29 Jul 2005 Posts: 9
|
The problem was indeed the expiry time. The following configuration settings are used now:
- put: expiry = raised to 35000 (initial 200)
- get: waitInterval = raised to 35000 (initial 15000)
I find these rather high values, is it normal it takes almost 30000 before the queue comes from inactive into running state and it sends its message? I also reduced the retry intervals to 1. I guess the retry interval timing is also very important when sending message to inactive queues, please correct me if i'm wrong?
Can anyone give me some advice on what 'normal' channel settings and startup times are?
Is it advicable to disable the inactive periode on the queues and let them alive non-stop? Some advice for a stable production environment would be great!!!
Thanks |
|
Back to top |
|
 |
kevinf2349 |
Posted: Mon Aug 01, 2005 5:25 am Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
It depends on the business needs. MQ by design is asynchronous if you need it to be synchronous you have different considerations to take into account. If you really need wiz bang response for every message then I would suggest issuing a start command ahead of the application starting for the 'application' channel without relying on triggering.
I will be suprised if one solution meets your needs it really does depend upon the business application needs. I believe that is why application programmers have such a hard time with their MQ enabled programs. There is no one single ultimate solution and they need to code their programs depending on the solution that the business requires.
In your situation messages that are most 'at risk' are the ones that result in a trigger message being generated to start the channel. Again the expiry interval on the message will depend on what your application needs. If you definately need the message to get to there, then code for a non-expiry message. If you definately needs a response from that message then you will need to code for not getting one and then maybe redriving the failed message. |
|
Back to top |
|
 |
|