|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Triggering/Forcing javacore dumps? |
« View previous topic :: View next topic » |
Author |
Message
|
bsiggers |
Posted: Fri Jan 28, 2011 4:33 pm Post subject: Triggering/Forcing javacore dumps? |
|
|
Acolyte
Joined: 09 Dec 2010 Posts: 53 Location: Vancouver, BC
|
Hello Broker Experts - I'm currently running Broker 7.0.0.2 on Windows 2008.
I am currently having a problem in a message flow containing a Java Compute Node, and I am suspecting that the relatively complex code in the JCN is resulting in occasional deadlocks, which render the flow unresponsive. This happens only occasionally and is not easily reproducible.
In a normal java environment, I'd normally wait for the issue to occur again and force a javacore (via kill -3 or whatever), and start analyzing that, looking for blocking locks.
My question for you guys, is that if I pass in the right arguments to the JDK to enable core dumps to be theoretically generated when I provide the proper signal, will I be able to generate javacores like I would be able to against a standard JVM instance? Or is whatever is going on inside the DataFlowEngine process something "special"?
Just thought I would check to see if anyone can tell me I'm running into a dead-end, but if nobody knows I'm happy to give it a try myself and provide a how-to.
Have tried googling for broker-specific javacore and have not found much, except that under the right circumstances (out of memory, etc.) the DataFlowEngine *will* produce javacores that can be analyzed. But my question is if they can be force-produced on-demand.
Thanks! |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Jan 28, 2011 5:54 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Easier to try it than ask. At a pure speculation level.. kill -3 is going to force an abend.
Generally, however, the best bet to debug Broker issues is to run a User Trace or a Service Trace.
Of course, without a PMR there's only so much you can do to interpret a service trace, but it shouldn't be too hard to separate data about your code vs. broker code. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Mon Jan 31, 2011 6:31 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
DataFlowEngine runs just like any other process. The Java Compute Node runs just like any other Java program.
To figure this problem out, you might try instrumenting your Java code with JMX MBeans and looking at the operation of your Java code in real time. You might additionally add calls to log4j from your Java Compute Node to help you isolate the code that is being deadlocked.
I rather like to look at a live corpse rather than chase dead worms through a core dump. Only so much forensic value you can derive from excr dumps.
Another advantage that MBeans provides for you is the fact that you can provide input to your program on-the-fly and change its behaviour to see what the impact is on the suspected code.
Here are a couple links to help you get started:
http://download.oracle.com/javase/tutorial/jmx/mbeans/standard.html
http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html
Lance _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|