ここでは、Oracle9iAS 1.0.2.xまたはApache JServインスタンスに対してリモート・デバッグを実行するようにリモートのデバッグ対象プロセスを設定する方法について説明します。これらのステップを完了すると、JSP、サーブレットおよびEJBをリモート・デバッグできます。
Oracle9iASまたはApache JServをリモート・デバッグ用に設定するには、次のようにします。
jserv.conf
ファイルを開きます。$ORACLE_HOME/Apache/Jserv/etc/
ApJServAction .jsp /servlets/oracle.jsp.runtimev2.JspServlet
jserv.properties
ファイルを開きます。$ORACLE_HOME/Apache/Jserv/etc/
wrapper.bin=<JDEV_HOME>\jdk\bin\java
$JDK_HOME/bin/java
OJVMは、Windowsプラットフォームでのみ使用できます。wrapper.bin.parameters
を使用して、JVMにデバッグのために渡されるパラメータを設定します。
wrapper.bin.parameters=-ojvm
wrapper.bin.parameters=-XXdebug,detached,port5000,quiet
たとえば、次のように指定します。
XXdebug,detached,quiet,port4000
-XXdebug
のパラメータ・オプションは次のとおりです。
デバッグに使用できるように設定します。
Javaプログラムを即座に起動し、デバッガをいつでも接続できるようにします。このオプションを使用しない場合、Javaプログラムは、デバッガが接続されるまで停止します。
デバッガは、指定したポートに接続する必要があります。このオプションを指定しない場合、デフォルト・ポートは4000です。
接続メッセージを出力しません。このオプションを指定しない場合、接続メッセージは標準エラーに送信されます。
(Windows NT、J2SE 1.3以上、またはSolaris上のJDK 1.22またはJDK 1.2.2_007 Referenceで使用する場合のみ。)次のようにwrapper.bin.parameters
を使用して、JVMにデバッグのために渡されるパラメータを設定します。
wrapper.bin.parameters=-classic
wrapper.bin.parameters=-Xdebug
wrapper.bin.parameters=-Xnoagent
wrapper.bin.parameters=-Djava.compiler=NONE
wrapper.bin.parameters=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000
-Xdebug
のパラメータ・オプションは次のとおりです。
デバッグを有効にします。
デフォルトのsun.tools.debugデバッグ・エージェントを無効にします。
Just In Time(JIT)コンパイラを無効にします。
JDWPのJPDAリファレンス実装をロードします。このライブラリはターゲットの仮想マシンに常駐し、JVMDIとJNIを使用して仮想マシンと対話します。個別のデバッガ・アプリケーションと通信する際は、トランスポートとJDWPプロトコルを使用します。
このサブオプションでは、デバッガと通信する際のトランスポート・メカニズムとしてソケットを指定します。
このサブオプションでは、デバッグ対象プロセスがアタッチ先のデバッガをリスニングするように指定します。
このサブオプションでは、ターゲットVMを一時停止せずに、デバッガをいつでもアタッチできるように指定します。
このサブオプションでは、デバッガと通信する際に使用するソケット・ポート番号を指定します。デフォルト以外のポート番号を指定できますが、後でデバッガに入力するポートと同じにする必要があります。
ClassicでのJPDAデバッグにJDK 1.2.2を使用している場合、wrapper.path
に次のようにパスを含める必要があります。
wrapper.path=<ORACLE_HOME>/jpda-1.0/bin/
これは、OJVMでのデバッグまたはJ2SE 1.3以上では必要ありません。SolarisでJDK 1.2.2を使用している場合、1.2.2_007 Referenceバージョンを使用する必要があります。正式版では、リモート・デバッグは実行されません。
wrapper.bin.parameters
を使用して、JVMにデバッグのために渡されるパラメータを設定します。
wrapper.bin.parameters=-hotspot
wrapper.bin.parameters=-Xdebug
wrapper.bin.parameters=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000
wrapper.bin.parameters=-server
wrapper.bin.parameters=-Xdebug
wrapper.bin.parameters=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000
デバッグを有効にします。
JDWPのJPDAリファレンス実装をロードします。このライブラリはターゲットの仮想マシンに常駐し、JVMDIとJNIを使用して仮想マシンと対話します。個別のデバッガ・アプリケーションと通信する際は、トランスポートとJDWPプロトコルを使用します。
このサブオプションでは、デバッガと通信する際のトランスポート・メカニズムとしてソケットを指定します。
このサブオプションでは、デバッグ対象プロセスがアタッチ先のデバッガをリスニングするように指定します。
このサブオプションでは、ターゲットVMを一時停止せずに、デバッガをいつでもアタッチできるように指定します。
このサブオプションでは、デバッガと通信する際に使用するソケット・ポート番号を指定します。デフォルト以外のポート番号を指定できますが、後でデバッガに入力するポートと同じにする必要があります。
jserv.properties
ファイルで、次の行を追加するか、これらの行が存在することを確認します。
wrapper.classpath=d:\apache\JServ\ApacheJServ.jar
wrapper.classpath=<JDEV_HOME>\lib\servlet.jar
# Needed for JSP
wrapper.classpath=<JDEV_HOME>\j2ee\home\lib\ojsp.jar
wrapper.classpath=<ORACLE_HOME>\lib\ojc.jar
wrapper.classpath=<JDEV_HOME>\lib\xmlparserv2.jar
# optional, for JML tags, SQL tags, and database-access JavaBeans
wrapper.classpath=<JDEV_HOME>\j2ee\home\lib\ojsputil.jar
# Needed if JDBC connection being used in JSP or Servlet
wrapper.classpath=<JDEV_HOME>\jdbc\lib817\classes12.zip
# Needed if SQLJ being used JSP or Servlet
wrapper.classpath=<JDEV_HOME>\sqlj\lib\translator.jar
wrapper.classpath=<JDEV_HOME>\sqlj\lib817\runtime.zip
www.javasoft.com/products/servlet/download.html#specs
を参照してください。
# Needed for servlets.
# Note: jsdk.jar must preceed servlet.jar
# jsdk provides servlet 2.0 APIs required by Apache/JServ
# servlet. jar provides servlet 2.2 APIs
wrapper.classpath=<jsdk_home>\jsdk2.0\lib\jsdk.jar
zone.properties
を編集します。このファイルは次の場所にあります。
<Oracle_home>/Apache/Jserv/servlets/
repositories=<Apache_Home>\JServ\servlets
repositories=<Apache_Home> \JServ\servlets\shopcart.jar
<APACHE_Home>\JServ\servlets
Servlet Init
パラメータ・セクションを検索し(ファイルの下部にあります)、次の行を追加します。
servlet.oracle.jsp.JspServlet.initArgs=debug_mode=true
servlet.oracle.jsp.JspServlet.initArgs=developer_mode=true
servlet.oracle.jsp.JspServlet.initArgs=encode_to_java=true
servlet.oracle.jsp.JspServlet.initArgs=emit_debuginfo=true
servlet.oracle.jsp.JspServlet.initArgs=jspjavacompiler=oracle.jdevimpl.jsp.JspOjcCompiler
次に、ウィザードを使用してリモート・デバッグ・プロジェクトを作成できます。
Javaプログラムのリモート・デバッグについて
Javaプログラムのリモート・デバッグ
Copyright © 1997, 2004, Oracle. All rights reserved.