Author |
Message
|
naio |
Posted: Wed Jan 23, 2013 8:57 am Post subject: Calculate Node Processing Time with WMB Events |
|
|
Voyager
Joined: 08 Nov 2012 Posts: 82
|
Hi to All,
In the company we already have a Self Monitoring Tool, with an easy interface to monitor SOA services, it is a general Toll for any ESB that is able to enqueue a message.
We have a Principal WMB 7.0 FLOW that dispatch invocations and we want to monitor it, and specilly some nodes.
One of the things that we want is to get the time that particular nodes takes, and we need to include tome Payload info on the message (we want node processing time for some specific servicces).
Thats why WMB monitoring seems ok to me, but the problem that I am facing it the followin:
I have an event message al the start and end of a NODE, and I need to correlate those messages in order to get the Complete Time of the Node. I see no way of doing this, since there is no common identifier that belongs to the same node. And I will have more than one node with this scenario in the same Flow.
Mi idea was to have a FLOW that read from an Event QUEUE, where all Event Messages are Store, and that make Time Calculation and other asserts on the Event Messages, the Flow could follow the idea of:
MQInputp - Compute - MQGet - Compute - MQOutput
In order to read the InPut Node Message Event from the queue with the MQInput and then read the OutPut Node Message Event from the queue with the MQGet node.
Any pice of advice?
Thanks In Advace! _________________ "God is in his heaven all's right with the world" |
|
Back to top |
|
 |
Vitor |
Posted: Wed Jan 23, 2013 9:24 am Post subject: Re: Calculate Node Processing Time with WMB Events |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
naio wrote: |
I see no way of doing this, since there is no common identifier that belongs to the same node. |
Aside from the Event Name, which defaults to <Node Name>.<Terminal Name>
naio wrote: |
Mi idea was to have a FLOW that read from an Event QUEUE, where all Event Messages are Store, and that make Time Calculation and other asserts on the Event Messages, the Flow could follow the idea of:
MQInputp - Compute - MQGet - Compute - MQOutput |
Or read all the messages with the MQInput node (always a good idea), assemble all the events for a given transaction by correlation id then, having got all the events for the transaction work out your times by Event Name.
naio wrote: |
In order to read the InPut Node Message Event from the queue with the MQInput and then read the OutPut Node Message Event from the queue with the MQGet node. |
What? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
kimbert |
Posted: Wed Jan 23, 2013 9:27 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
I need to correlate those messages in order to get the Complete Time of the Node. I see no way of doing this, since there is no common identifier that belongs to the same node. And I will have more than one node with this scenario in the same Flow. |
The monitoring event contains the 'event source name' which is a fully-qualified name that includes the flow name and node name. So you should be OK - as long as you don't give two nodes in the same message flow the same name. |
|
Back to top |
|
 |
naio |
Posted: Wed Jan 23, 2013 9:53 am Post subject: |
|
|
Voyager
Joined: 08 Nov 2012 Posts: 82
|
in the Event Queue I have
<Node Name>.<Terminal Name> from all the Nodes and all the test, I will have <Node Name>.<Terminal Name> for all the test, and I want the time of a NODE not average, but for every test asolated.
Thats why <Node Name>.<Terminal Name> is not enoguth.
I am trying to find a way to generate a single identifier for every node everytime the node is use.
So I will discriminate the time of the node, in the run numer 1, from the time in the run number 87.
naio wrote:
In order to read the InPut Node Message Event from the queue with the MQInput and then read the OutPut Node Message Event from the queue with the MQGet node.
What?
I mean correlate the Event message that was sent at the start of the node, with the Event message sent at the end of the node.
Thanks! _________________ "God is in his heaven all's right with the world" |
|
Back to top |
|
 |
Vitor |
Posted: Wed Jan 23, 2013 10:13 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
naio wrote: |
Thats why <Node Name>.<Terminal Name> is not enoguth.
I am trying to find a way to generate a single identifier for every node everytime the node is use.
So I will discriminate the time of the node, in the run numer 1, from the time in the run number 87. |
Yes, got that, I suggested the transaction by correlation id which WMB will generate for you by default.
naio wrote: |
I mean correlate the Event message that was sent at the start of the node, with the Event message sent at the end of the node. |
Ok. I find the Collector node easier. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
naio |
Posted: Wed Jan 23, 2013 10:30 am Post subject: |
|
|
Voyager
Joined: 08 Nov 2012 Posts: 82
|
Vitor,
OK, I will give a look at the Collector Node, I know it exist but never tried it.
Concerning:
"Yes, got that, I suggested the transaction by correlation id which WMB will generate for you by default. "
I have created several WMB Event Messages, all have different MsgId but the same and Default CorrelId. It would be interesting to enqueue all the Envent Messages from the same transaction with the same CorrelId so I will be able to read them as a BLOCK.
But I am not being able to set CorrelId or other identifier in the Events Messages.
Thanks You in Advance! _________________ "God is in his heaven all's right with the world" |
|
Back to top |
|
 |
Vitor |
Posted: Wed Jan 23, 2013 11:56 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
naio wrote: |
I have created several WMB Event Messages, all have different MsgId but the same and Default CorrelId. It would be interesting to enqueue all the Envent Messages from the same transaction with the same CorrelId so I will be able to read them as a BLOCK.
But I am not being able to set CorrelId or other identifier in the Events Messages. |
Wrong correlation id. You're correct in saying the WMQ properties have individual message ids and blank correlation ids. If you look in the payload of the event message, you'll see that the eventSource tag has a child called eventCorrelation which contains the 3 possible correlation values you can set in the node monitoring properties, and all 3 default to automatically generated. You'll find one or more of these (depending on your flow construction) will be what you need.
And to pre-empt your next question, the Collector node can interogate the payload of a message and hence can group these messages directly from these values. There's no requirement to copy anything into the WMQ CorrelId in this context. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
kash3338 |
Posted: Thu Jan 24, 2013 1:25 am Post subject: Re: Calculate Node Processing Time with WMB Events |
|
|
Shaman
Joined: 08 Feb 2009 Posts: 709 Location: Chennai, India
|
naio wrote: |
I have an event message al the start and end of a NODE, and I need to correlate those messages in order to get the Complete Time of the Node. I see no way of doing this, since there is no common identifier that belongs to the same node. And I will have more than one node with this scenario in the same Flow. |
Cant you do this by having some UniqueID from your actual payload captured in your event message along with the Event name (<Node Name>.<Terminal Name>)? |
|
Back to top |
|
 |
naio |
Posted: Thu Jan 24, 2013 5:38 am Post subject: |
|
|
Voyager
Joined: 08 Nov 2012 Posts: 82
|
Ok, I have the unique identifier in the Payload of the Event Message, an many messages in the same Queue that correspond to different Nodes, and diferente instances of the nodes.
I have to collect the PAIRs INITNODE and ENDNODE message events from the Queue.
I will give it a try with the Collector Node.
Thanks To All! _________________ "God is in his heaven all's right with the world" |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 24, 2013 5:46 am Post subject: Re: Calculate Node Processing Time with WMB Events |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
kash3338 wrote: |
naio wrote: |
I have an event message al the start and end of a NODE, and I need to correlate those messages in order to get the Complete Time of the Node. I see no way of doing this, since there is no common identifier that belongs to the same node. And I will have more than one node with this scenario in the same Flow. |
Cant you do this by having some UniqueID from your actual payload captured in your event message along with the Event name (<Node Name>.<Terminal Name>)? |
Why bother, when the event already contains a unique generated value? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
naio |
Posted: Thu Jan 24, 2013 6:04 am Post subject: |
|
|
Voyager
Joined: 08 Nov 2012 Posts: 82
|
True what VITOR explains.
Yo can inherit the Message ID or even any other ID that is in the Root Message and place it in the Event Id. _________________ "God is in his heaven all's right with the world" |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jan 24, 2013 6:17 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
naio wrote: |
Yo can inherit the Message ID or even any other ID that is in the Root Message and place it in the Event Id. |
Or better still use the generated ids already in the event message. Which is what I actually attempted to explain. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
naio |
Posted: Thu Feb 07, 2013 9:59 am Post subject: |
|
|
Voyager
Joined: 08 Nov 2012 Posts: 82
|
Vitor,
I have faced againt this Topic, and I was trying to figure the Collector Node Out, but I had no luck so far.
Can you give me some piece of advice concerning this?
I have in a Queue several event messages, and I need the PAIRs NODE1_IN and NODE1_OUT messages with the same identifies (witch is in the payload) to create finale messages with the time of the node.
Thanks In Advance! _________________ "God is in his heaven all's right with the world" |
|
Back to top |
|
 |
Vitor |
Posted: Thu Feb 07, 2013 12:31 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
naio wrote: |
Can you give me some piece of advice concerning this? |
Follow the instructions & examples in the InfoCenter? It's one of the more complex constructs in WMB but it's not that bad.
naio wrote: |
I have in a Queue several event messages, and I need the PAIRs NODE1_IN and NODE1_OUT messages with the same identifies (witch is in the payload) to create finale messages with the time of the node. |
As you explained previously. So you want the collector node to assemble all of the associated messages, which is fine. As you're using an identifier in the payload (rather than the id I suggested) you'll need to identify that to the collector so it can use it. You'd also better hope that identifier is unique enough long enough or you'll hit problems. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|