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 » toolkit debug is very slow

Post new topic  Reply to topic Goto page 1, 2  Next
 toolkit debug is very slow « View previous topic :: View next topic » 
Author Message
lium
PostPosted: Mon Oct 07, 2013 9:42 am    Post subject: toolkit debug is very slow Reply with quote

Disciple

Joined: 17 Jul 2002
Posts: 184

Hi, I tried to debug the message flow through toolkit.

I found it have been very slow. Some time it hangs

However, even last week, it was good.
Even though I roll backed to previous message flow, it was still very slow from this debug point to next debug point.

I am using toolkit 7.0.0.3.
Any tips would be greatly appreciated.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Oct 07, 2013 9:46 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

You should be on 7.0.0.6 and using Trace nodes rather than interactive debug.

What OS is your runtime on ?
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
smdavies99
PostPosted: Mon Oct 07, 2013 9:55 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

lancelotlinc wrote:
using Trace nodes rather than interactive debug.


So all that money spent on those training couses you so often thrust at people is (in a good part) a waste of time then? After all they teach you how to use the interactive debugger don't they? Do they spend equal amounts of time on the trace nodes/usertrace as they do on the debugger? I think not.

Out of a quick sample of 8 Broker developers, only two of us don't use the Debugger. Our excuse is that we started using broker before there was a usable debugger.
_________________
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
lancelotlinc
PostPosted: Mon Oct 07, 2013 10:03 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

smdavies99 wrote:
lancelotlinc wrote:
using Trace nodes rather than interactive debug.


So all that money spent on those training couses you so often thrust at people is (in a good part) a waste of time then? After all they teach you how to use the interactive debugger don't they? Do they spend equal amounts of time on the trace nodes/usertrace as they do on the debugger? I think not.

Out of a quick sample of 8 Broker developers, only two of us don't use the Debugger. Our excuse is that we started using broker before there was a usable debugger.


Interactive debugger is less useful when it upsets the timing of the message flow. Also, depending on the OS of the runtime, its possible he's incurring aforementioned deadlock issue.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
lium
PostPosted: Mon Oct 07, 2013 10:13 am    Post subject: Reply with quote

Disciple

Joined: 17 Jul 2002
Posts: 184

It is windows XP.
The issue is:
even last week, it was working perfectly.
Back to top
View user's profile Send private message
smdavies99
PostPosted: Mon Oct 07, 2013 10:14 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

lancelotlinc wrote:

Interactive debugger is less useful when it upsets the timing of the message flow. Also, depending on the OS of the runtime, its possible he's incurring aforementioned deadlock issue.


Isn't that a better explanation than the first one? Just saying Don't.... without reasons is rather abrupt.
_________________
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
lancelotlinc
PostPosted: Mon Oct 07, 2013 10:14 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

lium wrote:
It is windows XP.
The issue is:
even last week, it was working perfectly.


Nonetheless, you should be using Trace nodes and depending on them rather than the interactive debugger.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Esa
PostPosted: Tue Oct 08, 2013 1:11 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

The server side counterpart of the debugger sends to your toolkit all the content you can see in the Variables window -- each time you step or the execution pauses at a breakpoint. This is why the debugging is slower when you are debugging a large message. And hangs when you are debugging a huge message.

Perhaps your this weeks message was a large one?
Back to top
View user's profile Send private message
McueMart
PostPosted: Tue Oct 08, 2013 1:52 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

Quote:
Nonetheless, you should be using Trace nodes and depending on them rather than the interactive debugger.


Please explain how I figure out if complex code is following the correct path using Trace nodes. (and dont tell me that complex code shouldn't be written in broker ha ha...)

I dont understand your dislike of the debugger but as someone who uses it religiously on a daily basis I would say its an indispensable asset in a developers toolkit, and if you aren't using it you are costing yourself productivity. Careful on preaching this approach to others though.
Back to top
View user's profile Send private message
smdavies99
PostPosted: Tue Oct 08, 2013 2:25 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

McueMart wrote:

I don't understand your dislike of the debugger but as someone who uses it religiously on a daily basis I would say its an indispensable asset in a developers toolkit, and if you aren't using it you are costing yourself productivity. Careful on preaching this approach to others though.




I've seen people use the debugger very efficiently. for me, it is a PITA. My style is NOT to use it but usertrace/trace nodes. I'm usually more efficient than many of my colleagues at producing completed work but that it more down to getting a lot of it right first time.
_________________
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
fatherjack
PostPosted: Tue Oct 08, 2013 2:31 am    Post subject: Reply with quote

Knight

Joined: 14 Apr 2010
Posts: 522
Location: Craggy Island

McueMart wrote:
Please explain how I figure out if complex code is following the correct path


You get the expected output?
_________________
Never let the facts get in the way of a good theory.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Tue Oct 08, 2013 3:22 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

McueMart wrote:
Quote:
Nonetheless, you should be using Trace nodes and depending on them rather than the interactive debugger.


Please explain how I figure out if complex code is following the correct path using Trace nodes. (and dont tell me that complex code shouldn't be written in broker ha ha...)

I dont understand your dislike of the debugger but as someone who uses it religiously on a daily basis I would say its an indispensable asset in a developers toolkit, and if you aren't using it you are costing yourself productivity. Careful on preaching this approach to others though.


You put a Trace node before and after every major node in your flow. You point each trace node to a unique file. From file explorer, you sort by date. Fairly simple routine.

Interactive debugger is not useful for real-time message flows, such as those processing user requests for which a human is waiting on a response. The interactive debugger forces timeouts in this instance. Environments which this is true are banks, insurance companies and stock exchanges. Timing is important in those environments.

How many times have you stepped past the break point without getting the information you needed from the interactive debugger ? Using Trace nodes this never occurs because all data you ever want is written to disk.

How many times has an end user called you up and said a transaction she ran two days ago in the QA environment failed and she wants to know why ? Would you have the data to replicate that transaction in DEV environment with the interactive debugger ? No, because the debugger was not active in the QA environment when the end user ran her transaction. With Trace nodes, you simple search for the transaction time or some unique Id, look at the data and replicate the issue in DEV. Simple.

So from a productivity stand-point, the interactive debugger is wasteful of time since you have to repeat multiple times the offending point, and even then still not get a full understanding of ALL values contained within the Logical Message Tree.

To each his own. I never said you must use Trace nodes. I just said that Trace nodes are an answer to the OPs issue. You should depend on Trace nodes rather than the interactive debugger since you get better and more complete information from Trace nodes and you do not disrupt the timing of the flow execution.

Those people who do not make good use of Environment variables, do not organize their code properly, or do not treat InputRoot as immutable will have equally difficult time developing message flows irrespective of which method they use to debug.

Some people are not cut-out to be developers. Those people should go back to being Admins.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER


Last edited by lancelotlinc on Tue Oct 08, 2013 4:02 am; edited 1 time in total
Back to top
View user's profile Send private message Send e-mail
McueMart
PostPosted: Tue Oct 08, 2013 3:47 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

Quote:
You put a Trace node before and after every major node in your flow


This doesn't help with determining if particular code paths are being followed within individual compute nodes.

Sometimes a single node will have 100's (or indeed 1000's...) of lines of code. Sticking a trace node on either side of the node is going to do very little to help me debug a complex issue within this code.

The debugger still has a long way to go with capabilities like:
- Showing the types of logical tree elements
- Showing a logical tree when debugging JCNs
- Fix a multitude of bugs and performance issues.

...but advocating not using it is a step backwards imho.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Tue Oct 08, 2013 4:04 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

McueMart wrote:
Quote:
You put a Trace node before and after every major node in your flow


This doesn't help with determining if particular code paths are being followed within individual compute nodes.


It does if you make proper use of Environment variables as previously mentioned. Each time your logic makes a decision, you need to record that decision in the Environment.

One look at the Environment should tell you all the information you need to know about how your logic handled that transaction. Not making a record of how your logic behaves is a rookie mistake.

Quote:
Those people who do not make good use of Environment variables, do not organize their code properly, or do not treat InputRoot as immutable will have equally difficult time developing message flows irrespective of which method they use to debug.

Some people are not cut-out to be developers. Those people should go back to being Admins.

_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
smdavies99
PostPosted: Tue Oct 08, 2013 4:19 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

[quote="McueMart"]
Quote:

This doesn't help with determining if particular code paths are being followed within individual compute nodes.


Then I was an apprentice (a very long time ago) one of the problems we were given to solve was the Black Box.
By measuring the inputs and output and its response to different inputs you could determine what components were inside.

A compute node is very much like a Black Box. Using trace nodes alone and help you understand what is going on inside. The are a couple of ways to see the paths taken by the code inside the Node.

1) Use a User Trace.
2) Add instrumentation calls/events/code at key points in the code that will allow you to determine the path the message took through the code.

The last option is IMHO a lost/dying art. The common use of interactive debuggers is IMHO to blame for that. Back in the day of proper real time programming there were no such things as interactive debuggers. One system I developed used the CPU Front panel to show progress of an event through some pretty hairy code that was to work inside an Contact Admin.

Yes, back in the day Computers had lots of light on their front panels.
You could make nice patterns from some of them!
_________________
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
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » toolkit debug is very slow
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.