Interstage Application Server トラブルシューティング集
目次 索引 前ページ次ページ

第11章 データベース連携サービス使用時の異常

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

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

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

 クライアントアプリケーションが異常終了したりループ状態になった場合には、原因を取り除いた後、クライアントアプリケーションを再起動してください。

 なお、グローバルトランザクション連携の場合に、クライアントアプリケーションが処理していたトランザクションについては、トランザクションのタイムアウト時間の経過後、rollbackが指示されます。

 ただし、トランザクションのタイムアウトに0(タイムアウトの無効)を設定し、以下の条件に該当する場合には、システム管理者がotstranlistコマンドを使用して未解決(処理中)のトランザクションを終了させてください。


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

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

 サーバアプリケーションが異常終了したりループ状態になった場合には、原因を取り除いた後、サーバアプリケーションを再起動してください。

 グローバルトランザクション連携の場合に、処理を行っていたトランザクションについては、トランザクションのタイムアウト時間の経過後、rollbackが指示されます。ただし、トランザクションのタイムアウトに0(タイムアウトの無効)を設定し、以下の条件に該当する場合には、システム管理者がotstranlistコマンドを使用して未解決のトランザクションを終了させてください。

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

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

サーバアプリケーションがループ状態の場合

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

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

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

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

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

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

 Oracleの環境が正しく構築されていない場合、Interstageとの接続がエラーとなり、処理結果異常になります。正しい値を設定してください。

後述する章"Oracleを使用した場合の異常"に記載されている、対処方法を参考に対処してください。

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

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

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

 アプリケーション連携中に通信回線異常が発生した場合の対処方法について、説明します。

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

 クライアントアプリケーションとサーバアプリケーション間で通信異常が発生した場合、クライアントアプリケーションからのオペレーション呼び出しの復帰値により、エラーが通知されます。
 通信回線の回復後、クライアントアプリケーションを再起動してください。

 クライアントアプリケーションとサーバアプリケーション間で通信異常が発生した場合、クライアントアプリケーションからのオペレーション呼び出しの復帰値により、エラーが通知されます。rollbackを発行して、トランザクションを終了させてください。
 通信異常が通知されない場合、トランザクションのタイムアウト時間の経過後、トランザクションはrollbackされます。
 通信回線の回復後、クライアントアプリケーションを再起動してください。

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

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

メソッド呼び出しで異常

 アプリケーションからメソッド呼び出し時に異常が発生した場合の対処方法について、説明します。

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

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

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

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

クライアントアプリでUserTransactionのlookupが失敗する

 クライアントアプリケーションでUserTransactionをlookupした場合に、以下の例外が発生する。

  java.lang.IllegalStateException: has not set GlobalTransactionMode

[対処方法]
 クライアントアプリケーション起動時に以下のプロパティを指定するようにしてください(プロパティに指定する文字列は、大文字・小文字を区別します)。


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


目次 索引 前ページ次ページ

Copyright 2006 FUJITSU LIMITED