この節では、Sun Java System Application Server Platform Edition 9.0 Update 1 製品に関する既知の問題とそれに関連する回避策について説明します。問題の説明にプラットフォームが明記されていない場合、その問題はすべてのプラットフォームに当てはまります。この節は次の項目から構成されています。
デフォルトでは、asenv.conf によってポイントされる domain1 の AS_ACC_CONFIG 変数のハードコードされた値が $INSTALL/lib/package-appclient.xml にあります。domain1 を削除して新たなドメインを作成した場合、AS_ACC_CONFIG 変数は新たなドメイン名で更新されません。その結果、package-appclient スクリプトの処理が失敗します。
次のいずれかの操作を行います。
domain1 はそのままにしておき、その前後に別のドメインを作成します。
domain1 を削除し、$INSTALL/lib/package-appclient.xml の domain1 にハードコードされた値を新しいドメイン名で置き換えます。domain1 がない場合、新たなドメインが作成されるたびにこれを行う必要があります。
J2SE 1.4.x、5.0、またはそれ以降のバージョンは、Application Server で設定できます。J2SE 5.0 プラットフォームの重要な特徴は、JMX エージェントを起動できることです。サーバーの起動時にシステムプロパティーを明示的に設定すると、JMX エージェントがアクティブになります。
次に例を示します。
name="com.sun.management.jmxremote" value="true" name="com.sun.management.jmxremote.port" value="9999" name="com.sun.management.jmxremote.authenticate" value="false" name="com.sun.management.jmxremote.ssl" value="false"
JMX プロパティーを設定してサーバーを起動すると、Application Server VM 内で新しい jmx-connector サーバーが起動します。この場合は、望ましくない副作用の 1 つとして、管理機能が悪影響を受け、Application Server の管理 GUI や CLI で予期しない結果が発生することがあります。問題は、組み込みの jmx-connector サーバーと新たな jmx-connector サーバーとの間で衝突が発生することにあります。
jconsole または何らかの JMX 互換クライアントを使用する場合には、Application Server とともに起動する標準の JMX コネクタサーバーを再利用することを検討してください。
サーバーの起動時に、次に示すような行が server.log に作成されます。ここで指定されている JMXServiceURL に接続し、資格を正常に指定したあと、同様の管理および設定操作を実行することができます。次に例を示します。
[#|2004-11-24T17:49:08.203-0800|INFO|sun-appserver-ee8.1|javax.enterprise. system.tools.admin|_ThreadID=10;|ADM1501: Here is the JMXServiceURL for the JMXConnectorServer: [service:jmx:rmi:///jndi/rmi://hostname:8686/management/ rmi-jmx-connector]. This is where the remote administrative clients should connect using the JSR 160 JMX Connectors.|#]
詳細については、『 Sun Java System Application Server 9.0 Update 1 管理ガイド』を参照してください。
パスにスペースが含まれている場所に Application Server をインストールすると、インスタンスの停止時に、次のようなメッセージがログに表示されます。Application Server の機能はこの状況の影響を受けません。
InvalidJvmOptionException: Invalid Jvm Option Files/Java/jdk1.5.0_07/jre/lib/ext; C:/Sun/AppServer/domains/domain1/lib/ext;C:/Sun/AppServer/javadb/lib. Option must start with -. |
管理コンソール GUI では、実際のゼロ ( 0) と統計が利用できない状態 (N/A) とを区別できます。現在、コマンド行インタフェースでは、N/A の代わりにマイナス 1 (-1) が表示されます。たとえば、次の display-error-statics コマンドの出力では、N/A の代わりに —1 が表示されています。
# asadmin display-error-statistics Please enter the admin user name>admin Please enter the admin password> Timestamp Severity Warning --------------------------------------------------------- 1143659837750(Mar 29, 2006 11:17:17 AM) 0 0 1143656237750(Mar 29, 2006 10:17:17 AM) 0 0 1143652637750(Mar 29, 2006 9:17:17 AM) -1 -1 1143649037750(Mar 29, 2006 8:17:17 AM) -1 -1 1143645437750(Mar 29, 2006 7:17:17 AM) -1 -1 --------------------------------------------------------- Command display-error-statistics executed successfully. |
エラー統計値を表示するには、管理コンソール GUI を使用してください。この問題は、今後のリリースで解決されます。
ここでは、アプリケーションクライアントに関する既知の問題とその解決方法を示します。
この節では、インストールおよびアンインストールに関する既知の問題とその解決方法を示します。
この問題は、いくつかの Linux システム上で発生していました。これは Java Desktop System 2 でもっとも一般的に見られますが、RedHat ディストリビューションでも見られます。
インストーラの最後の画面で「完了」ボタンをクリックすると、インストーラは製品の「バージョン情報」ページまたは製品登録ページを表示するブラウザウィンドウの起動に失敗し、コマンドプロンプトに戻ることなくハングアップしたままになります。
インストールプログラムを起動した端末ウィンドウで Ctrl+C を押すことにより、インストールプログラムを終了します。そのあとで、製品の「バージョン情報」ページまたは登録ページを表示するブラウザウィンドウが起動することがあります。ブラウザウィンドウが現れない場合には、ブラウザを起動してから次の URL を入力して「バージョン情報」ページを確認してください。
file://install_dir/docs/about.html
製品を登録するインストールオプションを選択した場合には、「バージョン情報」ページ上の登録ページへのリンクをたどってください。
Linux インストーラを起動する setup 実行可能ファイルがハングすることがあります。J2SE の場所を解決してインストールウィザードを起動する代わりに、ラッパーがハングアップして次のメッセージを返します。
Chcking available disk space.... Checking Java(TM) 2 Runtime Environment.... Extracting Java(TM) 2 Runtime Environment.... Deleting temporary files.....
この問題は Linux の一部のバージョンで見られ、特に JAVA_HOME 変数が存在する場合など環境設定に依存するようです。
この問題を回避するには、次の手順を実行します。
シェルに応じて unset または unsetenv を実行して、JAVA_HOME 変数の設定を解除します。
-javahome オプションを使用して setup を実行して、インストーラが使用する JAVA_HOME を指定します。
ここでは、ライフサイクル管理に関する既知の問題とその解決方法を示します。
[echo] Doing admin task set [exec] [Attribute(id=redelivery-interval-internal-in-millis) : Redelivery- Interval (7,000) should be greater than or equal to Minimum-delivery- interval-in-millis (9,000)] [exec] CLI137 Command set failed.
minimum-delivery-interval は、同一の周期タイマーの最小発生間隔。
redelivery-interval-in-mills は、失敗した ejbTimeout のあとに再発生を試みるまでタイマーサービスが待機する時間。
これは、再発生間隔のプロパティーを最小発生間隔のプロパティーと関連付けるロジックが間違っていて、GUI または CLI を使用して再発生間隔よりも最小発生間隔が大きくなるような値を設定できないという問題です。
minimum-delivery-interval-in-millis を、ejb-timer-service プロパティーの redelivery-interval-in-millis 以上の値に設定する必要があります。問題は、redelivery-interval-in-millis の値が minimum-delivery-interval-in-millis の値よりも大きいことを検証するための Application Server の処理にエラーがあることです。
次のように、これらプロパティーのデフォルト値を使用します。
minimum-delivery-interval(default)=7000 redelivery-interval-in-millis(default)=5000
これらデフォルト以外の値を指定するとエラーが発生します。
この節では、Java Persistence API に関する既知の問題とその解決方法を示します。
クエリーコンパイラは、仕様の Java Persistence 言語の章で定義されたすべてのルールをチェックするわけではありません。具体的には、次のチェックは行われません。
関数引数の型の互換性。
算術、論理、および比較演算子のオペランドの型の互換性。
ORDER BY クエリーの SELECT 句の要件。
無効なクエリーは、コンパイルできても実行時に SQLException が発生する可能性があります。また、配下のデータベースでは制約が少なく、生成された SQL がサポートされても、別のデータベースで同じクエリーを実行すると SQLException が発生して失敗する場合もあります。
上の条件を手動で確認してください。
詳細については、https://glassfish.dev.java.net/issues/show_bug.cgi?id=550 を参照してください。
クエリー内の間違いを手動で確認してください。
異なるクラス名を使用してください。
詳細については、https://glassfish.dev.java.net/issues/show_bug.cgi?id=558 を参照してください。
MappedSuperclass の明示的な一覧表示はしないでください。
Null にできるデータベース列にマップするには、Java ラッパータイプを使用してください。
この節では、アップグレードとアップグレードツールの使用に関する既知の問題とその解決方法について説明します。
アップグレードユーティリティーを実行しているときに、install_dir をソースインストールディレクトリとして指定すると、そのアップグレードプロセスは、install_dir /domains ディレクトリの下に作成されたドメインだけをアップグレードします。その他の場所に作成されたドメインはアップグレードされません。
アップグレードプロセスを起動する前に、すべてのドメインディレクトリを、それぞれの場所から install_dir /domains ディレクトリに移動します。
この問題は複数の Linux システムで発生しています。Java Desktop System 2 でもっとも一般的ですが、RedHat ディストリビューションでも発生しています。
インストーラの最後の画面で「アップグレードツールの起動」ボタンをクリックすると、インストーラはアップグレード処理を完了するためのアップグレードツールの起動に失敗し、コマンドプロンプトに戻ることなくハングアップしたままになります。
この問題は、コマンド行インストールモードを使って代替アップグレードを実行している場合には発生しません。
GUI モードで代替アップグレードを実行してこの問題が発生した場合には、インストールプログラムを起動した端末ウィンドウで Ctrl+C を押すことにより、そのインストールプログラムを終了します。
その端末ウィンドウから次のコマンドを使ってアップグレードツールを起動します。
install_dir/bin/asupgrade --source install_dir/domains --target install_dir --adminuser adminuser--adminpassword adminpassword --masterpassword changeit |
adminuser および adminpassword は、アップグレード中のインストールで使用されている値に一致する必要があります。
アップグレードツールがアップグレードプロセスを完了したあとは、ブラウザを起動して次の URL を入力することにより、「バージョン情報」ページを参照できます。
file://install_dir/docs/about.html
製品を登録するインストールオプションを選択した場合には、「バージョン情報」ページ上の登録ページへのリンクをたどってください。
Windows 上でアップグレードツールを実行している間は、アップグレードするインストールですべてのファイルを閉じください。ファイルを開いておくと、アップグレードツールがハングアップすることが報告されています。
ここでは、Web コンテナに関する既知の問題とその解決方法を示します。
JSP ページにアクセスしてもコンパイルに失敗し、サーバーログには「Unable to execute command」というエラーメッセージと次のスタックトレースが記録されます。
at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec (Execute.java:655) at org.apache.tools.ant.taskdefs.Execute.launch (Execute.java:416) at org.apache.tools.ant.taskdefs.Execute.execute (Execute.java:427) at org.apache.tools.ant.taskdefs.compilers. DefaultCompilerAdapter.executeExternalCompile(DefaultCompilerAdapter. java:448) at org.apache.tools.ant.taskdefs.compilers.JavacExternal. execute(JavacExternal.java:81) at org.apache.tools.ant.taskdefs.Javac. compile(Javac.java:842) at org.apache.tools.ant.taskdefs.Javac.execute (Javac.java:682) at org.apache.jasper.compiler.Compiler.generateClass (Compiler.java:396)
JSP のコンパイルスイッチを fork から false に設定します。
これは、次のいずれかの方法で行えます。
グローバルに行うには、次のように、${S1AS_HOME}/domains/domain1/config/default-web.xml 内の JspServlet の fork init パラメータを false に設定します。
<servlet\> <servlet-name\>jsp</servlet-name\> <servlet-class\>org.apache. jasper.servlet.JspServlet</servlet-class\> .... <init-param\> <param-name\> fork</param-name\> <param-value\>false</param-value\> </init-param\> .... </servlet\>
Web アプリケーションごとに、sun-web.xml の JSP 設定プロパティー fork を false に設定します。次のようにします。
<sun-web-app\> <jsp-config\> <property name="fork" value="false" /\> </jsp-config\> </sun-web-app\>
これらのいずれかを設定することにより、ant が javac コンパイルのための新規プロセスを生成することが防止されます。