====== BTrace ====== * [[http://kenai.com/projects/btrace|BTrace - old]] * https://github.com/btraceio/btrace * Java 실행시간 코드 분석 툴 ===== Tomcat에서 실행시 어디서 getSession을 호출하는지 찍어보는 예 ===== import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils.*; import static com.sun.btrace.BTraceUtils.Sys.*; @BTrace public class SessionCheck { @OnMethod( clazz="org.apache.catalina.connector.Request", method="getSession" ) public static void showSessionRequest() { println("######################################################"); jstack(); println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); } } JVM의 PID를 확인한 뒤에 btrace [JVMPID] SessionCheck.java ==== 참조 ==== * [[http://blog.benelog.net/viewer/2855201|Btrace로 DBCP의 connection정보를 모니터링 하기]] * [[http://eggboy.egloos.com/viewer/1866372|eggboy in concurrent world : BTrace - 1. 소개]] ==== Redhat(Centos) 에서 이상 현상 ==== Readhat(Centos) 6.4에서 다음과 같은 오류를 내며 btrace가 실행이 안됐다. Invalid path specified: 2/No such file or directory ''/usr/bin/btrace''가 존재하기 때문이며 실제로는 ''blktrace''라는 다른 프로그램을 실행시킨다. 따라서 ''$BTRACE_HOME/bin/btrace'' 명령을 명시적으로 실행할 것.