|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Big Numbers when using UseMCC=Y |
« View previous topic :: View next topic » |
Author |
Message
|
PeterPotkay |
Posted: Mon Apr 24, 2006 1:25 pm Post subject: Big Numbers when using UseMCC=Y |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Roger, is there any worry about setting the max number of channels for a SVRCONN to say 1000, or 2000? To date, we have had no problems using 100 as a limit, and just want to be sure that big numbers are handled OK by MQAUSX. Any perfomance or functionality worries if MQAUSC needs to keep track of thousands of instances of a channel? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
RogerLacroix |
Posted: Mon Apr 24, 2006 2:22 pm Post subject: Re: Big Numbers when using UseMCC=Y |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
PeterPotkay wrote: |
Roger, is there any worry about setting the max number of channels for a SVRCONN to say 1000, or 2000? |
No. You can safely go up to 2147483648.
PeterPotkay wrote: |
To date, we have had no problems using 100 as a limit, and just want to be sure that big numbers are handled OK by MQAUSX. |
The max limit for each channel is stored in a C Integer ('int') which is 32-bits on all supported platforms. Hence, no worries.
PeterPotkay wrote: |
Any perfomance or functionality worries if MQAUSC needs to keep track of thousands of instances of a channel? |
The speed at which MQAUSX calculates the max limit for 1000 will be the same when it is 10.
PeterPotkay wrote: |
Any perfomance or functionality worries if MQAUSC needs to keep track of thousands of instances of a channel? |
MQAUSX does a shared memory lookup and does not access a queue each time the limit is checked. It is very, very fast.
You may want to tune MQAUSX for a particular channel if the number of 'connection attempts' per minute is very high. The default values for MCCRedoSeconds is 60 seconds and MCCRedoCount is 100. Meaning, MQAUSX will do a PCF 'dis chl()' command every 60 seconds or 100 connections (which ever comes first).
If your system is stable (listener not crashing) then those values probably overkill. Checking once an hour is plenty but probably twice a day is fine.
For once an hour use:
MCCRedoSeconds=3600
MCCRedoCount=10000
For twice a day use:
MCCRedoSeconds=43200
MCCRedoCount=100000
Note: For MCCRedoCount, I'm just guessing at how many connection attempts are made to your queue manager per hour.
Please let me know if you have any other questions.
Regards,
Roger Lacroix
Capitalware Inc. _________________ Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Apr 25, 2006 7:46 am Post subject: Re: Big Numbers when using UseMCC=Y |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
RogerLacroix wrote: |
You may want to tune MQAUSX for a particular channel if the number of 'connection attempts' per minute is very high. The default values for MCCRedoSeconds is 60 seconds and MCCRedoCount is 100. Meaning, MQAUSX will do a PCF 'dis chl()' command every 60 seconds or 100 connections (which ever comes first).
If your system is stable (listener not crashing) then those values probably overkill. Checking once an hour is plenty but probably twice a day is fine.
|
Let's say I set it to once an hour. If I cap it at 1000, MQAUSX keeps a running total for every new connection. Once it hits 1000, as soon as it hits 1000, any new connections are rejected, correct? However, once the connections start going away on their own, it won't be until the next hourly check that MQAUSX would see the lower number? Until which point it would be rejecting new connections because it still thought it was at 1000? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
RogerLacroix |
Posted: Tue Apr 25, 2006 8:22 am Post subject: Re: Big Numbers when using UseMCC=Y |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
PeterPotkay wrote: |
Let's say I set it to once an hour. If I cap it at 1000, MQAUSX keeps a running total for every new connection. Once it hits 1000, as soon as it hits 1000, any new connections are rejected, correct? |
Yes.
The server-side security exit has 2 values for each channel: CurrentTotal and MaxLimit.
- Everytime a connection is initiated (MQCONN) the CurrentTotal is incremented by one.
- Everytime a connection is disconnected (MQDISC) the CurrentTotal is decremented by one.
Therefore, the logic for a new connection is:
Code: |
CurrentTotal++;
TimesViewed++;
if ( (TimesViewed > MCCRedoCount) || (elapsed_time > MCCRedoSeconds) )
// Issue PCF 'dis chl()' command and update CurrentTotal field
if (CurrentTotal > MaxLimit)
// reject connection |
The whole point of the ReDo code is to make sure that MQAUSX's CurrentTotal field always matches what the queue manager has. As I said, if the listener is not crashing or the MQ Admin is not adding - removing - adding the MQAUSX security exit, then MQAUSX will have the correct total channel connections for a given channel. Hence, the ReDo (refresh) only needs to be done a once or twice a day.
PeterPotkay wrote: |
However, once the connections start going away on their own, it won't be until the next hourly check that MQAUSX would see the lower number? Until which point it would be rejecting new connections because it still thought it was at 1000? |
No. As the connections decrease then MQAUSX will decrease the CurrentTotal field. Hence, it will always be in sync with the actual number of connections on the channel.
Hope that helps.
Regards,
Roger Lacroix
Capitalware Inc. _________________ Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Apr 26, 2006 8:03 am Post subject: Re: Big Numbers when using UseMCC=Y |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
RogerLacroix wrote: |
- Everytime a connection is disconnected (MQDISC) the CurrentTotal is decremented by one. |
I'm assumming orphaned connections that eventually get cleaned up by Keep Alive do not issue MQDISC, and thus do not drive your logic to decrement CurrenTotal? And so the ReDo parm / logic becomes important to stay current? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
RogerLacroix |
Posted: Wed Apr 26, 2006 8:59 pm Post subject: |
|
|
 Jedi Knight
Joined: 15 May 2001 Posts: 3264 Location: London, ON Canada
|
Hi,
I've never tested it but when the listener cleans up an orphaned connection, it should also call the security exit with with an ExitReason of MQXR_TERM. Hence, the security exit would update all counters and cleanup its stuff.
Therefore, MQAUSX would always be in sync except in the case of a listener crash.
Regards,
Roger Lacroix
Capitalware Inc. _________________ Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|