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 » WebSphere Message Broker (ACE) Support » Value Synchronisation & Broker Variables

Post new topic  Reply to topic
 Value Synchronisation & Broker Variables « View previous topic :: View next topic » 
Author Message
smdavies99
PostPosted: Tue Jun 27, 2006 10:49 pm    Post subject: Value Synchronisation & Broker Variables Reply with quote

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
View user's profile Send private message
shalabh1976
PostPosted: Tue Jun 27, 2006 11:21 pm    Post subject: Reply with quote

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
View user's profile Send private message Yahoo Messenger MSN Messenger
fjb_saper
PostPosted: Wed Jun 28, 2006 2:56 pm    Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
jefflowrey
PostPosted: Wed Jun 28, 2006 4:50 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

What's a "Broker variable"?

An ESQL Shared Variable?

Then use Begin Atomic.

If you just want to keep track of the number of messages that were processed, and you're using Broker v6.0.1, then there is a new User Exit that you can use to track this stuff.

You can also read the Accounting and Statistics.

http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ak04940_.htm

http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac02140_.htm

http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ac19100_.htm
_________________
I am *not* the model of the modern major general.
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 » WebSphere Message Broker (ACE) Support » Value Synchronisation & Broker Variables
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.