IIOP通信でエラーが発生した場合に出力される例外情報について説明します。
出力される例外のメッセージ情報と意味を確認して対処してください。
例外 | 意味 |
---|---|
BAD_CONTEXT | コンテキストオブジェクトの検索に失敗しました。 |
BAD_INV_ORDER | ルーチンの呼出しが正常ではありません。 |
BAD_OPERATION | オペレーションに誤りがあります。 |
BAD_PARAM | パラメタに誤りがあります。 |
BAD_QOS | 要求されているQOSをサポートできません。 |
BAD_TYPECODE | TypeCodeに誤りがあります。 |
CODESET_INCOMPATIBLE | コード変換ができません。 |
COMM_FAILURE | 通信に失敗しました。 |
CONTEXT | コンテキストオブジェクトの検索に失敗しました。 |
DATA_CONVERSION | コード変換に失敗しました。 |
FREE_MEM | メモリが解放できません。 |
IMP_LIMIT | 実装に関する制限です。 |
INITIALIZE | 初期化処理が行われていません。 |
INTERNAL | IIOPサービスの内部エラーが発生しました。 |
INTF_REPOS | インタフェースリポジトリのアクセスでエラーが発生しました。 |
INV_FLAG | フラグの指定に誤りがあります。 |
INV_IDENT | 識別子のシンタックスが無効です。 |
INV_OBJREF | オブジェクトリファレンスに誤りがあります。 |
INV_POLICY | ポリシーが不正です。 |
MARSHAL | パラメタ・戻り値のマーシャリングでエラーが発生しました。 |
NO_IMPLEMENT | オペレーションの実装がありません。 |
NO_MEMORY | 動的メモリの獲得に失敗しました。 |
NO_PERMISSION | メソッドの実行権限がありません。 |
NO_RESOURCES | リソースが不足し、リクエストを実行できません。 |
NO_RESPONSE | リクエストに対する応答がありません。 |
NotFound | 指定されたJNDI名に対応するサーバアプリケーションが見つかりません。javax.naming.NameNotFoundExceptionが出力されている場合、「11.75.45 その他のjava、javaxで始まる例外情報」を参照して対処してください。 |
OBJ_ADAPTER | オブジェクトの実装に関するエラーです。 |
OBJECT_NOT_EXIST | オブジェクトが存在しません。以下のような原因が考えられます。
|
PERSIST_STORE | 永続的な蓄積に失敗しました。 |
REBIND | RebindPolicyに設定されたポリシーに反する状況が発生しました。 |
TIMEOUT | タイムアウトが発生しました。 |
TRANSIENT | 一時的なエラーです。 |
UNKNOWN | IIOPサービスの初期化エラーまたは未知の例外が発生しました。 |
BAD_OPERATIONに対するマイナーコード
BAD_OPERATIONシステム例外が発生した場合、例外情報に以下のように出力されることがあります。
org.omg.CORBA.BAD_OPERATION: vmcid: SUN minor code: 232 completed: No
出力される例外のvmcidおよびminor codeの値と意味を確認して対処してください。
vmcid | minor code | 意味 | 原因・対処方法 |
---|---|---|---|
SUN | 232 | サーバアプリケーションが実装していないリモートインタフェースのメソッド呼出しが行われました。 | クライアントアプリケーションとサーバアプリケーションで使用しているリモートインタフェースが一致しているかを確認してください。 |
259 | プロパティの解析処理で、例外が発生しました。 | 直前に出力されたメッセージを参照して対処してください。 | |
1204 | 受信したリクエストの内容に、問題が検出されました。 | 送信側の保持するオブジェクト参照が不正なものである可能性があります。 | |
1405 | RMI-IIOPでリモートインタフェースを実装するスタブの呼出しに失敗しました。 | アプリケーションクライアントコンテナでセキュリティーマネージャーが有効化されています。 |
BAD_OPERATIONシステム例外の詳細や対処方法については、「11.36.14 IOP01210200番台のメッセージ」も参照してください。
minor codeは、IOP01210XXXのXXXの部分に対応します。
COMM_FAILUREに対するマイナーコード
COMM_FAILUREシステム例外が発生した場合、例外情報に以下のように出力されることがあります。
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 219 completed: Maybe
出力される例外のvmcidおよびminor codeの値と意味を確認して対処してください。
vmcid | minor code | 意味 | 原因・対処方法 |
---|---|---|---|
SUN | 201 | コネクションを作成できません。 | 指定したホスト名またはポート番号に誤りがないかを確認してください。 |
203 | コネクションが切断されたため、データの送信処理を中止しました。 | 何らかの原因によりコネクションが切断された可能性があります。 | |
208 | コネクションの切断を検出しました。 | サーバが受け付けるコネクション数の限界値を超えたためサーバからの通信が切断された可能性があります。ORBの総接続数の値を見直してください。 IIOP通信ソケットの送受信待機時間の超過等によりデータが不整合となったためコネクションが切断された可能性があります。 | |
210 | 接続先でメッセージを正しく受信できませんでした。 | 接続先で受信したデータに誤りを検出しました。 | |
211 | データの受信処理で、データの読込みが完了できませんでした。 | 何らかの原因によりコネクションが切断された可能性があります。 | |
216 | 指定されたIPアドレスおよびポート番号への接続に失敗しました。 | 指定されたアドレス(IIOPリスナーのネットワークアドレスおよびポート番号)への接続に失敗しました。 | |
218 | accept処理で入出力例外が発生しました。 | 同時に出力されている入出力例外の内容から、原因を特定して対処を行ってください。 | |
219 | サーバメソッド復帰時間に対するタイムアウトが発生しました。 | サーバ側の処理が長くかかりすぎているか、サーバ側の処理がハングアップしている場合は、サーバ側の処理を見直してください。 | |
220 | コネクション接続処理中にタイムアウトが発生しました。 | 何らかの原因によりコネクション接続に失敗しました。 | |
225 | ソケットへの書込み処理でタイムアウトが発生しました。 | com.sun.corba.ee.transport.ORBTCPTimeoutsプロパティの値を見直してください。 | |
227 | ソケットへの書込み処理中に、予期せぬ例外が発生しました。 | 何らかの原因によりコネクションが切断された可能性があります。 | |
228 | データの受信処理で例外が発生しました。 | 同時に発生しているメッセージを確認し、例外が発生した原因を取り除いてください。 | |
229 | ソケットからの読込み処理でタイムアウトが発生しました。 | com.sun.corba.ee.transport.ORBTCPTimeoutsプロパティの値を見直してください。 | |
233 | 受信データサイズが最大受信バッファサイズを超えたため、データを受信することができません。 | 最大メッセージ分割サイズが受信バッファサイズより小さくなるようにチューニングを行ってください。 | |
234 | データの受信処理で、データの読込みが完了できませんでした。 | 何らかの原因によりコネクションが切断された可能性があります。 | |
801 | キャンセルリクエストメッセージ送信時、入出力例外が発生しました。 | 同時に出力されている入出力例外の内容から、原因を特定して対処を行ってください。 |
COMM_FAILUREシステム例外の詳細や対処方法については、「11.36.6 IOP00410200番台のメッセージ」も参照してください。
minor codeは、IOP00410XXXのXXXの部分に対応します。
注意
IPCOMと連携したIIOP通信の負荷分散機能を利用している場合には、IIOPリスナーのネットワークアドレスの設定に仮想IPアドレスが指定されていないかを確認してください。
この場合、仮想ホスト名を指定する必要があります。
IPCOMと連携した通信においては通常発生しうる例外に加え、以下のCOMM_FAILUREシステム例外が発生する場合があります。
マイナーコード:0x464a0114, 0x464a0115, 0x464a0116, 0x464a0914, 0x464a0915, 0x464a0916出力時は「vmcid:」のあとに、「0xfffff000」の論理積の結果が出力されます。また、「minor code:」のあとに、「0x00000fff」の論理積の結果(10進数)が出力されます。
マイナーコード:0x464a0114の場合の出力例は以下になります。
org.omg.CORBA.COMM_FAILURE: vmcid: 0x464a0000 minor code: 276 completed: No
上記のマイナーコードは、IPCOMにおいて異常を検出した場合に復帰します(負荷分散対象のサーバがすべて停止した場合や、IPCOMで通信時の異常を検出した場合など)。
詳細については「メッセージ集」の「CORBAサービスのマイナーコード」を参照してください。
MARSHALに対するマイナーコード
MARSHALシステム例外が発生した場合、例外情報に以下のように出力されることがあります。
org.omg.CORBA MARSHAL: vmcid: SUN minor code:211 completed: Maybe
出力される例外のvmcidおよびminor codeの値と意味を確認して対処してください。
vmcid | minor code | 意味 | 原因・対処方法 |
---|---|---|---|
SUN | 211 | データ受信中に例外を検出しました。 | データ受信中に回線が切断された可能性があります。ネットワーク環境に誤りがないか、接続先がダウンしていないか、com.sun.corba.ee.transport.ORBTCPTimeoutsプロパティの値によるタイムアウトが発生していないかを確認してください。 |
MARSHALシステム例外の詳細や対処方法については、「11.36.12 IOP00810200番台のメッセージ」も参照してください。
minor codeは、IOP00810XXXのXXXの部分に対応します。
注意
IIOP通信で発生した例外情報は、java、javaxで始まる例外情報に続けて、「CORBA」で始まる文字列として出力される場合があります。
以下の例では、COMM_FAILUREシステム例外が発生しており、この情報をjava.rmi.MarshalExceptionに含めてアプリケーションに通知したことを示します。
java.rmi.MarshalException:CORBA COMM_FAILURE 1398079696 Maybe
上記の例のように、「CORBA」で始まる文字列として出力された場合の確認方法を以下に説明します。
「CORBA」で始まる文字列に含まれる10進数「1398079696」を16進数に変換(535500D0)します。
変換した値(535500D0)の上位5桁「53550」がvmcidとなります。
vmcidが「53550」の場合、「SUN」を表しています。
変換した値(535500D0)の下位3桁「0D0」を10進数に変換した値「208」がminor codeとなります。
「CORBA」に続いて出力される例外「COMM_FAILURE」の意味を確認し、vmcidがSUN、minor codeが208の対処を「COMM_FAILUREに対するマイナーコード」の表にて確認します。