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 » message in transmission queue

Post new topic  Reply to topic
 message in transmission queue « View previous topic :: View next topic » 
Author Message
freak
PostPosted: Sun May 09, 2010 5:13 pm    Post subject: message in transmission queue Reply with quote

Novice

Joined: 28 Feb 2010
Posts: 18

hi all,

here's the scenario:

- message are sent to remote queue in machine A
- my channel connection to transmit message from machine A to machine B is down.
- messages are now stuck in machine A transmission queue.

i had view the message in the transmission queue and realised that the information that i had set in the correlation ID of the message is not visible in the tranmission's correlation ID. Neither is it found in the data message.

Is there a way to retrieve these message out from the transmission queue? i would want to be in the original format. that is the correlation ID will contain my customize content.

thanks
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Sun May 09, 2010 5:42 pm    Post subject: Re: message in transmission queue Reply with quote

Grand High Poobah

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

freak wrote:
hi all,

here's the scenario:

- message are sent to remote queue in machine A
- my channel connection to transmit message from machine A to machine B is down.
- messages are now stuck in machine A transmission queue.

i had view the message in the transmission queue and realised that the information that i had set in the correlation ID of the message is not visible in the tranmission's correlation ID. Neither is it found in the data message.
So what? It is a bad idea to mess with messages on the xmitq. You are of course aware that MQ adds a specific header used by the channel agents before putting the message on the xmitq?

freak wrote:
Is there a way to retrieve these message out from the transmission queue? i would want to be in the original format. that is the correlation ID will contain my customize content.

thanks

Again it is a bad idea to mess with messages on the xmitq. To access the MQMD with your original content you would have to look at the linked headers... Apart from that removing a message from the xmitq is just like removing any other message from any other queue. Think about the differences due to channel agents opening the queue in exclusive mode...

Have fun.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
freak
PostPosted: Sun May 09, 2010 5:57 pm    Post subject: Re: message in transmission queue Reply with quote

Novice

Joined: 28 Feb 2010
Posts: 18

Yes, i know that during transmission MQ will append additional header to messages in transmission queue. that's why i am asking if anyone had other alternative to it? I had tried to change the transmission queue information in the remote queue in hope that the "stuck" messages will be sent to the newly defined location but it didnt work out.

To access the MQMD with your original content you would have to look at the linked headers -> where can i find the linked headers? is it in MQ or i had to flip the pages in redbook?


I am trying to find out if there is a way to retrieve the messages out from the transmission queue without resolving the channel issue. I believe the additional header append in the transmission queue will contain the receiver Queue manager and queue name. however, i would like to know if i could route them to another queue manager instead.
Back to top
View user's profile Send private message
Mr Butcher
PostPosted: Sun May 09, 2010 10:40 pm    Post subject: Reply with quote

Padawan

Joined: 23 May 2005
Posts: 1716

Quote:
in hope that the "stuck" messages will be sent to the newly defined location


so you want to re-route the messages somewhere else? stop the "old" channel. define the "new" channel using the "old" xmitq. after that:

1. send the messages and resolve on the receiving end either by using the dlq handler or proper mqseries objects (e.h. qmgr alias).

or

2,. define the new channel with 1 byte length, when trying to ttransfer messages they will be put to your local DLQ. when xmitq is empty, alter channel back to roiginal length and use dlq handler to route messagdes to a new destination

or

3. there may be other solutions too.


of course the "old" channel should not be indoubt.
_________________
Regards, Butcher
Back to top
View user's profile Send private message
Esa
PostPosted: Sun May 09, 2010 11:00 pm    Post subject: Re: message in transmission queue Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

freak wrote:
I believe the additional header append in the transmission queue will contain the receiver Queue manager and queue name. however, i would like to know if i could route them to another queue manager instead.


Yes, you can, and it is a simple administrative task. Or perhaps a little bit more complicated than an everyday task. Like this for example:

1. Create a new QM (on your sender machine for example)
2. Create a transmission q on you new QM with the name of your new target QM.
3. Create a sender channel to your new target QM
4. Create a corresponding receiver channel on the target QM.
5. Create a local Q on your target QM with the same name as the original target Q.
6. Ping and start the channel. test it with a test message
7. Create a QM alias on your new QM with the name of your original target QM and remote queue manager pointing to your new target QM (leave remote queue name empty)
8. Create a sender channel from your sender QM to the new QM. Point the transmission q to the XMITQ that contains your marooned messages.
9. Create a corresponding receiver channel on your new QM.
10. Ping and start the channel.

If you did everything correctly, you should have managed to route the messages to an alternative target. After that you can remove all the new objects that you created, including the new dummy QM, and create a new channel directly to the alternative target QM. If you cannot change the sending program to send messages to the alternative QM you can create another QM alias on the sending QM.

I see mr Butcher posted a faster and simplier alternative while I was composing this message.
Back to top
View user's profile Send private message
zpat
PostPosted: Sun May 09, 2010 11:33 pm    Post subject: Reply with quote

Jedi Council

Joined: 19 May 2001
Posts: 5866
Location: UK

That's a lot of work. Here's another way

Make the transmit queue get enabled (if it is get disabled).

Read the message(s) off with MO71 (unload option) with the strip headers option.

Load the message(s) onto another remote queue of your choice (MO71 can copy queue to queue with the unload feature).

Delete original message(s) once this has worked.
Back to top
View user's profile Send private message
freak
PostPosted: Mon May 10, 2010 1:52 am    Post subject: Re: message in transmission queue Reply with quote

Novice

Joined: 28 Feb 2010
Posts: 18

[quote="Esa"][quote="freak"]I believe the additional header append in the transmission queue will contain the receiver Queue manager and queue name. however, i would like to know if i could route them to another queue manager instead.[/quote]

Yes, you can, and it is a simple administrative task. Or perhaps a little bit more complicated than an everyday task. Like this for example:

1. Create a new QM (on your sender machine for example)
2. Create a transmission q on you new QM with the name of your new target QM.
3. Create a sender channel to your new target QM
4. Create a corresponding receiver channel on the target QM.
5. Create a local Q on your target QM with the same name as the original target Q.
6. Ping and start the channel. test it with a test message
7. Create a QM alias on your new QM with the name of your original target QM and remote queue manager pointing to your new target QM (leave remote queue name empty)
8. Create a sender channel from your sender QM to the new QM. Point the transmission q to the XMITQ that contains your marooned messages.
9. Create a corresponding receiver channel on your new QM.
10. Ping and start the channel.

If you did everything correctly, you should have managed to route the messages to an alternative target. After that you can remove all the new objects that you created, including the new dummy QM, and create a new channel directly to the alternative target QM. If you cannot change the sending program to send messages to the alternative QM you can create another QM alias on the sending QM.

I see mr Butcher posted a faster and simplier alternative while I was composing this message.[/quote]


a quick one:

is step 1-6 referring to my existing machine A and B or do i have to create a new QM to my existing QMs in machine A and B?

As for #7, are you trying to tell me to create a new QM with a new alias Queue. This alias queue will have the same QM name as machine B (target).
Back to top
View user's profile Send private message
Esa
PostPosted: Mon May 10, 2010 2:32 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

1-6. One new queue manager that you put between A and B.

7. A queue manager alias is not an alias queue, but a remote queue definition that has no remote queue. When a receiving channel reads a message from the channel, it compares the queue manager name from MQMD to its own QM name. If the names do not match, it tries to find a transmission queue with a name that matches to MQMD queue manager name. A queue manager alias can be used here to route the message to another transmission queue.
Back to top
View user's profile Send private message
Esa
PostPosted: Mon May 10, 2010 2:42 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

If
A = the sender QM
B = the original target QM(with the channel down)
C = the new target QM

then you put the dummy QM between A and C.

You do not necessarily need that dummy QM if queue managers C and B are not directly interconnected. In that case you can just create a new channel between A and C and and add a queue manager alias on C.
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 » message in transmission queue
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.