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