10.7. JRockit

JRockit は、 「Sun JDK を使用した JBoss Enterprise Application Platform におけるロード時の変換」 に記載されている -javaagent スイッチもサポートします。 このスイッチを使用する場合、 「Sun JDK を使用した JBoss Enterprise Application Platform におけるロード時の変換」 の手順に従ってください。 JRockit はクラスがロードされる際のインターセプトに対する独自のフレームワークも持っており、 -javaagent スイッチよりも高速である場合があります。 特別な JRockit フックを使用してロード時の変換を実行する場合は、 次の手順に従ってください。
  • enableLoadtimeWeaving 属性/プロパティを true に設定します。 JBoss アプリケーションサーバーはデフォルトでは AOP ファイルのロード時のバイトコード操作を実行しないため、 この設定を行う必要があります。 suppressTransformationErrors に設定されている場合、 バイトコード変換に失敗するとエラー警告のみが生成されます。 JBoss デプロイメントにクラスが参照する全てのクラスが存在しないことがあるため、 このフラグが必要となります。
  • jrockit-pluggable-instrumentor.jarを JBoss AOP ディストリビューションの lib/ ディレクトリから JBoss Enterprise Application Platform の bin/ ディレクトリへコピーします。
  • 次に run.sh または run.bat (OS によって異なります) を編集し、 下記を JAVA_OPTS 環境変数と JBOSS_CLASSPATH 環境変数に追加します。
    # Setup JBoss specific properties
    
    JAVA_OPTS="$JAVA_OPTS -Dprogram.name=$PROGNAME \
    
    -Xmanagement:class=org.jboss.aop.hook.JRockitPluggableClassPreProcessor"
    
    JBOSS_CLASSPATH="$JBOSS_CLASSPATH:jrockit-pluggable-instrumentor.jar"
    
  • JRockit の特別なフックに対応するため、 AspectManager サービスのクラスを JBoss Enterprise Application Platform 5 上で org.jboss.aop.deployers.AspectManagerJRockit に設定するか、 org.jboss.aop.deployment.AspectManagerService に設定します。