Monday 10 April 2006

JavaCore

ระหว่างที่ Java process ทำงาน บางที JVM อาจทำงานผิดปกติ และบ่อยครั้งอาจ hang จน JVM shutdown ซึ่งยากที่จะหาสาเหตุของปัญหา
โดยการใช้ JavaCore (JavaCore เป็นเครื่องช่วย debug java application โดยมันจะเขียนข้อมูล เช่น stack trace, class loader information ลง xml file ซึ่งทำให้ application อื่นสามารถนำไปวิเคราะห์ต่อได้ : http://javacore.sourceforge.net)
เมื่อ Java process เกิด hang ทำให้เราสามารถเก็บข้อมูลของ JVM และ Java app ที่เกิดปัญหาได้ เช่น
operating system, the application environment, threads, native stack, locks,memory เป็นต้น

JavaCore จะแก้ไข JVM ซึ่งโดยปกติ JavaCore จะทำงานเมื่อ JVM หยุดทำงานผิดปกติ
นอกจากนี้สามารถส่งสัญญาณไปที่ JVM เพื่อให้ JavaCore ทำงานได้ แต่น่าเสียดายที่ JavaCore อยู่ใน Sun Solaris JVM กับ IBM JVM เท่านั้น

IBM Thread and Monitor Dump Analyzer for Java Technology เป็นเครื่องมือที่วิเคราะห์ข้อมูลที่ได้จาก JavaCore และ แสดงข้อมูลเพื่อวินิจฉัยหาสาเหตุของปัญหา เช่น current thread information, the signal that caused the javacore, Java heap information (maximum Java heap size, initial Java heap size, garbage collector counter, allocation failure counter, free Java heap size, และ allocated Java heap size), number of runnable threads, total number of threads, number of monitors locked, และ deadlock information เรียกว่าต้องใช้ความรู้ Java ระดับ Low level จริงๆ ถึงจะใช้เครื่องมือนี้ได้

ที่มา http://www.alphaworks.ibm.com/tech/jca?open&S_TACT=105AGX59&S_CMP=GR&ca=dgr-jw26awjca