Interstage Application Server メッセージ集 |
目次 |
第3部 メッセージラベルのないメッセージ | > 第32章 CORBAサービスから通知される例外情報/マイナーコード |
CORBAサービスの例外情報を下表に示します。なお、表内で説明しているインタフェースは、C言語のインタフェースです。
システム例外 |
意味 |
発生箇所・原因と対処方法 |
---|---|---|
BAD_CONTEXT |
コンテキストオブジェクトの検索に失敗しました。 |
Contextインタフェースのメソッドに指定した識別子に誤りがあります。 → Contextインタフェースのメソッドに指定した識別子に誤りがないかを確認してください。 |
BAD_INV_ORDER |
ルーチンの呼び出しが正常ではありません。 |
メソッドの呼び出し順序に誤りがあります。 → 正しい順序でメソッドを呼び出してください。 |
BAD_OPERATION |
オペレーションに誤りがあります。 |
誤ったオペレーション名のリクエストが実行されました。サーバがそのオペレーションを実装していない可能性があります。 → サーバのIDLを確認し、オペレーションが存在するかを確認してください。 |
アプリケーションがライブラリ化されている、またはCOBOLで作成されている場合、以下の可能性があります。
→ インプリメンテーションリポジトリに登録されているライブラリのパスに誤りがある可能性があります。パスを確認してください。 → 必要なスケルトンファイルやサーバソースがリンクされていない、またはプログラム内で関数シンボルが未決となっている可能性があります。リンクに誤りがないか、未決になっている関数シンボルがないかを確認してください。 → COBOLアプリケーションの場合は、動的リンク構造(主プログラムのロード時に呼び出される関数すべてをロードする)で作成されていない可能性があります。プログラム構造を確認してください(詳細は“アプリケーション作成ガイド(CORBAサービス編)”(Enterprise EditionおよびStandard Editionで提供)の“COBOLアプリケーション使用時の注意事項”参照)。 |
||
JavaのAnyオブジェクトに対して操作を行っている場合は、以下の原因が考えられます。
→ Anyオブジェクトに対する処理を見直してください。 |
||
EJBアプリケーションを実行中の場合、接続サーバ/クライアント数、またはリクエスト数の上限に達した可能性があります。 → CORBAサービスのconfigファイルの“max_IIOP_local_init_requests”、 “limit_of_max_IIOP_resp_requests”を大きくした後、CORBAサービスを停止・再起動してください。なお、接続先のサーバに旧バージョンのInterstageがインストールされている場合、サーバにインストールされているInterstage用のマニュアルを参照して対処を行ってください。 |
||
→ サーバアプリケーション作成時のリンクオプション(ldコマンド実行時は"-E"オプション、gcc/g++コマンド実行時は"-Wl,-E"オプションが指定されているか)を確認してください。 |
||
BAD_PARAM |
パラメタに誤りがあります。 |
以下の原因が考えられます。
→ パラメタに誤りがないかを確認してください。 |
Portable-ORB使用時、org.omg.CORBA.ORB.resolve_initial_references()メソッドにより本例外が発生した場合は、以下の原因が考えられます。
→ Portable-ORBの環境設定、およびサーバ側の環境に問題がないかを確認してください。 |
||
BAD_QOS |
要求されているQOSをサポートできません。 |
本製品では発生しません。 → 他社CORBA製品との接続で発生していないかを確認してください。 |
BAD_TYPECODE |
TypeCodeに誤りがあります。 |
TypeCodeクラスのインタフェースの使用方法に誤りがあります。インタフェースと、その処理対象であるTypeCodeオブジェクトの種類があっていません。 → インタフェースの使用方法に誤りがないかを確認してください。 |
CODESET_INCOMPATIBLE |
コード変換ができません。 |
本製品では発生しません。 → 他社CORBA製品との接続で発生していないかを確認してください。 |
COMM_FAILURE |
通信に失敗しました。 |
通信に失敗しました。 → ローカルマシン内で通信に失敗した場合は、サーバアプリケーションが動作しているか以下を使用して確認してください。 → クライアントマシンで、オブジェクトリファレンスに設定されているホストマシンとの接続に問題がないかpingコマンドを使用して確認してください。 → その他、ネットワークの接続に問題がないかを確認してください。 |
タイムアウトが発生した可能性があります。以下の原因が考えられます。
接続サーバ/クライアント数、またはリクエスト数の上限に達した可能性があります。 → CORBAサービスのconfigファイルの該当するパラメタ値(“period_receive_timeout”, "max_IIOP_local_init_con"、“max_IIOP_local_init_requests”)を大きくした後、CORBAサービスを停止・再起動してください。 |
||
マルチスレッドで動作しているアプリケーションにおいて、あるスレッドからCORBA_ORB_net_disconnect関数を発行しているためにコネクションが切断され、同コネクションを使用している別スレッドで本例外が発生している可能性があります。 → 別スレッドでCORBA_ORB_net_disconnect関数を発行しないでください。 |
||
クライアントアプリケーションにおいて、サーバアプリケーション呼び出しに使用するオブジェクトリファレンスが不当な可能性があります。 → 解放済みのオブジェクトリファレンスを使用していないか確認してください。 例: CORBA_Environment e; CORBA_Object obj = CosNaming_NamingContext_resolve(...): /* サーバオブジェクトの取得 */ ... CORBA_Object_release(obj, &e); /* サーバオブジェクトの解放 */ test1_intf1_add(obj, ...); /* NG!! 解放済みのサーバオブジェクトを使用 */ なお、CORBAのJava言語インタフェースを使用している場合は、アプリケーションのユーザ実装クラスでオーバライドしたfinalize()メソッド内でCORBA通信処理を行い、そこで解放済みのオブジェクトリファレンスを使用している可能性があります。 → finalize()メソッド内での、CORBA通信は行わないでください。 |
||
CONTEXT |
コンテキストオブジェクトの検索に失敗しました。 |
Contextインタフェースのメソッドに指定した識別子に誤りがあります。 → Contextインタフェースのメソッドに指定した識別子に誤りがないかを確認してください。 |
DATA_CONVERSION |
コード変換に失敗しました。 |
指定された文字列にコード変換不可の文字列が存在しています。(configファイルの"undefined_char_conversion"パラメタの値が"fail"の場合、コード変換の対象に未定義文字が含まれている可能性があります。) → 指定した文字列、およびコード系の指定を確認してください。 |
FREE_MEM |
メモリが解放できません。 |
メモリが解放できません。 → メモリの不正使用がないかを確認してください。メモリ不足が発生している場合は、不要なアプリケーションを終了させてください。 |
IMP_LIMIT |
実装に関する制限です。 |
インタフェースの使用において、以下の原因が考えられます。
→ インタフェースの使用方法に誤りがないかを確認してください。 |
ネーミングサービスに登録できるネーミングコンテキストの個数が上限に達しました(上限値:ルートコンテキスト含め128)。 → ネーミングコンテキストの数を減らしてください。 |
||
ネーミングサービスが生成するバインディングアイテレータの個数が上限に達しました(上限値:256)。 → CosNaming_NamingContext_list()およびバインディングアイテレータインタフェースを使用している場合は、CosNaming_BindingIterator_destroy()により不要なバインディングアイテレータを破棄してください。 |
||
INITIALIZE |
初期化処理が行われていません。 |
初期化処理CORBA_ORB_init()が行われていません。 → CORBA_ORB_init()で初期化を行ってください。 |
JDK/JRE1.2.2、JDK/JRE1.3およびJDK/JRE1.4を使用した場合に、CORBAクライアントのJavaライブラリ、またはCORBA環境の切替えが正しく設定されていない可能性があります。 → CORBAクライアントのJavaライブラリ、CORBA環境の切替えの設定を見直してください(“アプリケーション作成ガイド(CORBAサービス編)”(Enterprise EditionおよびStandard Editionで提供)の“CORBAアプリケーションの実行”参照)。 |
||
分散トランザクション連携において、データベース連携サービスの設定が正しくない可能性があります。 → データベース連携サービスの設定を見直してください。詳細は、“アプリケーション作成ガイド(データベース連携サービス編)”(Enterprise EditionおよびStandard Editionで提供)を参照してください。 |
||
→ 環境変数LD_LIBRARY_PATHに“CORBAサービスのインストールディレクトリ/lib”が設定されているかを確認してください。 |
||
プレインストール型Javaライブラリを使用している場合は、使用するJDK/JREの版と環境変数CLASSPATHに指定する内容とに矛盾がある可能性があります。 → 環境変数CLASSPATHに以下を指定してください。 |
||
INTERNAL |
CORBAサービスの内部エラーが発生しました。 |
odadmin_ex/odadminコマンドなどの処理で、init_svc/initial_servicesファイルの書込みに失敗しました。 → CORBAサービスと通信できません。iscollectinfoコマンドを使用して調査情報を採取した後、技術員に連絡してください。 → ディスクに空きがない可能性があります。ディスク容量を確認してください。 |
INTF_REPOS |
インタフェースリポジトリのアクセスでエラーが発生しました。 |
以下の処理で、インタフェースリポジトリのオブジェクトリファレンスを獲得できません。
→ インタフェースリポジトリの設定を確認してください。 |
INV_FLAG |
フラグの指定に誤りがあります。 |
以下のインタフェースにおけるフラグの指定に誤りがあります。
→ インタフェースの使用方法を確認してください。 |
INV_IDENT |
識別子のシンタックスが無効です。 |
本製品では発生しません。 → 他社CORBA製品との接続で発生していないかを確認してください。 |
INV_OBJREF |
オブジェクトリファレンスに誤りがあります。 |
以下の関数でNULLオブジェクトが渡されました。
→ 正しい(NULLでない)オブジェクトを渡してください。 |
→ オブジェクトを指定するリポジトリやオブジェクト名に誤りがないかを確認してください。 → アプリケーションに渡すオブジェクトに誤りがないかを確認してください。 |
||
以下の関数が同一のobjに対して、複数回呼び出されました。
→上記関数が複数回呼び出されていないかを確認してください。 |
||
INV_POLICY |
ポリシが不正です。 |
本製品では発生しません。 → 他社CORBA製品との接続で発生していないかを確認してください。 |
MARSHAL |
パラメタ・戻り値のマーシャリングでエラーが発生しました。 |
CORBA_ServerRequest_ctx()で、Contextのマーシャリングに失敗しました。 → クライアントから送信されたContextデータに誤りがないかを確認してください。 |
Portable-ORBを使用している場合、固定長文字列パラメタに定義された長さを超えた文字数の文字列を設定して、転送した可能性があります。 → 固定長文字列パラメタに設定した文字列の長さを確認してください。 |
||
EJBアプリケーションを実行中の場合、クライアントとサーバとの間で転送対象オブジェクトのクラス版数が異なるか、または必要なクラスが存在していない可能性があります。 → クライアントとサーバのそれぞれの環境において、配置されたオブジェクトに誤りがないかを確認してください。 |
||
NO_IMPLEMENT |
オペレーションの実装がありません |
CORBA_BOA_impl_is_ready()に渡されたImplementationDefオブジェクトに対応するインプリメンテーション情報がインプリメンテーションリポジトリ中に見つかりませんでした。 → OD_impl_instコマンドの-pオプションを使用してインプリメンテーションリポジトリの登録情報を確認してください。 |
イニシャルサービスLightInterfaceRepositoryを使用して以下の関数を呼び出そうとしました。
→ 上記関数を使用する場合は、イニシャルサービスInterfaceRepositoryを使用してください。また、初期環境設定時に、インタフェースリポジトリサービスの使用を有効にしてください。 |
||
キューの受付けが停止されています。 → odcntlqueコマンドによりキューの受付けを開始してください。 → サーバアプリケーションがワークユニット配下で動作している場合は、ispermitqueコマンドによりキューの受付けを開始してください。 |
||
インタフェースリポジトリサービスが未起動の状態で、以下の関数を呼び出そうとしました。
→ インタフェースリポジトリサービスが起動されているかを確認してください。 |
||
未起動のサーバアプリケーションに対してリクエストを発行しました。 → サーバアプリケーションが起動されているかを確認してください。 |
||
未サポート機能を使用しようとしました。 → アプリケーションプログラムに問題ないかを確認してください。 |
||
環境変数CLASSPATHの設定内容に誤りがあります。 → Javaアプリケーションの場合、使用するJDK/JREの版と環境変数CLASSPATHに指定する内容とに矛盾があります。 |
||
以下のサービスが起動されていない状態で、以下のサービスのアプリケーションインタフェースを呼び出そうとしました。
→ 上記のサービスが起動されているかを確認してください。 |
||
ORBの指定に誤りがあります。 → Javaアプリケーションの場合、Javaサーバアプリケーション起動時に、JDK/JRE1.2以降におけるORB切替えの設定が正しく行われていない可能性があります。“アプリケーション作成ガイド(CORBAサービス編)”(Enterprise EditionおよびStandard Editionで提供)の“CORBAアプリケーションの実行”を参照してください。 |
||
NO_MEMORY |
動的メモリの獲得に失敗しました。 |
動的メモリの割り当てに失敗しました。 → スワップの使用量を確認し、使用率が高ければ、スワップまたは実メモリを増やしてください。 |
NO_PERMISSION |
メソッドの実行権限がありません。 |
本製品では発生しません。 → 他社CORBA製品との接続で発生していないかを確認してください。 |
NO_RESOURCES |
リソースが不足し、リクエストを実行できません。 |
1つのサーバで実装可能なインタフェース数/オペレーション数を超えました。 → IDLを編集し、インタフェース数/オペレーション数を減らしてください。 |
メモリ不足が発生しました。 → 実メモリやスワップを増やしてください。 |
||
プロセス多重度の上限を超えてサーバの起動を行いました。 → odlistprocコマンドを使用して、意図しないアプリケーションが残存していないかを確認してください。 |
||
セマフォの上限に達しました。 → カーネルパラメタのセマフォの上限値を増やしてください。 |
||
受け付けたリクエスト数がキューの受付け数の上限を超えました。 → odsetqueコマンドによりキューの受付け可能リクエスト数の上限値を増やしてください。 |
||
サーバで使用可能なファイルディスクリプタ数の上限を超えました。 → ulimitコマンドを使用して使用可能なファイルディスクリプタ数の上限を拡張し、サーバを再起動するか、不要なクライアントアプリケーションを終了させてください。 |
||
Javaサーバおよびプレインストール型Javaクライアントの場合、接続サーバ/クライアント数、またはリクエスト数の上限に達した可能性があります。 → CORBAサービスのconfigファイルの“max_IIOP_local_init_requests”、 “limit_of_max_IIOP_resp_requests”を大きくした後、CORBAサービスを停止・再起動してください。なお、接続先のサーバに旧バージョンのInterstageがインストールされている場合、サーバにインストールされているInterstage用のマニュアルを参照して対処を行ってください。 |
||
CORBA_BOA_impl_is_ready()でサーバアプリケーションを活性化しようとした際に、スレッド初期多重度分のスレッド生成に失敗した可能性があります。 → システムログにod10916メッセージが出力されていないか確認してください。対処についてはod10916の記事を参照してください。 |
||
NO_RESPONSE |
リクエストに対する応答がありません。 |
本製品では発生しません。 → 他社CORBA製品との接続で発生していないかを確認してください。 |
OBJ_ADAPTER |
オブジェクトの実装に関するエラーです。 |
CORBA_BOA_impl_is_ready()で活性化しようとしたインプリメンテーションのサーバタイプと起動方法が矛盾しています。 → OD_impl_instコマンドの-pオプションを使用してインプリメンテーションリポジトリの登録情報を確認してください。 |
POAManager.activate()で活性化しようとしたインプリメンテーションのサーバタイプと起動方法が矛盾しています。 → 環境変数OD_IMPLIDを使用したインプリメンテーションリポジトリIDを指定している場合には、環境変数OD_IMPLIDの設定内容に誤りがないかを確認してください。 → POA作成時のアダプタ名として指定したインプリメンテーションリポジトリIDまたはインタフェースリポジトリIDに誤りがないかを確認してください。 |
||
ServantManager、AdapterActivator、またはデフォルトサーバントが登録されていません。 → アプリケーションプログラムで、POAのポリシの設定に誤りがないかを確認してください。 |
||
オブジェクトリファレンスを生成したサーバプロセスと異なるサーバプロセスが呼び出されました。 → オブジェクトリファレンスを生成したサーバプロセスが終了していないかを確認してください。終了していた場合は、新しいサーバプロセス上でオブジェクトリファレンスを再生成してください。 |
||
OBJECT_NOT_EXIST |
オブジェクトが存在しません。 |
ネーミングコンテキストインタフェースおよびネーミングコンテキスト拡張インタフェースを使用する際に、対象のネーミングコンテキストが存在しません。 → 対象のネーミングコンテキストのバインディングをOD_or_adm(-zオプション)コマンドを使用して削除し、再度ネーミングコンテキストを登録してください。 |
PERSIST_STORE |
永続的な蓄積に失敗しました。 |
本製品では発生しません。 → 他社CORBA製品との接続で発生していないかを確認してください。 |
REBIND |
RebindPolicyに設定されたポリシに反する状況が発生しました。 |
本製品では発生しません。 → 他社CORBA製品との接続で発生していないかを確認してください。 |
TIMEOUT |
タイムアウトが発生しました。 |
本製品では発生しません。 → 他社CORBA製品との接続で発生していないかを確認してください。 |
TRANSIENT |
一時的なエラーです。 |
同じプログラムの複数のスレッドから並列にCORBA_ORB_init()が呼び出されました。 → CORBA_ORB_init()を再度呼び出してください。 |
UNKNOWN |
CORBAサービスの初期化エラーまたは、未知の例外が発生しました。 |
CORBA_ORB_init()が失敗しました。 → CORBAサービスが起動されているか、CORBAサービスが動作するための資源が不足していないかを確認してください。 → メモリ不足の可能性があります。システムに十分な空きメモリが確保されているかを確認してください。 → Red Hat Enterprise Linux AS (v. 3)/Red Hat Enterprise Linux ES (v. 3)において、LinuxThreads実装を使用した環境で動作させている可能性があります。NPTL実装を使用した環境で動作させているかを確認してください。 |
以下の原因が考えられます。
→ パラメタに誤りがないかを確認してください。 → サーバアプリケーション内で実行時の例外およびエラーが発生していないかを確認してください。 |
||
CORBAアプリケーションを停止せずに、CORBAサービスを停止/再起動しました。 → CORBAサービスを停止する場合は、事前にすべてのCORBAアプリケーションを停止させてください。 |
||
プレインストール型Javaライブラリを使用している場合は、サーバアプリケーションにDefault Servantが登録されていません。 → サーバアプリケーションの処理を見直し、Default Servant登録後にPOAManager.activate()を呼び出すようにしてください。 |
目次 |