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 » Cluster Receiver channel holding queue handle open

Post new topic  Reply to topic
 Cluster Receiver channel holding queue handle open « View previous topic :: View next topic » 
Author Message
McueMart
PostPosted: Thu Mar 13, 2014 7:26 am    Post subject: Cluster Receiver channel holding queue handle open Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

Hi guys,

We are encountering a bit of a problem whereby we want to be able to create clustered queues and remove them in quite an 'agile' way (dont ask....).

One problem I have spotted is that despite removing a queue from the cluster, and PUT inhibiting it, it will still have an open queue handle from the amqrmppa ( Channel agent) process for quite a long time (Is this related to the Cluster Receive channel disconnect interval?).

Due to this outstanding queue handle, we are unable to delete it. Can anyone thing of a way to forcefully disconnect this handle (without stopping the QM!) ? In theory this should be fine as we have taken this queue out of the cluster and PUT inhibited it so it will receive no further messages.

Cheers!
Back to top
View user's profile Send private message
sandman147
PostPosted: Thu Mar 13, 2014 11:34 am    Post subject: Reply with quote

Apprentice

Joined: 01 Sep 2013
Posts: 42

I think the general bookish approach while removing a Q from a cluster:

1) Indicate to the other QM's in the cluster that the Q is no longer avaiable
ALTER QLOCAL<> CLUSTER('')

2)Disable the Q so no further msgs can be written to it
ALTER QLOCAL PUT(DISABLED)

3)Make sure no indoubt msgs on the cluster channel

4)Delete Q
Back to top
View user's profile Send private message
McueMart
PostPosted: Fri Mar 14, 2014 1:34 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

Hi sandman - yes this is pretty much what we are doing. But as I mention, we have this annoying open queue handle from the channel agent which stays for some random (??) period of time preventing us from being able to delete it. Im wondering if there is some kind of PCF command which can be sent to 'kill' a connection? Sounds dirty, but if it's the only way...
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Mar 14, 2014 6:12 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Have you considered altering the properties of the cluster receiver?
Back to top
View user's profile Send private message
McueMart
PostPosted: Fri Mar 14, 2014 6:53 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

Which properties do you think I should look at? From my knowledge only Disconnect Interval and Heartbeat Interval are anything related to this, and they govern the channel as a whole (i.e. whether it should be RUNNING or INACTIVE)

In my situation there will still be messages flowing over the channel (going to other queues...), but it is just 1 particular queue which has been removed from the cluster and now needs to be removed which still has the channel agent handle on it.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Mar 14, 2014 10:04 am    Post subject: Reply with quote

Grand High Poobah

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

Open a PMR. There is a channel Stanza that you might want to add to your qmgr. By default the channel caches about 100 handles... if the reuse factor interferes with the cache and availability of dynamic response queues there is a stanza that allows you to reduce the numbers of queues in the channel cache....

Hope this helps...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
McueMart
PostPosted: Wed Jun 18, 2014 12:48 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

After further playing/investigation, I still haven't found a way to 'disconnect' the channel agent from queues when I need them to be.

I have seen Morag browsing the forums in recent days so im going to shamelessly bump this post in the hope of a reply from her

(We are using MQ 7.5 for further info - but would happily move to v8 if anything new could help!)
Back to top
View user's profile Send private message
Esa
PostPosted: Wed Jun 18, 2014 3:13 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

She probably doesn't follow Message Broker forum.

Maybe you should post a topic on WMQ forum with a link pointing here?
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Wed Jun 18, 2014 3:36 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7717

Moved to Clustering Forum.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
McueMart
PostPosted: Wed Jun 18, 2014 3:41 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

Thanks! Thought I had put it in a MQ forum in the first place - apologies!
Back to top
View user's profile Send private message
PaulClarke
PostPosted: Wed Jun 18, 2014 6:09 am    Post subject: Reply with quote

Grand Master

Joined: 17 Nov 2005
Posts: 1002
Location: New Zealand

If I remember correctly a queue gets closed when.......

  • The queue cache is full - I believe this is 200 by default
  • The queue is not used for 15 minutes
  • The channel is idle and send/received a heartbeat


You can affect 2 of these


  • You can reduce the size of the cache
    You could then, if you were desperate artificially fill the cache yourself.
  • You could reduce the heartbeat interval


Are you sure though that it's a good idea to be constant creating and destroying queues in the cache? That could generate a lot of chatter and log forced. How frequently will you be doing this?

Cheers,
Paul.
_________________
Paul Clarke
MQGem Software
www.mqgem.com
Back to top
View user's profile Send private message Visit poster's website
fjb_saper
PostPosted: Wed Jun 18, 2014 6:34 am    Post subject: Reply with quote

Grand High Poobah

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

Paradoxically, reducing the number of queues in the cache, if you work a lot with dynamic response queues, is a good thing...

One of the problems presented by the cache is a high churn of dynamic response queues that are then not available to be passed back to the pool and reused as long as they are being held by the (channel) cache ...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
McueMart
PostPosted: Wed Jun 18, 2014 7:52 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

Thanks for the replies guys.

@Paul - Could you provide any guidance in regards to how I can (1) Reduce the size of the queue cache and (2) Artificially fill the cache. My googling skills are failing me.

Also in regards to the queue getting closed after 15 minutes of inactivity - can you remember if this was a 'hardcoded' value? That would be perfect if I could configure that!

In regards to reducing the heartbeat - as I mentioned, the channel will not be idle; there will still be lots of messages flowing over it into other queues so I dont think this'll do the job.

Quote:
Are you sure though that it's a good idea to be constant creating and destroying queues in the cache? That could generate a lot of chatter and log forced. How frequently will you be doing this?


Let me give a little bit of background to make what we are doing more clear. We are making deployable 'Roles'. A role package may include Message Flow, MQ objects (queues, topics etc), Databases etc. When we 'deploy' the role to a machine, we obviously create and deploy all the artifacts. When it comes time to remove the role, we want to be able to cleanly remove all the role artifacts. This is easy for Database and Message Flows, but we have hit the issue with MQ queues as I have highlighted in this thread. Hopefully this makes it a bit more clear why I want to be able to remove queues in this 'agile' manner!
Back to top
View user's profile Send private message
PaulClarke
PostPosted: Wed Jun 18, 2014 8:28 am    Post subject: Reply with quote

Grand Master

Joined: 17 Nov 2005
Posts: 1002
Location: New Zealand

Hi,

Well, to change the channel Queue Cache size you can add something like the following to your QM.INI file.

Code:

Channels:
  QueueCacheSize = 10


As for artificially filling the cache I wasn't necessarily serious. As I said, you would need to be desperate. But you could, if you really wanted to, send messages down the channel which would cause the cache to fill with 'other' queues. The fact that these are cluster channels makes it a little more awkward since you need to arrange for these messages to flow down the channel.

I'm afraid the 15 minutes is, I believe, hard coded. It's perhaps surprising, after all these years, that no one has asked for the value to be configurable. It would be very trivial to do.

As for what you are doing it sounds as though this is not not happening too frequently so there are no problems from a performance point of view. Deploying and removing an application should be a relatively rare action. Have you considered making it a two step process? For example, operationally:


  • Application is 'disabled' in some way on day 1
  • 24 hours later if no one has complained then the Application is removed

There is something to be said for not tearing down something immediately but giving people time to see whether it causes a problem. Of course I don't understand your environment or requirements so it may be totally inappropriate.

Cheers,
Paul.
_________________
Paul Clarke
MQGem Software
www.mqgem.com
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Clustering » Cluster Receiver channel holding queue handle open
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.