以下のトラブルについて対処方法を説明します。
IJServerクラスタ起動時、および運用時にアプリケーションでエラーが発生した場合
IJServerクラスタ起動時、および運用時にアプリケーションでエラーが発生した場合、アプリケーションがJava EE規約に準拠していない可能性があります。
アプリケーションの再配備時、または配備解除時の不整合
アプリケーションの再配備時、または配備解除時に、以下が出力された場合、Interstage Java EE 7 DASサービスの内部情報に不整合が発生している可能性があります。
Failure removing policy context directory: ディレクトリ
Failure removing policy file: ファイル
本問題が発生した場合は以下の手順でリカバリを行ってください。
アプリケーションを配備
アプリケーションを配備解除
再配備の場合:アプリケーションを配備
運用時にアプリケーションの応答がない場合、遅延が発生した場合
Enterprise Beanごとのスレッドプール設定を行わず、デフォルトスレッドプールを使用している場合、EJBアプリケーションの呼出しが多くなると、応答がない現象や処理遅延が発生することがあります。
「IIOP通信によるリモートアクセスを行う場合の環境設定」を参照し、Enterprise Beanごとのスレッドプール設定を行ってください。
アプリケーション内のクラスファイルやリソースファイルの参照に失敗する場合
アプリケーションがロードされたクラスローダからクラスファイルやリソースファイルが参照できない可能性があります。「2.22 クラスローダ」を参照し、アプリケーションがロードされたクラスローダからクラスファイルやリソースファイルが参照できるか確認してください。
アプリケーション内のクラスファイルが参照されずInterstageが内包しているクラスファイルが参照されている場合、「2.22.3 Webクラスローダの委譲モデルの変更」を参考にWebクラスローダの委譲モデルの変更を検討してください。
ロードに失敗するクラスが「2.22.3 Webクラスローダの委譲モデルの変更」の「委譲の例外」に当たる場合、Interstageが内包しているクラスファイルで動作するようにアプリケーションを改修してください。
参考
ロードされたクラスを確認するにはJava VMオプションに-verbose:classを指定してください。ロードされたクラスの情報はJava VMログ(console.log)に出力されます。
オートリロード機能が有効な状態でアプリケーションを配備した時に、サーバーログにNullPointerExceptionが出力された場合
NullPointerExceptionのメッセージに以下の文字列が含まれている場合は対処の必要がありません。
"_ThreadName=DynamicReloader;"
メッセージに上記の文字列が含まれていないときは、アプリケーションが原因の可能性があります。前後のエラーメッセージを参照し対処してください。
アプリケーションのオートリロードを実行した時にコンソールログにOutOfMemoryErrorが出力された場合
オートリロードを行ったときに、Interstage Java EE 7 DAS サービスでメタスペースが足りなくなりOutOfMemoryErrorが発生した場合は、以下の対処を行ってください。
Interstage Java EE 7 DASサービスが停止している場合は起動させてください。
オートリロードの対象となっているアプリケーションを配備しなおしてください。
また、「6.1.2 Java VMのヒープ領域サイズ/メタスペースサイズ」を参照し、メタスペースサイズを大きくしてください。
アプリケーションの実行に失敗する場合
要求を受け付けるバーチャルホストを設定後、Webブラウザにステータスコード「404 Not Found」が通知される
要求を受け付けるバーチャルホストを設定後、Webブラウザにステータスコード「404 Not Found」が通知される場合、設定した値が正しくない可能性があります。要求を受け付けるバーチャルホストに、以下のような値が設定されていないか確認してください。
ホスト名にスラッシュ(/)が含まれる。
設定されていた場合、一度Webサーバとの連携を解除し、再度連携する際に正しい形式で要求を受け付けるバーチャルホストを設定してください。
HTTPリスナーのポート番号やシステムプロパティHTTP_LISTENER_PORTの変更後、Webブラウザにステータスコード「500 Internal Server Error」や「404 Not Found」が通知される、または接続できない旨が表示される
システムプロパティHTTP_LISTENER_PORTを変更した場合、IJServerクラスタまたはサーバーインスタンスを再起動することにより、ポート番号の変更が反映されます。アプリケーションの実行に失敗する場合は、IJServerクラスタまたはサーバーインスタンスを再起動してください。
システムプロパティHTTP_LISTENER_PORTと他のシステムプロパティを同時に変更して保存した場合、Webサーバとの連携設定が正常に更新されない場合があります。詳細は「システムプロパティHTTP_LISTENER_PORTの変更について」を参照してください。
ロケールの変更に起因して、配備済みのアプリケーションが消える現象が発生した場合
「6.22 ロケールの設定」時にアプリケーションが配備されていた可能性があります。
本問題が発生した場合は以下の手順でリカバリを行ってください。
配備済みのアプリケーションを配備解除します。配備解除した後、下記のディレクトリを手動で削除してください。
<Java EE 7 共通ディレクトリ>/domains/domain1/applications/<アプリケーション名>
Java EE 7 共通ディレクトリ配下にお客様が独自にファイルを配置し、そのファイル名がマルチバイト文字を含む場合、ファイル名のエンコードを変更後のロケールに合わせてください。
手順1で配備解除したアプリケーションを配備しなおしてください。
Interstage Java EE 7 DASサービスや起動状態のIJServerクラスタをターゲットに指定したアプリケーションの配備解除時に、サーバーログにエラーメッセージが出力された場合
出力されたエラーメッセージのエラー種別がSEVEREでメッセージ内容が下記の場合は、アプリケーションの配備解除を行ったターゲットを再起動してください。再起動後、再度配備解除を行う必要はありません。
The web application [<アプリケーション名>] created a ThreadLocal with key of type <詳細情報> and a value of type <詳細情報> but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
上記以外の場合は、メッセージの内容に従い対処してください。
アプリケーションの配備に失敗する場合
server.logに「OutOfMemoryError」が表示されアプリケーションの配備に失敗する
Javaヒープ領域が不足している場合に発生します。「12.18 OutOfMemoryErrorがログに出力された場合」を参照し、Javaヒープのサイズを大きくした後に、アプリケーションを配備してください。