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 » Clustering » question for SYSTEM.CLUSTER.TRANSMIT.QUEUE

Post new topic  Reply to topic
 question for SYSTEM.CLUSTER.TRANSMIT.QUEUE « View previous topic :: View next topic » 
Author Message
peterw686
PostPosted: Fri Apr 30, 2004 12:37 pm    Post subject: question for SYSTEM.CLUSTER.TRANSMIT.QUEUE Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Hi All,

I know for the cluster, it will send the message via the SYSTEM.CLUSTER.TRANSMIT.QUEUE. Something I don't understand is how it behaviours under the such situation:

The status of target cluster QM is "BINDING". When I sent messages to the cluster queue hosted on that QM, it didn't complain and I found the messages were stayed in the SYSTEM.CLUSTER.TRANSMIT.QUEUE. In this case, my program couldn't get the reply messages.

How the SYSTEM.CLUSTER.TRANSMIT.QUEUE and the cluster work in such situation? Is there any way to notice such situation from the programming perspective view?

Thanks in advance.

Peter
Back to top
View user's profile Send private message
Missam
PostPosted: Mon May 10, 2004 11:54 am    Post subject: Reply with quote

Chevalier

Joined: 16 Oct 2003
Posts: 424

QM don't complain of the status Binding.because its just a state not an error condition of the channel.the next states are requsting and then running.messages will remain on XMITQ until the status become running.
More over how long you channel remaining in Binding State..?
Back to top
View user's profile Send private message
peterw686
PostPosted: Tue May 11, 2004 10:23 am    Post subject: Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Thanks.

The time for "Binding state" is varies, sometimes it's half an hour, sometimes it could be one day long.


Our problem is there is a time requirement for getting response back. If it stays in the Transmition queue, we can't get the response back on time.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue May 11, 2004 10:49 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

In this situation, there is no difference as far as your application is concerned between putting to a cluster queue and putting to a remote queue definition.

If the channel from your queue manager to the remote queue manager is not working, your message will sit on a transmission queue somewhere.

In order for your application to know that a message is sitting on a transmission queue, you would have to code your application to act as a monitor for WebSphere MQ in addition to it's normal application duties.

This is usually considered as a less than good practice. If you need to monitor your channels, write or buy an application to monitor your channels.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
JT
PostPosted: Wed May 12, 2004 12:56 pm    Post subject: Reply with quote

Padawan

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

peterw686 wrote:
Is there any way to notice such situation from the programming perspective view?

Don't know if it's practical, but you could request a report message confirming the arrival of the original message (COA). If a confirmation isn't received by the sending program within a specified time period, resend the message to another queue manager in the cluster.
Back to top
View user's profile Send private message
mqonnet
PostPosted: Wed May 12, 2004 1:16 pm    Post subject: Reply with quote

Grand Master

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

"Our problem is there is a time requirement for getting response back. If it stays in the Transmition queue, we can't get the response back on time."

---Set expiry on the message. May be even with report.
In your app code your get to wait as long/less/more as you have set your expiry on your put. That way you know that the message must be processed within a certain period of time. Which you can figure out on the various factors affecting your system(design). If you dont get a response, consider the message to be expired and reissue the request.

Of course there are host of considerations when you use this method that you need to take care of. :)

Just my 2Cents.

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
EddieA
PostPosted: Wed May 12, 2004 1:31 pm    Post subject: Reply with quote

Jedi

Joined: 28 Jun 2001
Posts: 2453
Location: Los Angeles

Quote:
---Set expiry on the message. May be even with report.

The "problem" with this approach is that the Report message is NOT generated at the time the message actually expires. It is generated when the message is "read", and at that point MQ decides it's expired, discards the message, and sends the Report.

Cheers,
_________________
Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0
Back to top
View user's profile Send private message
mqonnet
PostPosted: Wed May 12, 2004 1:37 pm    Post subject: Reply with quote

Grand Master

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

You are right, Eddie. And thats the reason i have stressed on the need to handle the timeout within the app by coding the reasonably calculated value on the GET.

You may want the reports at the EOD to sum up how many requests did not get replies and who were they.

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
PeterPotkay
PostPosted: Wed May 12, 2004 5:15 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7717

The original question was:
Quote:

How the SYSTEM.CLUSTER.TRANSMIT.QUEUE and the cluster work in such situation? Is there any way to notice such situation from the programming perspective view?


So, is Peter asking "How do I write A program to notice this?" Or is he asking "How do I change MY (application) program to notice this?"

For the first question, easy enough you write a program that issues PCF commands to the QMs to find out the channel statuses. Or if you don't feel like reinventing the wheel, you use a commercially available product that already does this.

For the second question, that is getting into fuzzy territory. A putting application shouldn't care what is happening down stream. If the MQPUT worked, then know MQ has your message and the reply will come back. Eventually. MQ never made any promises on how fast it will deliver a message. It only assures that it will eventually. Changing your application to inquire on channel statuses before you put a message will hurt performance. And then if you are going to start hard coding QM names in your MQOPENs, why bother using clustering. Now you are doing all the work.

No, I think the best solution is to use a separate tool to monitor the depth of the XMIT queue, and page people if it stays above x for x seconds. As for your app, if it is an Inquiry, just resubmit it, and hope that the algorithim round robins it to another QM, hopefully with a live channel going to it. If the message cannot be duplicated (DB inserts?), then code the sending app to handle the fact that the reply may not come back immediatly.

Better yet, if your cluster channels are having this many problems (what version are you at? 5.3 I hope!), your network stinks. In this case define a second set of cluster channels using another protocal, like LU62, and give one set of channels (either the TCP or LU62) the higher priority. The other will act as a back up.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
peterw686
PostPosted: Thu May 13, 2004 11:18 am    Post subject: Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Thanks all.

I will provide these options as you guys suggested to my manager.

I think one major reason they wanna cluster is for the redundancy, however it looks like a difficulty here.
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 » Clustering » question for SYSTEM.CLUSTER.TRANSMIT.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.