Author |
Message
|
kishoreraju |
Posted: Fri Jun 19, 2009 12:16 pm Post subject: enabling Message broker monitor events |
|
|
Disciple
Joined: 30 Sep 2004 Posts: 156
|
Hi All,
I have created a sample Message flow with MQinput->Compute->OutNodes to test message broker monitoring capabilites.
I configured Outterminal event source for MQ input node and MQ output nodes.
I deployed the flow to the broker and activated the monitoring by using the below command
mqsichangeflowmonitoring WBRK61_DEFAULT_BROKER -c active -e default -j
I ran the below command to make sure that monitoring is activated.
mqsireportflowmonitoring WBRK61_DEFAULT_BROKER –e default -j
The below is the output
BIP8911I: Monitoring settings for flow 'TestmsgF' in execution group 'default' -
State?: inactive, ProfileName: ''.
BIP8911I: Monitoring settings for flow 'RergisterSub' in execution group 'defaul
t' - State?: inactive, ProfileName: ''.
I Registed a subscription to the broker to receive all published events by using the bleow code in the broker.
SET OutputRoot.MQRFH2.(MQRFH2.Field)Version = 2;
SET OutputRoot.MQRFH2.(MQRFH2.Field)Format = 'MQSTR';
SET OutputRoot.MQRFH2.(MQRFH2.Field)NameValueCCSID = 1208;
SET OutputRoot.MQRFH2.psc.Command = 'RegSub';
SET OutputRoot.MQRFH2.psc.Topic = '$SYS/Broker/WBRK61_DEFAULT_BROKER/Monitoring/default';
SET OutputRoot.MQRFH2.psc.QName = 'TEST.MONITOR.REQ';
SET OutputRoot.MQRFH2.psc.RegOpt = 'PersAsPub';
SET OutputRoot.MQRFH2.psc.RegOpt = 'FullResp';
When i tested my flow .it is not publishing any event messages on to the topic given in the documentation.
Even i registered a subsription with the topic name $SYS/Broker/# to receive all the publication on broker but no luck.
please suggest me on what have to do to make this working.
Thanks in Advance
Kishore |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Jun 19, 2009 3:35 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Check back in the manual. Your command is I believe mqsichangeflowstats.
Might be changemqsiflowmonitoring in V.6.1. It should have a format addendum to tell it to publish to the broker in xml format?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
kimbert |
Posted: Sat Jun 20, 2009 2:05 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Hmm. Might be worth re-reading your command output:
Quote: |
mqsireportflowmonitoring WBRK61_DEFAULT_BROKER –e default -j
The below is the output
BIP8911I: Monitoring settings for flow 'TestmsgF' in execution group 'default' -
State?: inactive, ProfileName: ''.
BIP8911I: Monitoring settings for flow 'RergisterSub' in execution group 'defaul
t' - State?: inactive, ProfileName: ''. |
For some reason, monitoring is not enabled for these message flows. That is why you are not seeing any monitoring events being published.
btw, I don't recommend use of the -j parameter on mqsichangeflowmonitoring. Every message flow has a default monitoring profile which instructs it to emit a pair of transactionStart and transactionEnd events. Unless that's what you really want ( unlikely ) I suggest that you specify the message flow name explicitly. If your problems are due to a defect in mqsichangeflowmonitoring, then stopping using the -j flag might also fix this whole problem.
fjb_saper: As you've probably guessed by now, mqsichangeflowmonitoring is the correct command. And it doesn't have a flag to control the format - events are always published as XML messages. |
|
Back to top |
|
 |
kishoreraju |
Posted: Mon Jun 22, 2009 5:49 am Post subject: |
|
|
Disciple
Joined: 30 Sep 2004 Posts: 156
|
Thanks Kimbert,
After changing the configuration according to you it is working fine.but i am having a new issue.
I have configured two events on my flow one is at the begining of the trasaction(MQinput.OutTerminal) with some messagepayload and the other is at the end of the transaction(MQOut.InTerminal) with out anypayload and we are expecting the event messages in same order.
The event messages published are in the same sequential order. The messages without any payload is getting published fisrt.
is there any specific configuration that i need to do we get the events in the right order.
Thanks in advance.
Kishore. |
|
Back to top |
|
 |
kishoreraju |
Posted: Mon Jun 22, 2009 6:20 am Post subject: |
|
|
Disciple
Joined: 30 Sep 2004 Posts: 156
|
Hi
I forgot to add one thing in my previous post. In My flow event sequence is set to creation time. |
|
Back to top |
|
 |
kimbert |
Posted: Mon Jun 22, 2009 8:07 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
The publishing of events is done on several threads, for performance reasons. The only way to guarantee that events come out in the expected order is to set an environment variable which limits the max number of publishing threads to 1.
However, most receivers of monitoring events will be able to re-sequence out-of-order events. That's why the sequencing field is in there. If you're using WebSphere Business Monitor, you should be able to tell it to use the @creationTime attribute for sequencing ( not the one in the cbe envelope, the one nested inside the xs:any slot of the cbe ) |
|
Back to top |
|
 |
kishoreraju |
Posted: Tue Jun 23, 2009 10:04 am Post subject: |
|
|
Disciple
Joined: 30 Sep 2004 Posts: 156
|
Hi Kimbert,
I tried to find the environment variables setting for making no of publishing threads to 1.but i end up with nothing. please provide me if you any info related to this. |
|
Back to top |
|
 |
kimbert |
Posted: Tue Jun 23, 2009 12:42 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
I can do that, but I would like to know why you need to do this. What is receiving the monitoring events, and why can it not re-sequence them? |
|
Back to top |
|
 |
kishoreraju |
Posted: Wed Jun 24, 2009 5:20 am Post subject: |
|
|
Disciple
Joined: 30 Sep 2004 Posts: 156
|
Thanks for your rersponse,
At this stage we are not using any event monitoring tools. we have an home grown application for auditing/logging purpose which expects all events in sequential order and we are planning to use the same for handling broker events with minimum or no changes to the existing application. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Jun 24, 2009 5:26 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
kishoreraju wrote: |
Thanks for your rersponse,
At this stage we are not using any event monitoring tools. we have an home grown application for auditing/logging purpose which expects all events in sequential order and we are planning to use the same for handling broker events with minimum or no changes to the existing application. |
The minimum change seems to be "fix it so that it doesn't expect the events in sequential order". That's a pretty optimistic expectation. |
|
Back to top |
|
 |
kishoreraju |
Posted: Wed Jun 24, 2009 5:36 am Post subject: |
|
|
Disciple
Joined: 30 Sep 2004 Posts: 156
|
We are planning to add an interface with will transform the WMBevent message to the application specific format. We want to manage the event sequencing with in the broker itself. |
|
Back to top |
|
 |
kimbert |
Posted: Wed Jun 24, 2009 7:44 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Thanks for the information. It's helpful to know how these facilities are being used.
You need to set environment variable MQSI_EVENT_COLLECTOR_THREADS to 1. Remember that this variable needs to be set in the broker's environment, not just in the message broker runtime's command window. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Jun 24, 2009 2:56 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
kishoreraju wrote: |
Thanks for your rersponse,
At this stage we are not using any event monitoring tools. we have an home grown application for auditing/logging purpose which expects all events in sequential order and we are planning to use the same for handling broker events with minimum or no changes to the existing application. |
Then why not store the events into a database and recall them in the right order for processing. I would not feel too confident about the runtime effect of forcing the event sequencing to be done on the broker. There was a reason they designed it that way and the reason may only have been performance...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
murdeep |
Posted: Thu Feb 10, 2011 3:46 pm Post subject: |
|
|
Master
Joined: 03 Nov 2004 Posts: 211
|
kimbert wrote: |
The publishing of events is done on several threads, for performance reasons. The only way to guarantee that events come out in the expected order is to set an environment variable which limits the max number of publishing threads to 1.
However, most receivers of monitoring events will be able to re-sequence out-of-order events. That's why the sequencing field is in there. If you're using WebSphere Business Monitor, you should be able to tell it to use the @creationTime attribute for sequencing ( not the one in the cbe envelope, the one nested inside the xs:any slot of the cbe ) |
Unfortunately creationTime is not granular enough in WMB V6 to enable sequencing. Loading the event data into a table and then selecting with an order by on the creationTime will not ensure events are in the correct chronological order since events can and do have the exact same creationTime.
I think IBM has recognized this and added a sequence number field to the event data in V7. They also increased the fraction of second reported from 3 decimal places (milliseconds) to 6 (microseconds).
In V6 setting MQSI_EVENT_COLLECTOR_THREADS=1 is the only way I have been able to ensure events are sequenced in chronological order. If someone has figured some other way I'd be interested in hearing about it.
As well, haven't seen any adverse effects of running MQSI_EVENT_COLLECTOR_THREADS=1......yet. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Feb 10, 2011 4:02 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Thanks murdeep - you are correct on all counts. Very useful for the WMB community so thanks for posting your findings.
Quote: |
haven't seen any adverse effects of running MQSI_EVENT_COLLECTOR_THREADS=1......yet. |
It depends entirely on how many events are generated by the execution group per second, and whether that rate is faster than the rate at which one thread can publish them.
Sounds as if you have a sane policy on monitoring - a policy which recognizes that every event is an extra output message which carries a CPU and I/O cost of its own. |
|
Back to top |
|
 |
|