完了状況およびマイナー・コード
以下の 2 つのデータはそれぞれのシステム例外に関連付けられており、このセクションで説明します。
- 完了状況。COMPLETED_YES、COMPLETED_NO、および COMPLETED_MAYBE という 3 つの値を持つ列挙型データです。 これらの値は、操作が完全に実行されたこと、操作が実行されなかったこと、あるいは実行状態が判断できないことのいずれかを示します。
- マイナー・コード。ORB のいくつかのベンダー固有値に設定できる長整数です。 CORBA でも、多数のマイナー・コードの値を指定します。
通常、完了状況はあまり役に立ちません。 ただし、スタック・トレースがないときは、このマイナー・コードが不可欠になる場合があります。 多くの場合、マイナー・コードによって、例外がスローされた ORB コードの正確な位置が特定されるため、ベンダーのサービス・チームはマイナー・コードを使用して、問題の場所を迅速に突き止めることができます。 ただし、CORBA の標準的なマイナー・コードの場合、これが常に可能なわけではありません。 例:
org.omg.CORBA.OBJECT_NOT_EXIST: SERVANT_NOT_FOUND minor code: 4942FC11 completed: Noマイナー・コードは通常、4 つのバイトを表す 16 進表記 (Oracle の 10 進表記のマイナー・コードを除く) で表現されます。 OMG 組織によって、各ベンダーに広範囲の 4096 マイナー・コードが割り当てられています。 IBM® ベンダー固有のマイナー・コード範囲は、 0x4942F000 から 0x4942FFFFです。 CORBA マイナー・コード は、共通マイナー・コードの診断情報を提供します。
システム例外には、例外およびその他の役立つ情報が記述されたストリングが含まれる場合もあります。 スタック・トレースを解釈する際にこのストリングを参照してください。
ORB は、すべての Java 例外を CORBA 例外にマップする傾向があります。 ランタイム例外は CORBA システム例外にマップされますが、チェック例外は CORBA のユーザー例外にマップされます。
コード・バグでは、CORBA 例外以外のさらに多くの例外が ORB コンポーネントによって生成される場合があります。 すべての Java チェックなし例外とエラー、および ORB ツール rmic および idlj に関連するその他の例外とエラーを考慮する必要があります。 このような場合に、問題が ORB にあるかどうかを判断する唯一の方法は、生成されたスタック・トレースを調べ、関係のあるオブジェクトが ORB パッケージに含まれているかどうかを確認することです。