A Oracle Joltの例外
この付録では、発生する可能性のあるOracle Joltの例外について説明します。Joltクラス・ライブラリは、Oracle JoltとOracle Tuxedoの両方の例外を返します。
Oracle Tuxedoの例外の詳細は、次のドキュメントのいずれかを参照してください:
また、Joltクラス・ライブラリの例外は、『Oracle Jolt APIリファレンス』でクラス、コンストラクタ、およびメソッドごとにリストされています。
次の表に、Oracle Joltの実行中に発生する可能性のある、Oracle JoltとOracle Tuxedoの例外を示します。各項目で、例外発生の原因と問題を解決するためのアクションを示しています。
例外 | 説明 | |
---|---|---|
1.TPEABORT |
トランザクションをコミットできませんでした | |
原因 | サーバー側でトランザクションをコミットできなかった場合に発生します。また、以前のブロッキング状態が原因でタイムアウトになったコミット操作に対して、JSHがメッセージの再送を実行したときに発生する場合もあります。Oracle Tuxedoでは、未処理の応答が残っているか、会話型接続がオープンのまま、tpcommit() が呼び出されると、この例外が返されることがあります。
|
|
処置 | サーバー側にトランザクションの障害がないかどうかを確認します。Oracle Joltクライアントからのリクエストの再送は、サーバー側のトランザクションの問題が解決された後で行います。 | |
2.TPEBADDESC |
Oracle Joltでは、この例外は発生しません。 | |
原因 | Oracle Tuxedoでは通常、tpgetrply() またはtpsend() に無効な呼出し記述子が指定された場合にこの例外が発生します。
|
|
処置 | なし。 | |
3. TPEBLOCK |
Oracle Tuxedoでブロッキング状態が発生し、TPNOBLOCKフラグが指定されます。 | |
原因 | サーバーがバックアップされているために発生します。 | |
処置 | 負荷が大きい場合は、アプリケーションを再検討し、再構築する必要がある場合があります。 | |
4.TPEINVAL |
アプリケーションに対して無効な引数が指定されました。 | |
原因 | この例外は、セキュリティ・プロトコルを実行する前に新しいJoltSessionクラスが処理されると発生します。JoltのURLハンドラ・ルーチンでは、openConnection() メソッドで無効なチャレンジ・レスポンスを受け取るとこの例外が発生します。また、JSL -Hオプションに指定した16進数のアドレスの先頭に0x を付けなかった場合、またはUBBCONFIG ファイルに間違ったアドレスを入力した場合にもTPEINVAL 例外が発生します。さらに、REPNAME がない場合にJREPSVR のGETREC() 、DELREC() およびGETSVC() サービスからTPEINVAL が返される場合もあります。REPVAL を指定しないと、JREPSVR のADDREC() サービスからTPEINVAL が返されることもあります。
|
|
処置 | この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。 | |
5.TPELIMIT |
未処理のリクエストまたはサブスクリプションが最大数に達した。 | |
原因 | 未処理のリクエストが最大数に達しています。この例外は、Oracle Tuxedoシステムのイベント・ブローカのサブスクリプションが最大数(現在、内部的な定義は50)に達したことを意味する場合もあります。 | |
処置 | 負荷が大きい場合は、アプリケーションを再検討し、再構築する必要がある場合があります。 | |
6.TPENOENT |
リクエストされたサービスが利用できません。 | |
原因 | 通常、リクエストされたサービスがOracle Tuxedoのサーバー側で起動または通知されていないことが原因。リクエストされたサービスがOracle Tuxedoサービス・メタデータ・リポジトリで定義されていない可能性もあります。また、Oracle Tuxedoシステムのイベント・ブローカにアクセスできなかったことを示す場合もあります。 | |
処置 | サーバー側でサービスが起動または通知されているかどうかを確認します。または、リクエストされたサービスがOracle Tuxedoサービス・メタデータ・リポジトリで定義されているかどうかを確認します。サーバー側でサービスを使用できるようになったら、Joltクライアントからリクエストを再送する必要があります。 | |
7.TPEOS |
オペレーティング・システムの例外が発生した。 | |
原因 | 問題の内容はULOGファイルに記述されます。通常、この例外はメモリー割当ての失敗、無効なネットワーク・アドレス、またはJSLの掲示板へのアタッチの失敗が原因で発生します。 | |
処置 | ULOGファイルに従って問題を修正します。問題が修正されたら、Joltクライアントは接続し直してリクエストを再送する必要がある場合があります。 | |
8.TPEPERM |
セッションに参加しようとする際に許可の問題が発生した。 | |
原因 | JoltSessionクラスでは、Joltクライアントがアプリケーションに参加するための権限を持たない場合にこの例外が発生します。アプリケーション・パスワードが無効な場合、アプリケーション固有の認証にパスしなかった場合、または許可されていないクライアント名を使用している場合は、権限が拒否されます。JoltのURLハンドラ・ルーティングでは、openConnection() メソッドに対して無効なチャレンジ・レスポンスを受け取ると、この例外が発生します。Oracle Tuxedoサービス・メタデータ・リポジトリが読取り専用に設定されていると、ADDREC() およびDELREC() サービス、またはJREPSVR のGARBAGECOLLECT() サービスからTPEPERM 例外が返されます。
|
|
処置 | この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。 | |
9.TPEPROTO |
関数が不適切なコンテキストで呼び出されました。 | |
原因 | この例外で不適切なコンテキストとは、rollback() またはcommit() メソッドが参加リソースによってコールされた場合、「すべてサブスクライブ解除」の実行中にサブスクライブ解除イベントがコールされた場合、またはコール元がクライアントでない場合などです。
|
|
処置 | この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。 | |
10.TPESVCERR |
Oracle Tuxedoのtpreturn() またはtpforward() の実行中、サービス・ルーチンで例外が発生した。 |
|
原因 | アプリケーション・レベルの障害、つまり、無効なフラグが指定されたtpreturn() またはtpforward() が呼び出された、呼出し側の記述子が無効である、戻り値が無効である、のいずれかのエラーがサービス・ルーチンから返されます。
|
|
処置 | この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。 | |
11.TPESVCFAIL |
呼出し側の応答を送信するサービス・ルーチンが、TPFAIL でtpreturn() を呼び出しました。 |
|
原因 | サービス・ルーチンからアプリケーション・レベルの障害が返されます。 | |
処置 | この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。 | |
12.TPESYSTEM |
Oracle Tuxedoシステムの例外が発生した。 | |
原因 | 例外の内容はULOGファイルに書き込まれます。たとえば、Diffie-Hellman方式の暗号化を実行するとします。JSHがネゴシエーション・パラメータを送信できない場合、この例外が発生します。JSLはChallenge呼出しの応答をJoltクライアントに送信できません。そのため、Joltクライアントがタイムスタンプ、暗号ビット、およびチケット値を間違った値で送信したり、再接続プロトコルのタイムスタンプが一致しなくなります。JSLはネットワーク・プロトコル情報を初期化できず、ネットワーク上の接続指示受け付けアドレスを確立することもできません。また、JSHは、不明なコンテキスト付きのネットワーク・メッセージを受信したり、別の接続でのメッセージを受信します。 | |
処置 | 通常、サーバー側でULOGファイル内の例外の内容を確認する必要があります。ハードウェア障害やネットワーク障害が原因のとき、ハードウェアやネットワークのフェイルオーバーを実行できる場合は接続し直します。 | |
13.TPETIME |
トランザクション・タイムアウトが発生した。 | |
原因 | サーバー側でトランザクション・タイムアウトが発生した。 | |
処置 | この種の例外は、アプリケーションのサーバー側で処理する必要があります。Joltクライアントからのリクエストの再送は、サーバー側の問題が解決された後で行います。 | |
14.TPETRAN |
リクエストされたサービスがトランザクションをサポートしないサーバー上にあり、TPNOTRAN が設定されていません。 |
|
原因 | リクエストされたサービスに対してトランザクションがサポートされていません。 | |
処置 | この種の例外は、アプリケーションのサーバー側で処理する必要があります。Joltクライアントからのリクエストの再送は、サーバー側の問題が解決された後で行います。 | |
15.TPGOTSIG |
予期しないシグナルを受信した | |
原因 | シグナルが受信されましたが、TPSIGSTRT フラグが指定されていませんでした。
|
|
処置 | なし。 | |
16.TPERMERR |
サーバー側でリソース・マネージャがオープンまたはクローズに失敗した | |
原因 | リソース・マネージャを使用できないか、クローズする前にすべてのリソースを解放またはコミットできません。 | |
処置 | ULOGファイルを参照して、リソース・マネージャがサーバー側でオープンまたはクローズに失敗した原因を確認します。 | |
17.TPEITYPE |
JoltRemoteServiceクラスで、リクエストされたOracle Tuxedoサービスが入力データのタイプおよびサブタイプを認識しません。 | |
原因 | 入力データのタイプおよびサブタイプがOracle Tuxedoサービス・メタデータ・リポジトリで定義されていません。 | |
処置 | 入力データのタイプおよびサブタイプがOracle Tuxedoサービス・メタデータ・リポジトリで定義されている必要があります。この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。 | |
18. TPEOTYPE |
JoltRemoteServiceクラスで、Oracle Tuxedoの呼出し側が応答データのタイプおよびサブタイプを認識しません。 | |
原因 | 出力データのタイプおよびサブタイプがOracle Tuxedoサービス・メタデータ・リポジトリで定義されていません。 | |
処置 | 出力データのタイプおよびサブタイプがOracle Tuxedoサービス・メタデータ・リポジトリで定義されている必要があります。この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。 | |
19.TPERELEASE |
Oracle Joltでは、この例外は発生しません。 | |
原因 | 通常、TPACK フラグを指定した非請求メッセージがサーバーから送信され、ターゲットが肯定応答プロトコルをサポートしていない以前のリリースのOracle Joltクライアントの場合に発生します。
|
|
処置 | ご使用のマシンに正しいバージョンのOracle Joltがインストールされているかどうかを確認します。この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生してはなりません。 | |
20.TPEHAZARD |
何らかの障害が発生したため、トランザクションのかわりに行われた作業がヒューリスティックに完了された可能性があります。 | |
原因 | サーバー側でULOGファイルを参照して、詳しい情報を確認します。 | |
処置 | なし。 | |
21.TPEHEURISTIC |
ヒューリスティックな判断のため、トランザクションの一部としてなされた作業が一部はコミットされ、一部は中途終了しています。 | |
原因 | サーバー側でULOGファイルを参照して、詳しい情報を確認します。 | |
処置 | なし。 | |
22.TPEEVENT |
Oracle Joltでは、この例外は発生しません。 | |
原因 | この例外は通常、Oracle Tuxedoの会話型接続で、メッセージの送受信中にイベントが発生したことを意味します。ただし、会話型サーバー接続はOracle Joltでは使用できません。 | |
処置 | なし。 | |
23. TPEMATCH |
JoltUserEventクラスは非同期通知イベントのサブスクリプションを実装したが、既存のサブスクリプションと一致するため、サブスクリプションが失敗した。 | |
原因 | Oracle Tuxedoシステムのイベント・ブローカのリストにすでに存在するサブスクリプションと一致するため、サブスクリプションが失敗した。 | |
処置 | なし。 | |
24.TPEDIAGNOSTIC |
Oracle Joltでは、この例外は発生しません。 | |
原因 | 通常Oracle Tuxedoで、メッセージを指定したキューに登録したり、キューから取り出す操作が失敗すると、この例外が発生します。ただし、キューへのメッセージの登録や取出しはOracle Joltでは実行できません。 | |
処置 | なし。 | |
25.TPEMIB |
Oracle Joltでは、この例外は発生しません。 | |
原因 | この例外は通常、Oracle Tuxedoで、tpadmcall() を使用した管理リクエストが失敗すると発生します。ただし、TMIB呼出しはOracle Joltでは使用できません。
|
|
処置 | なし。 | |
26.TPEJOLT |
この例外はOracle Joltで問題が発生していることを示します。 | |
原因 | TPEJOLT 例外は、次のいずれかの理由で発生します。
|
|
処置 | この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。 |