Oracle Joltの使用

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

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がない場合にJREPSVRGETREC()DELREC()およびGETSVC()サービスからTPEINVALが返される場合もあります。REPVALを指定しないと、JREPSVRADDREC()サービスからTPEINVALが返されることもあります。
アクション
この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。
5. TPELIMIT
未処理のリクエストまたはサブスクリプションが最大数に達した。
 
原因
未処理のリクエストが最大数に達しています。この例外は、Oracle Tuxedoシステムのイベント・ブローカのサブスクリプションが最大数(現在、内部的な定義は50)に達したことを意味する場合もあります。
アクション
負荷が大きい場合は、アプリケーションを再検討し、再構築する必要がある場合があります。
6. TPENOENT
リクエストされたサービスが利用できません。
 
原因
通常、リクエストされたサービスがOracle Tuxedoのサーバー側で起動または公開されていないことが原因。リクエストされたサービスがJoltリポジトリで定義されていない可能性もあります。また、Oracle Tuxedoシステムのイベント・ブローカにアクセスできなかったことを示す場合もあります。
アクション
サーバー側でサービスが起動または公開されているかどうかを確認します。または、リクエストされたサービスがJoltリポジトリで定義されているかどうかを確認します。サーバー側でサービスを使用できるようになったら、Joltクライアントからリクエストを再送する必要があります。
7. TPEOS
オペレーティング・システムの例外が発生した。
 
原因
問題の内容はULOGファイルに記述されます。通常、この例外はメモリー割当ての失敗、無効なネットワーク・アドレス、またはJSLの掲示板へのアタッチの失敗が原因で発生します。
アクション
ULOGファイルに従って問題を修正します。問題が修正されたら、Joltクライアントは接続し直してリクエストを再送する必要がある場合があります。
8. TPEPERM
セッションに参加しようとする際に許可の問題が発生した。
 
原因
JoltSessionクラスでは、Joltクライアントがアプリケーションに参加するための権限を持たない場合にこの例外が発生します。アプリケーション・パスワードが無効な場合、アプリケーション固有の認証にパスしなかった場合、または許可されていないクライアント名を使用している場合は、権限が拒否されます。JoltのURLハンドラ・ルーティングでは、openConnection()メソッドに対して無効なチャレンジ・レスポンスを受け取ると、この例外が発生します。Joltリポジトリが読取り専用に設定されていると、ADDREC()およびDELREC()サービス、またはJREPSVRGARBAGECOLLECT()サービスからTPEPERM例外が返されます。
アクション
この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。
9. TPEPROTO
関数が不適切なコンテキストで呼び出されました。
 
原因
この例外で不適切なコンテキストとは、rollback()またはcommit()メソッドが参加リソースによってコールされた場合、unsubscribe allの実行中にアンサブスクライブ・イベントがコールされた場合、またはコール元がクライアントでない場合などです。
アクション
この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。
10. TPESVCERR
Oracle Tuxedoのtpreturn()またはtpforward()の実行中、サービス・ルーチンで例外が発生した。
 
原因
アプリケーション・レベルの障害、つまり、無効なフラグが指定されたtpreturn()またはtpforward()が呼び出された、呼出し側の記述子が無効である、戻り値が無効である、のいずれかのエラーがサービス・ルーチンから返されます。
アクション
この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。
11. TPESVCFAIL
呼出し側の応答を送信するサービス・ルーチンが、tpreturn()を呼び出し、TPFAILが返されました。
 
原因
サービス・ルーチンからアプリケーション・レベルの障害が返されます。
アクション
この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。
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サービスが入力データのタイプおよびサブタイプを認識しません。
 
原因
入力データのタイプおよびサブタイプがJoltリポジトリで定義されていません。
アクション
入力データのタイプとサブタイプをJoltリポジトリで定義する必要があります。この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。
18. TPEOTYPE
JoltRemoteServiceクラスで、Oracle Tuxedoの呼出し側が応答データのタイプおよびサブタイプを認識しません。
 
原因
出力データのタイプおよびサブタイプがJoltリポジトリで定義されていません。
アクション
出力データのタイプとサブタイプをJoltリポジトリで定義する必要があります。この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。
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例外は、次のいずれかの理由で発生します。
  • JoltSessionクラス - セッション・オブジェクトまたはメッセージIDが無効な場合、send()recv()、またはcancel()メソッドはTPEJOLTをスローします。
  • JoltSessionクラス - TPINITデータ変換が失敗するとTPEJOLTをスローします。
  • bea.jolt.pool.connectionクラス - 実行時の例外が発生するとTPEJOLTをスローします。
  • JoltRemoteService - Oracle JoltとOracle Tuxedoの間のバッファ変換が失敗した場合、リクエストされたサービスがJoltリポジトリで定義されていない場合、リクエストされたサービスが正しいバージョンではない場合、または応答データの変換が失敗した場合に、call()メソッドはTPEJOLTをスローします。
  • JoltUserEventクラス - イベント名の変換が失敗した場合、無効なメッセージIDが検出された場合、または非請求メッセージのデータ変換が失敗した場合にTPEJOLTをスローします。
アクション
この種の例外は、アプリケーションの開発時に処理しておく必要があります。この例外が本番環境で発生しないようにする必要があります。


  先頭に戻る       前  次