Author |
Message
|
rokual |
Posted: Wed Feb 25, 2009 7:51 am Post subject: WMB - DB2 Interactions |
|
|
Apprentice
Joined: 07 Feb 2006 Posts: 26
|
We are using WMB on z/Linux to transform a message from Cobol Copybook to XML between two systems. We have a time duration, 3 seconds for a message to arrive at the destination from when it is placed for transformation. There are 10-15 messages timing out (not reaching the destination application in 3 secs) a day out of 25000 messages being processed. We are trying to drill down where the delay might be happening.
My question is
1. Does every instance of message flow touch the database(DB2) to record its occurance or to query the node information that it has to process?
2. If so, is it a possibility that database (DB2) deadlock is happening for some transactions that are being timed out? |
|
Back to top |
|
 |
smdavies99 |
Posted: Wed Feb 25, 2009 8:09 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
The simple answer is 'It Depends'
Why?
If you have a compute or a database node that does a DB operation then Yes.
Otherwise, there is no reason for DB2 to be accessed in the processing of a message that would affected by a DB2 deadlock.
Are there other flows in this EG?
If so, are they processing messages at the time then the message time out?
What is the overall CPU Loading at these times?
There are a lot of questions you need to ask of your SysAdmins etc. _________________ 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 |
|
 |
rokual |
Posted: Wed Feb 25, 2009 8:18 am Post subject: |
|
|
Apprentice
Joined: 07 Feb 2006 Posts: 26
|
I have an MQInput Node, Mapping Node and MQOutput Node. Since we are not using Compute node does it mean we are not touching DB2 for every transaction? If so how does a new message knows what node to process next?
We are having one more message flow running on the same EG, which is an error handling flow. It gets invoked when a message fails to process the original message. This messge flow gets called for only 10 messages a day and that times are different to timeout times. CPU is 99% during this timeouts. We don't know if the WMB DB2 interaction is causing it to be very hot. |
|
Back to top |
|
 |
LazyBoy |
Posted: Wed Feb 25, 2009 8:47 am Post subject: |
|
|
Voyager
Joined: 04 May 2006 Posts: 78
|
Hi rokual,
Quote: |
Does every instance of message flow touch the database(DB2) to record its occurance or to query the node information that it has to process? |
AFAIK, There will be no database hits, if there are no explicit database queries in a message flow.
The Reason why your response time is higher can be of various reasons.
One Reason could be queue time, the time the message stays on queue before being picked up by the Message flow. Are the message sent to input queue of message flow under transaction?
How big are the messages?
[/quote] |
|
Back to top |
|
 |
rokual |
Posted: Wed Feb 25, 2009 10:12 am Post subject: |
|
|
Apprentice
Joined: 07 Feb 2006 Posts: 26
|
We did little bit research stopping DB2 on Dev box and making the messages flow. Its working. So, we are not using DB2 for all the messages that are flowing through the system. But we need it to perform any admin activity like stopping and starting message flows, config manager and Broker itself.
Now we have to see what else on this box is causing the delay on few messages that are flowing through. Only on this execution group we have two message flows running. Since each message flow is single threaded and two flows are running simultaneouly on one EG, does this cause the problem of some messages taking extra time to get processed? |
|
Back to top |
|
 |
ashoon |
Posted: Wed Feb 25, 2009 10:23 am Post subject: |
|
|
Master
Joined: 26 Oct 2004 Posts: 235
|
I have another question - how many instances of the flow do you have? and are these messages coming at a constant rate or does the amount of messages vary during the day? _________________ IBM Certified - SOA Solution Designer & WebSphere Datapower SOA Appliances |
|
Back to top |
|
 |
rokual |
Posted: Wed Feb 25, 2009 10:31 am Post subject: |
|
|
Apprentice
Joined: 07 Feb 2006 Posts: 26
|
There are two message flows running/started on same EG. We didnot define threads in particular which makes it single-threaded by WMB default.
Our messages vary. There is no constant time between messages. |
|
Back to top |
|
 |
ashoon |
Posted: Wed Feb 25, 2009 10:50 am Post subject: |
|
|
Master
Joined: 26 Oct 2004 Posts: 235
|
I'm going to guess your problem occurs when there's a burst of messages through the system and the flows are unable to process them in your required time frame.... try increasing the # of instances to ummm.... say 5... and see if that helps
rokual wrote: |
There are two message flows running/started on same EG. We didnot define threads in particular which makes it single-threaded by WMB default.
Our messages vary. There is no constant time between messages. |
_________________ IBM Certified - SOA Solution Designer & WebSphere Datapower SOA Appliances |
|
Back to top |
|
 |
rokual |
Posted: Wed Feb 25, 2009 11:03 am Post subject: |
|
|
Apprentice
Joined: 07 Feb 2006 Posts: 26
|
Quote: |
One Reason could be queue time, the time the message stays on queue before being picked up by the Message flow. Are the message sent to input queue of message flow under transaction?
|
How to find out the time a message spent on a queue before it got picked up? The message is being placed on a quue which is the I/P Q for the message flow under transaction. Our message is fixed 720 bytes for cobol copybook, which is not large. |
|
Back to top |
|
 |
ashoon |
Posted: Wed Feb 25, 2009 11:07 am Post subject: |
|
|
Master
Joined: 26 Oct 2004 Posts: 235
|
there's a header in the MQMD for put date/time... you can then calculate the current time compared to the put date/time and you can see how long it took before the message got to that compute node... _________________ IBM Certified - SOA Solution Designer & WebSphere Datapower SOA Appliances |
|
Back to top |
|
 |
rokual |
Posted: Wed Feb 25, 2009 11:09 am Post subject: |
|
|
Apprentice
Joined: 07 Feb 2006 Posts: 26
|
Quote: |
try increasing the # of instances to ummm.... say 5... and see if that helps |
You mean change the # of threads the message flow is running to 5?
Also the system idle time during the timeouts period is 0%. We are not able to determine what process is eating up the available CPU. The bunch of messages waiting to get processed might not cause this...right? Do you think increasing the thread size to 5 will fix thix this? |
|
Back to top |
|
 |
LazyBoy |
Posted: Wed Feb 25, 2009 12:58 pm Post subject: |
|
|
Voyager
Joined: 04 May 2006 Posts: 78
|
Hi rokual,
As pointed by Ashoon you could enable tracing and use MQMD Put time to calculate the queue time. You can use Tivoli Omegamon Monitoring data , if you are using it to monitor Broker.
To Get more statistics about performance you could use the supportpack( I am not sure whether you can get Queue time):
http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg24012457&loc=en_US&cs=utf-8&lang=en
Quote: |
The message is being placed on a quue which is the I/P Q for the message flow under transaction |
If the message is put in transaction, make sure the transaction is comitted after every few messages instead of comitting after large chunk of messages. |
|
Back to top |
|
 |
|