Oracle9iAS 1.0.2.x またはApache JServでのリモート・デバッグ

ここでは、Oracle9iAS 1.0.2.x またはApache JServインスタンスに対してリモート・デバッグを実行するようにリモートのデバッグ対象プロセスを設定する方法について説明します。これらのステップを完了すると、JSP、サーブレットおよびEJBをリモート・デバッグできます。

Oracle9iASまたはApache JServをリモート・デバッグ用に設定するには、次のようにします。

  1. Apache JServインストール・ディレクトリで、次の場所にあるjserv.confファイルを開きます。
    $ORACLE_HOME/Apache/Jserv/etc/
  2. JSPの場合、ApJServActionのセクションを検索し、次の行を追加します。
    ApJServAction .jsp /servlets/oracle.jsp.runtimev2.JspServlet
  3. Apache JServインストール・ディレクトリで、次の場所にあるjserv.propertiesファイルを開きます。
    $ORACLE_HOME/Apache/Jserv/etc/
  4. Java実行可能プログラムを次のように指定します。
    wrapper.bin=<JDEV_HOME>/jdk/bin/java
    SolarisまたはLinuxで、JVMを次のように設定します。
    $JDK_HOME/bin/java
  5. 該当するJVMセクションを参照して、リモート・デバッグの設定を続けます。
  6. Oracle9iASまたはApache JServのクラスパスを設定します。

Oracle Java Virtual Machine(OJVM)

OJVMは、Windowsプラットフォームでのみ使用できます。次のようにwrapper.bin.parametersを使用して、JVMにデバッグのために渡されるパラメータを設定します。

wrapper.bin.parameters=-ojvm
wrapper.bin.parameters=-XXdebug,detached,port5000,quiet

XXdebug,detached,quiet,port4000

-XXdebugのパラメータ・オプションは次のとおりです。

-XXdebug
デバッグに使用できるように設定します。
detached
Javaプログラムを即座に起動し、デバッガをいつでも接続できるようにします。このオプションを使用しない場合、Javaプログラムは、デバッガが接続されるまで停止します。
port<#>
デバッガは、指定したポートに接続する必要があります。このオプションを指定しない場合、デフォルト・ポートは4000です。
quiet
接続メッセージを出力しません。このオプションを指定しない場合、接続メッセージは標準エラーに送信されます。

JPDA(Sun Classic VM)

(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のパラメータ・オプションは次のとおりです。

- Xdebug
デバッグを有効にします。
Xnoagent
デフォルトのsun.tools.debugデバッグ・エージェントを無効にします。
Djava.compiler=NONE
Just In Time(JIT)コンパイラを無効にします。
Xrunjdwp
JDWPのJPDAリファレンス実装をロードします。

このライブラリはターゲットの仮想マシンに常駐し、JVMDIとJNIを使用して仮想マシンと対話します。個別のデバッガ・アプリケーションと通信する際は、トランスポートとJDWPプロトコルを使用します。
transport=dt_socket
このサブオプションでは、デバッガと通信する際のトランスポート・メカニズムとしてソケットを指定します。
server=y
このサブオプションでは、デバッグ対象プロセスがアタッチ先のデバッガをリスニングするように指定します。
suspend=n
このサブオプションでは、ターゲットVMを一時停止せずに、デバッガをいつでもアタッチできるように指定します。
address=4000
このサブオプションでは、デバッガと通信する際に使用するソケット・ポート番号を指定します。デフォルト以外のポート番号を指定できますが、後でデバッガに入力するポートと同じにする必要があります。

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バージョンを使用する必要があります。正式版では、リモート・デバッグは実行されません。

HotSpot VM

wrapper.bin.parametersを使用して、JVMにデバッグのために渡されるパラメータを設定します。

Windows NTの場合

wrapper.bin.parameters=-hotspot
wrapper.bin.parameters=-Xdebug
wrapper.bin.parameters=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000

SolarisまたはLinuxの場合

wrapper.bin.parameters=-server
wrapper.bin.parameters=-Xdebug
wrapper.bin.parameters=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4000

ここで

- Xdebug
デバッグを有効にします。
Xrunjdwp
JDWPのJPDAリファレンス実装をロードします。
このライブラリはターゲットの仮想マシンに常駐し、JVMDIとJNIを使用して仮想マシンと対話します。個別のデバッガ・アプリケーションと通信する際は、トランスポートとJDWPプロトコルを使用します。

transport=dt_socket
このサブオプションでは、デバッガと通信する際のトランスポート・メカニズムとしてソケットを指定します。
server=y
このサブオプションでは、デバッグ対象プロセスがアタッチ先のデバッガをリスニングするように指定します。
suspend=n
このサブオプションでは、ターゲットVMを一時停止せずに、デバッガをいつでもアタッチできるように指定します。
address=4000
このサブオプションでは、デバッガと通信する際に使用するソケット・ポート番号を指定します。デフォルト以外のポート番号を指定できますが、後でデバッガに入力するポートと同じにする必要があります。
 

Oracle9iAS 1.0.2.x またはApache JServのクラスパスの設定

  1. jserv.propertiesファイルで、次の行を追加するか、これらの行が存在することを確認します。
    wrapper.classpath=d:¥apache¥JServ¥ApacheJServ.jar
    wrapper.classpath=<ORACLE_HOME>¥lib¥servlet.jar
    # Needed for JSP
    wrapper.classpath=<JDEV_HOME>¥j2ee¥home¥lib¥ojsp.jar
    wrapper.classpath=<JDEV_HOME>¥jdev¥lib¥ojc.jar
    wrapper.classpath=<ORACLE_HOME>¥lib¥xmlparserv2.jar
    # optional, for JML tags, SQL tags, and database-access JavaBeans
    wrapper.classpath=<JDEV_HOME>¥j2ee¥home¥jsp¥lib¥taglib¥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
  2. JDK 1.2.2を使用している場合は、Java Servlet APIをダウンロードします。詳細は、次のサイトを参照してください。
    http://java.sun.com/j2ee/ja/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

  3. Apache JServ構成ファイルzone.propertiesを編集します。このファイルは次の場所にあります。
    $ORACLE_HOME/Apache/Jserv/servlets/
  4. サーブレットがJARにある場合は、次のようにリポジトリに追加します。
    repositories=<Apache_Home>¥JServ¥servlets
    repositories=<Apache_Home>¥JServ¥servlets¥shopcart.jar
  5. クラスがある場合は、これらを次の場所にコピーします。
    <APACHE_Home>¥JServ¥servlets
  6. 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

次に、ウィザードを使用してリモート・デバッグ・プロジェクトを作成できます。


リモート・デバッグについて