ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server トラブルシューティング集
Interstage

12.1 アプリケーション運用中の異常

アプリケーションの運用中に異常が発生した場合の対処方法について、以下の内容を説明します。

クライアントアプリケーションの異常

クライアントアプリケーションが異常終了した場合やループ状態になった場合は、原因を取り除いたあと、クライアントアプリケーションを再起動してください。
なお、グローバルトランザクション連携時に、クライアントアプリケーションが処理していたトランザクションは、トランザクションのタイムアウト時間の経過後、rollbackが指示されます。
ただし、トランザクションのタイムアウトに「0」(タイムアウト:無効)を設定し、以下の条件に該当する場合は、システム管理者がotstranlistコマンドで未解決(処理中)のトランザクションを終了してください。

注意

トランザクションのタイムアウトは、クライアントアプリケーションのCurrentインタフェースのbegin発行前に、Currentインタフェースのset_timeoutを発行して指定します。set_timeoutを発行しない場合は、データベース連携サービスの環境定義(config)のTRAN_TIME_OUTの設定値が有効となります。


サーバアプリケーションの異常

サーバアプリケーションが異常終了した場合やループ状態になった場合は、原因を取り除いたあと、サーバアプリケーションを再起動してください。
なお、グローバルトランザクション連携時に、サーバアプリケーションが処理していたトランザクションは、トランザクションのタイムアウト時間の経過後、rollbackが指示されます。
ただし、トランザクションのタイムアウトに「0」(タイムアウト:無効)を設定し、以下の条件に該当する場合は、システム管理者がotstranlistコマンドで未解決のトランザクションを終了してください。


サーバアプリケーションが異常終了した場合

クライアントアプリケーションの復帰値に“10004”が通知され、システムログメッセージファイルにエラーメッセージ“EXTP4656”が出力された場合は、トランザクションアプリケーションの異常によりアプリケーションプロセスが異常終了しています。これは、アプリケーションの不具合が原因です。異常終了した原因を調査してください。

サーバアプリケーションがループ状態になった場合

サーバアプリケーションがループ状態になった場合は、クライアントアプリケーションにタイムアウトなどが検出されたエラーが通知されます。エラーが通知されたクライアントアプリケーションは、rollbackを発行してトランザクションを終了してください。


サーバアプリケーションの処理結果異常

サーバアプリケーションの処理において期待した処理結果が得られない場合の対処方法を以下に示します。


Oracleの環境設定ミスによる処理結果異常

環境変数ORACLE_SIDの設定に誤りがある場合、正しいデータベースにアクセスできず、処理結果異常となります。正しい値を設定してください。

Oracleの環境構築ミスによる処理結果異常

Oracleの環境が正しく構築されていない場合、Interstageとの接続にエラーが発生し、処理結果異常となります。正しい値を設定してください。“12.6 Oracle使用時の異常”を参考に対処してください。

トランザクション完了命令の発行ミスによる処理結果異常

データベース連携サービスを使用する場合は、必ずCurrentインタフェース/JTAを使用してトランザクションを制御する必要があります。したがって、アプリケーションにおいてSQL文で単独にCOMMIT命令を呼び出した場合などは、処理結果異常となります。トランザクションを制御する場合は、Currentインタフェース/JTAを使用してください。


アプリケーション連携中の通信回線異常

アプリケーション連携中に通信回線異常が発生した場合の対処方法を以下に示します。


クライアントアプリケーションとサーバアプリケーション間の通信異常

クライアントアプリケーションとサーバアプリケーション間で通信異常が発生した場合、クライアントアプリケーションからオペレーションを呼び出した復帰値にエラーが通知されます。
以下の対処を行ってください。

  • クライアントアプリケーションでbeginを発行している場合は、rollbackを発行してトランザクションを終了させてください。通信異常が通知されない場合、トランザクションは、トランザクションのタイムアウト時間の経過後にrollbackされます。通信回線の回復後、クライアントアプリケーションを再起動してください。

  • クライアントアプリケーションでbeginを発行していない場合は、通信回線の回復後、クライアントアプリケーションを再起動してください。

クライアントアプリケーションとOTSシステム間の通信異常

クライアントアプリケーションが発行した完了処理(commit/rollback)において通信異常で終了した場合、トランザクションのタイムアウト時間の経過後、トランザクションがrollbackされます。
通信回線の回復後、クライアントアプリケーションを再起動してください。


メソッド呼出し時の異常

アプリケーションからメソッド呼出し時に異常が発生した場合の対処方法を以下に示します。


beginメソッド発行時に、NO_IMPLEMENT例外が発生する場合

OTSシステムが起動されていない可能性があります。isstatコマンド/otsaliveコマンドでOTSシステムが起動されているかを確認してください。停止している場合は、isstartコマンド/otsstartコマンドでOTSを再起動したあと、再度beginメソッドを発行してください。

beginメソッド発行時に、NO_RESOURCES例外が発生する場合

OTSシステムに対して、Interstage動作環境定義の“OTS maximum Transaction”の設定値/セットアップ情報ファイルの“TRANMAX”の設定値を超えた要求が発行されています。


クライアントアプリケーションUserTransactionのlookupが失敗する

クライアントアプリケーションにおいてUserTransactionをlookupした際に以下の例外が発生する場合は、クライアントアプリケーション起動時にプロパティを指定してください。

java.lang.IllegalStateException: has not set GlobalTransactionMode

プロパティに指定する文字列を以下に示します。大文字/小文字は、区別されます。

-Dcom.fujitsu.ObjectDirector.CORBA.GlobalTransactionMode=True

また、使用しているJDK/JREがInterstage Application Serverに同梱されているJDK/JREであるかを確認してください。

参照

他のデータベース連携サービスの例外については、“メッセージ集”の“データベース連携サービスから通知される例外情報”を参照してください。