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

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

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

  1. ApacheJServのインストール・ディレクトリで、次の場所にあるjserv.confファイルを開きます。
    $ORACLE_HOME/Apache/Jserv/etc/
  2. JSPについては、ApJServActionのセクションを探し、次の行を追加します。
    ApJServAction .jsp /servlets/oracle.jsp.runtimev2.JspServlet
  3. ApacheJServのインストール・ディレクトリで、次の場所にある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以降、JDK 1.22またはSolaris上の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

このサブオプションにより、デバッガとの通信時に使用されるソケットのポート番号を指定します。別のポート番号を指定することもできますが、後でデバッガに入力するポートと一致させる必要があります。

JPDAのClassicデバッグ用として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リファレンス・バージョンを使用する必要があります。本番バージョンの場合、リモート・デバッグは実行されません。

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=<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
  2. JDK 1.2.2を使用している場合、Java Servlet APIをダウンロードします。詳細は、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
  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
    これで、ウィザードを使用してリモート・デバッグ・プロジェクトを作成できます。

リモート・デバッグについて
リモートJavaアプリケーションのデバッグ