Author |
Message
|
goffinf |
Posted: Wed Jul 21, 2010 11:47 am Post subject: Java custom node profiling |
|
|
Chevalier
Joined: 05 Nov 2005 Posts: 401
|
We have a number of custom nodes written in Java. I would like to be able to profile these nodes under load using a profiler (e.g. JProfiler). Does anyone know whether this is possible and if so can point me in the right direction for attaching the profiler to an execution group that contains a flow which has such a node ?
Thanks
Fraser. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Jul 21, 2010 12:23 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
I don't really recommend doing this.
However, the Broker uses the IBM JVM, which means you can set the environment variable IBM_JAVA_OPTIONS (or just JAVA_OPTIONS on Windows) to include JVM settings that you need to pass into the java runtime.
This would presumably allow you to configure the profiler interface in the JVM portion of your EG and then do whatever you would normally do to connect to a JVM from your profiler.
But I don't recommend doing this.
Maybe you can get timings and profilings out of the output of a service trace. |
|
Back to top |
|
 |
mgk |
Posted: Wed Jul 21, 2010 12:36 pm Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
Quote: |
or just JAVA_OPTIONS on Windows |
I think you meant or just JAVA_OPTIONS on Solaris.
Kind Regards, _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Jul 21, 2010 1:25 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
mgk wrote: |
Quote: |
or just JAVA_OPTIONS on Windows |
I think you meant or just JAVA_OPTIONS on Solaris.
Kind Regards, |
I'm sure you're right.
Despite the page I found somewhere on ibm.com that showed %JAVA_OPTIONS%;... |
|
Back to top |
|
 |
goffinf |
Posted: Wed Jul 21, 2010 9:49 pm Post subject: |
|
|
Chevalier
Joined: 05 Nov 2005 Posts: 401
|
mqjeff wrote: |
I don't really recommend doing this. |
What is your concern here ?
mqjeff wrote: |
Maybe you can get timings and profilings out of the output of a service trace. |
Ok that's worth a try.
Thanks
Fraser. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Jul 22, 2010 2:43 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
goffinf wrote: |
mqjeff wrote: |
I don't really recommend doing this. |
What is your concern here ? |
That doing so will interfere with the normal workings of the broker...
That doing so will not provide you meaningful data, because at least some of the work that your "java custom node" is performing is actually being handled by the C++ runtime, and thus what appears to either be a very fast operation in Java or a very slow operation in Java is in fact neither...
But I accept that there are certain kinds of things that it will be very difficult to understand otherwise - like how a given java custom node interacts with itself across multiple threads simultaneously or how it's using jvm heap or etc. |
|
Back to top |
|
 |
goffinf |
Posted: Wed Aug 04, 2010 1:01 pm Post subject: |
|
|
Chevalier
Joined: 05 Nov 2005 Posts: 401
|
Thanks Jeff, I understand your concerns but I still want to proceed wi his if possible.
The problem I am currently facing is that JProfiler requires the following arguments to be passed to the JVM. I added them to the environment variable IBM_JAVA_OPTIONS :-
-Xshareclasses:none -agentpath:C:\Program Files\jprofiler6\bin\windows\jprofilerti.dll=port=8849
However when I do this things get a bit strange. The execution group starts (that is, a DataFlowEngine.exe process exists) but it is much smaller than it normally is ???
There aren't any error in the logs, but it is clearly not happy. Attempts to stop the execution group fail (until you kill the process), and thereafter any attempt to restart it fail with verification errors such as unable to determine the version of Java.
Interestingly, JProfiler can connect to it and shows a whole slew of Java core classes, but not my custom node ones.
Has anyone out there tried to use any Java profiler with Message Broker, I'm not forced to use JProfiler, I just chose it because it seemed to be pretty mainstream.
Thanks
Fraser |
|
Back to top |
|
 |
|