Adobe JRun


JRun 3.0: Windows ログオフ時の、JRunサーバの停止について

記事 19697(原文)


環境
OS:Windows 2000/95/NT3.51/NT4.0

JDK/JRE 1.3を使用したJRun3.0は、ユーザーがウィンドウズNT/2000でログオフを行うと、JRunサーバが停止することがあります。これは、JRunサーバがNTのサービスとしてインストールされた際に発生します。これはバグ19138として登録されています。この記事では、詳細と回避方法について述べます。


この問題は、バグ番号4323062としてSun Microsystemのバグレポートにリストアップされています。しかし、これはバグでなく、回避方法があります。

回避方法

Sunのバグレポートではこの問題の回避のために、 CTRL_LOGOFF_EVENT を無視するようラッパーによってサービスを修正することを示唆しています。

JRun 3.0SP2では、dontdiejava.exe によって回避方法を提供します。JDK 1.3ユーザ は、この回避方法を行うために以下の手順を実行してください。(JDK1.3.1であれば、"-Xrs"オプションによって回避できます。詳細についてはJRunFAQ"ログオフ時のJRunサービス停止について(Windows)"をご参照ください)

設定手順:
  1. dontdiejava.exe ファイルをJRUN_HOME/binディレクトリに置いて下さい。これは、JVMを呼ぶためのラッパー実行ファイルです。
  2. 以下に続く手順によってglobal.propertiesファイルを開いてセットしているJVMを修正して下さい
  3. java.exe プロパティに {jrun.rootdir}/bin/dontdiejava.exe を指定します。例えば、
    # path to java virtual machine. Launchers will use system PATH if necessary
    #java.exe=C:\\Sun\\jsdk130\\jre\\bin\\javaw.exe
    java.exe=D:\\Allaire\\JRun301\\bin\\dontdiejava.exe
  4. jvm.dllを含むディレクトリのために java.jnipath プロパティにパスを加えて下さい。例えば、
    # shared library path for JNI libraries
    java.jnipath=C:\\Sun\\jsdk130\\jre\\bin\\hotspot;{user.jnipath};{ejb.jnipath};{servlet.jnipath}
  5. パスの指定には、前方にスラッシュ(エンマーク)、あるいはダブルバックスラッシュ(ダブルエンマーク)を使う必要があります。user.jnipathをセットすることによって間接的にjava.jnipathをセットすることはできません。直接java.jnipathで指定する必要があります。
dontdiejava.exeはラッパーファイルであるため、もしJVMのためのスタックトレースを行う場合には、java.exe に変更してCTRL-Breakを使用する必要があります。

注意(5/10/01)

最近、IBMの1.3JVMでも同様にログオフ時にNTのサービスが停止する現象が確認されました。http://www-106.ibm.com/developerworks/java/jdk/index.html

IBMのJVMでも同様の回避方法が利用できます。ステップ4のみことなり、この値は、IBMのjvm.dllを示す必要があります。例えば、

java.jnipath=C:\\IBM\\Java13\\jre\\bin\\classic

 


Copyright 2009 Samuraiz Corporation. All Rights Reserved.