Table of Contents
ミドルウェアの内部動作をトレースするためによく使うので手順を残しておきます。
1 前提
- JBossAS 7系
2 インストール
$ wget http://downloads.jboss.org/byteman/2.2.1/byteman-download-2.2.1-bin.zip $ unzip byteman-download-2.2.1-bin.zip
3 JBossASプロセスへのアタッチ
$ export BYTEMAN_HOME=`pwd`/byteman-download-2.2.1 $ export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64 $ JBOSS_PID=`ps -ef | grep [j]boss-modules.jar | awk '{print $2}'` $ ${BYTEMAN_HOME}/bin/bminstall.sh -b ${JBOSS_PID}
4 トレース用スクリプトの作成
JBossASサーバソケット受信バッファーサイズを調べるスクリプト
trace_socket_receive_buffer_size.btm
を作成する
RULE trace http ReceiveBufferSize CLASS org.apache.tomcat.util.net.JIoEndpoint METHOD processSocket AT ENTRY BIND socket = $1 IF TRUE DO traceln("socket.getReceiveBufferSize() = " + socket.getReceiveBufferSize()), traceStack() ENDRULE
5 スクリプトの実行
$ ${BYTEMAN_HOME}/bin/bmsubmit.sh trace_socket_receive_buffer_size.btm