|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Value Synchronisation & Broker Variables |
« View previous topic :: View next topic » |
Author |
Message
|
smdavies99 |
Posted: Tue Jun 27, 2006 10:49 pm Post subject: Value Synchronisation & Broker Variables |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
One of the advantages of Broker Variables can be to reduce contention on a Database table which is being used for things like message counts.
However, one of the key missing features that you get with DB tables is locking so that with the appropriate SQL statement you can be sure that the count is accurate which actually gives rise to the contention you are trying to avoid. A Catch 22 situation.
In one application I am working on, we have found that in order to squeeze the last drop of performance out of a broker we need to run several additional instances (at least 3) of the main validation flow. Naturally, using these additional instances does give rise to a lot of contention on the row that holds the message count which is updated by the message flows.
If we turn on the message counts, we can get approx 45 messages processed per second.
If the counts are off then the message rate almost doubles.
So, we are looking at alternative methods of maintaining accurate message counts in the database but reducing the DB row locking contention.
We have looked at the use fo broker vairables but there is a window where one instance could decide that the message count db needed updating and whilst it did so, another instance updated the count.
The message counts are needed as they form part of the SLA to the end user and have to be available in the DB.
There are several different messge flows that update different counts in the DB and stats are read from these tables frequently throuoght the day (24/7)
Has any MQSeries.net reader/guru/genius faced this sort of problem and if so what methods did you use to solve it.
Stephen Davies _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
shalabh1976 |
Posted: Tue Jun 27, 2006 11:21 pm Post subject: |
|
|
 Partisan
Joined: 18 Jul 2002 Posts: 381 Location: Gurgaon, India
|
smdavies99,
I have not worked a perfomance critical situation as yours but to maintain message counts in one of our projects we used Oracle Sequences.
This may or may not be of help to you. _________________ Shalabh
IBM Cert. WMB V6.0
IBM Cert. MQ V5.3 App. Prog.
IBM Cert. DB2 9 DB Associate |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Jun 28, 2006 2:56 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Another possibility is to use different number ranges per execution group.
I don't know if that is possible per instance in the group. But this would guarantee that the row is always available to your execution group.
You would have to use one row per number range.
Other techniques retrieve 10 numbers at a time and keep them in a cache to be used as needed. Downside is that not all numbers in the range will get used (crash while holding unused numbers, shutdown while holding unused numbers....
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Jun 28, 2006 4:50 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
|
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
|
|
|
|