Interstage Application Server メッセージ集
目次 前ページ次ページ

第2部 メッセージラベルのないメッセージ> 第24章 CORBAサービスから通知される例外情報/マイナーコード

24.1 CORBAサービスの例外情報

 CORBAサービスの例外情報を下表に示します。なお、表内で説明しているインタフェースは、C言語のインタフェースです。

システム例外

意味

発生箇所・原因と対処方法

BAD_CONTEXT

コンテキストオブジェクトの検索に失敗しました。

Contextインタフェースのメソッドに指定した識別子に誤りがあります。

Contextインタフェースのメソッドに指定した識別子に誤りがないかを確認してください。

BAD_INV_ORDER

ルーチンの呼び出しが正常ではありません。

メソッドの呼び出し順序に誤りがあります。

正しい順序でメソッドを呼び出してください。

BAD_OPERATION

オペレーションに誤りがあります。

誤ったオペレーション名のリクエストが実行されました。サーバがそのオペレーションを実装していない可能性があります。

サーバのIDLを確認し、オペレーションが存在するかを確認してください。

アプリケーションがライブラリ化されている、またはCOBOLで作成されている場合、以下の可能性があります。

  • ライブラリのロード、または関数シンボルの獲得に失敗しました。

インプリメンテーションリポジトリに登録されているライブラリのパスに誤りがある可能性があります。パスを確認してください。
 ライブラリのパスを相対パスで指定した場合は、アプリケーションが動作するディレクトリからの相対パスが正しく指定されているかを確認してください。特にCORBAワークユニットの場合は、アプリケーションが動作するディレクトリが<ワークユニット定義のカレントディレクトリ>\<ワークユニット名>\<プロセスID>(Windows(R)の場合)/<ワークユニット定義のカレントディレクトリ>/<ワークユニット名>/<プロセスID>(Solaris OE/Linuxの場合)になるため、このディレクトリからの相対パスが正しく指定されているかを確認してください。

必要なスケルトンファイルやサーバソースがリンクされていない、またはプログラム内で関数シンボルが未決となっている可能性があります。リンクに誤りがないか、未決になっている関数シンボルがないかを確認してください。


環境変数LD_LIBRARY_PATHが設定されていない可能性があります。環境変数LD_LIBRARY_PATHを確認してください。

COBOLアプリケーションの場合は、動的リンク構造(主プログラムのロード時に呼び出される関数すべてをロードする)で作成されていない可能性があります。プログラム構造を確認してください(詳細は“アプリケーション作成ガイド(CORBAサービス編)”(Enterprise EditionおよびStandard Editionで提供)の“COBOLアプリケーション使用時の注意事項”参照)。

JavaのAnyオブジェクトに対して操作を行っている場合は、以下の原因が考えられます。

  • 挿入時(insert_<type>()メソッド)に指定した<type>と抽出時(extract_<type>()メソッド)の<type>が一致していません。
  • 挿入せずに抽出が行われました。

Anyオブジェクトに対する処理を見直してください。

EJBアプリケーションを実行中の場合、接続サーバ/クライアント数、またはリクエスト数の上限に達した可能性があります。

CORBAサービスのconfigファイルの“max_IIOP_req_per_con”を大きくした後、CORBAサービスを停止・再起動してください。


C/C++のアプリケーションの場合は、すべてのシンボルをダイナミックなシンボルテーブルに追加せずに作成されている可能性があります。

サーバアプリケーション作成時のリンクオプション(ldコマンド実行時は"-E"オプション、gcc/g++コマンド実行時は"-Wl,-E"オプションが指定されているか)を確認してください。

BAD_PARAM

パラメタに誤りがあります。

以下の原因が考えられます。

  • CORBA_NVList_add_item(),CORBA_Request_add_arg()で指定されたTypeCodeオブジェクトがNULLオブジェクトです。
  • CORBA_Object_create_request()で指定されたオペレーション名がNULL文字列です。
  • CORBA_Request_add_arg()に渡されたRequestオブジェクトにNVListが設定されていません。
  • string型のパラメタがNULL文字列です。
  • その他、指定されたパラメタの型・値に誤りがあります。

パラメタに誤りがないかを確認してください。

Portable-ORB使用時、org.omg.CORBA.ORB.resolve_initial_references()メソッドにより本例外が発生した場合は、以下の原因が考えられます。

  • WWWサーバ上のPortable-ORB動作環境ファイルの配置に誤りがあります。
  • HTMLファイル内に記述されたPORB_HOMEの設定に誤りがあります。
  • initial_hostsが設定されていない、または設定内容に誤りがあります。
  • その他、initial_hostsに指定されたサーバとの通信に失敗しています。

Portable-ORBの環境設定、およびサーバ側の環境に問題がないかを確認してください。

BAD_QOS

要求されているQOSをサポートできません。

本製品では発生しません。

他社CORBA製品との接続で発生していないかを確認してください。

BAD_TYPECODE

TypeCodeに誤りがあります。

TypeCodeクラスのインタフェースの使用方法に誤りがあります。インタフェースと、その処理対象であるTypeCodeオブジェクトの種類があっていません。

インタフェースの使用方法に誤りがないかを確認してください。

CODESET_INCOMPATIBLE

コード変換ができません。

本製品では発生しません。

他社CORBA製品との接続で発生していないかを確認してください。

COMM_FAILURE

通信に失敗しました。

通信に失敗しました。

ローカルマシン内で通信に失敗した場合は、サーバアプリケーションが動作しているか以下を使用して確認してください。
 Windows(R):タスクマネージャなど
 Solaris OE/Linux:psコマンドなど

クライアントマシンで、オブジェクトリファレンスに設定されているホストマシンとの接続に問題がないかpingコマンドを使用して確認してください。

その他、ネットワークの接続に問題がないかを確認してください。

タイムアウトが発生した可能性があります。以下の原因が考えられます。

  • 送受信データ量が大きいです。
  • サーバでの処理に時間がかかっています。

接続サーバ/クライアント数、またはリクエスト数の上限に達した可能性があります。

CORBAサービスのconfigファイルの該当するパラメタ値(“period_receive_timeout”, "max_IIOP_init_con"、“max_IIOP_req_per_con”)を大きくした後、CORBAサービスを停止・再起動してください。

CONTEXT

コンテキストオブジェクトの検索に失敗しました。

Contextインタフェースのメソッドに指定した識別子に誤りがあります。

Contextインタフェースのメソッドに指定した識別子に誤りがないかを確認してください。

DATA_CONVERSION

コード変換に失敗しました。

指定された文字列にコード変換不可の文字列が存在しています。

指定した文字列、およびコード系の指定を確認してください。
 クライアント側:環境変数OD_CODE_SETの設定値
 サーバ側:OD_or_admコマンド、またはWU定義で指定したコード系

FREE_MEM

メモリが解放できません。

メモリが解放できません。

メモリの不正使用がないかを確認してください。メモリ不足が発生している場合は、不要なアプリケーションを終了させてください。

IMP_LIMIT

実装に関する制限です。

インタフェースの使用において、以下の原因が考えられます。

  • 同じプログラムでCORBA_BOA_impl_is_ready()を2回以上呼び出しました。
  • CORBA_BOA_impl_is_ready()を行わずに、CORBA_BOA_deactivate_impl()を呼び出しました。
  • CORBA_BOA_set_exception()で設定しようとした例外IDが長すぎます(最大128文字)。
  • CORBA_NVList_add_item()でNVListに追加するitemの数が多すぎます。数を減らすか、必要な数のitemを登録できるNVListを作成する必要があります。
  • 以下の未サポートのインタフェースが呼び出されました。
    • CORBA_TypeCode_param_count()
    • CORBA_TypeCode_parameter()

インタフェースの使用方法に誤りがないかを確認してください。

ネーミングサービスに登録できるネーミングコンテキストの個数が上限に達しました(上限値:ルートコンテキスト含め128)。

OD_or_admコマンドを使用して不要なネーミングコンテキストを削除してください。
 ネーミングコンテキストを削除できない場合は、isinitコマンドを使用してネーミングサービスを初期化してください。なお、本現象は、実行したアプリケーションにおいてCosNaming_NamingContext_new_context()により作成したネーミングコンテキストをCosNaming_NamingContext_bind_context()で登録しないという処理を、ネーミングコンテキスト数の上限値まで繰り返し行ったために発生した可能性があります。アプリケーションの処理を確認し、CosNaming_NamingContext_new_context()により作成したネーミングコンテキストは、必ずCosNaming_NamingContext_bind_context()で登録するようにしてください。

ネーミングサービスが生成するバインディングアイテレータの個数が上限に達しました(上限値:256)。

CosNaming_NamingContext_list()およびバインディングアイテレータインタフェースを使用している場合は、CosNaming_BindingIterator_destroy()により不要なバインディングアイテレータを破棄してください。

INITIALIZE

初期化処理が行われていません。

初期化処理CORBA_ORB_init()が行われていません。

CORBA_ORB_init()で初期化を行ってください。

JDK/JRE1.2.2およびJDK/JRE1.3を使用した場合に、CORBAクライアントのJavaライブラリ、またはCORBA環境の切替えが正しく設定されていない可能性があります。

CORBAクライアントのJavaライブラリ、CORBA環境の切替えの設定を見直してください(“アプリケーション作成ガイド(CORBAサービス編)”(Enterprise EditionおよびStandard Editionで提供)の“CORBAアプリケーションの実行”参照)。

分散トランザクション連携において、データベース連携サービスの設定が正しくない可能性があります。

データベース連携サービスの設定を見直してください。詳細は、“アプリケーション作成ガイド(データベース連携サービス編)”(Enterprise EditionおよびStandard Editionで提供)を参照してください。


プレインストール型Javaライブラリを使用している場合は、環境変数LD_LIBRARY_PATHが正しく設定されていない可能性があります。

環境変数LD_LIBRARY_PATHに“CORBAサービスのインストールディレクトリ/lib”が設定されているかを確認してください。

プレインストール型Javaライブラリを使用している場合は、使用するJDK/JREの版と環境変数CLASSPATHに指定する内容とに矛盾がある可能性があります。

環境変数CLASSPATHに以下を指定してください。
 JDK/JRE1.1で運用する場合:ODjava.jar
 JDK/JRE1.2またはJDK/JRE1.3で運用する場合:ODjava2.jar
 JDK/JRE1.4で運用する場合:ODjava4.jar

INTERNAL

CORBAサービスの内部エラーが発生しました。

odadmin_ex/odadminコマンドなどの処理で、init_svc/initial_servicesファイルの書込みに失敗しました。

CORBAサービスと通信できません。技術員に連絡してください。

ディスクに空きがない可能性があります。ディスク容量を確認してください。

INTF_REPOS

インタフェースリポジトリのアクセスでエラーが発生しました。

以下の処理で、インタフェースリポジトリのオブジェクトリファレンスを獲得できません。

  • CORBA_Object_get_interface()

インタフェースリポジトリの設定を確認してください。

INV_FLAG

フラグの指定に誤りがあります。

以下のインタフェースにおけるフラグの指定に誤りがあります。

  • CORBA_NVList_add_item()
  • CORBA_Object_create_request()
  • CORBA_Request_add_arg()
  • CORBA_Request_invoke()
  • CORBA_Request_send()
  • CORBA_Request_get_response()
  • CORBA_get_next_response()

インタフェースの使用方法を確認してください。

INV_IDENT

識別子のシンタックスが無効です。

本製品では発生しません。

他社CORBA製品との接続で発生していないかを確認してください。

INV_OBJREF

オブジェクトリファレンスに誤りがあります。

以下の関数でNULLオブジェクトが渡されました。

  • CORBA_BOA_get_id()
  • CORBA_Object_get_implementation()
  • CORBA_Object_get_interface()
  • CORBA_Object_duplicate()

正しい(NULLでない)オブジェクトを渡してください。

オブジェクトを指定するリポジトリやオブジェクト名に誤りがないかを確認してください。

アプリケーションに渡すオブジェクトに誤りがないかを確認してください。

INV_POLICY

ポリシが不正です。

本製品では発生しません。

他社CORBA製品との接続で発生していないかを確認してください。

MARSHAL

パラメタ・戻り値のマーシャリングでエラーが発生しました。

CORBA_ServerRequest_ctx()で、Contextのマーシャリングに失敗しました。

クライアントから送信されたContextデータに誤りがないかを確認してください。

Portable-ORBを使用している場合、固定長文字列パラメタに定義された長さを超えた文字数の文字列を設定して、転送した可能性があります。

固定長文字列パラメタに設定した文字列の長さを確認してください。

NO_IMPLEMENT

オペレーションの実装がありません

CORBA_BOA_impl_is_ready()に渡されたImplementationDefオブジェクトに対応するインプリメンテーション情報がインプリメンテーションリポジトリ中に見つかりませんでした。

OD_impl_instコマンドの-pオプションを使用してインプリメンテーションリポジトリの登録情報を確認してください。

イニシャルサービスLightInterfaceRepositoryを使用して以下の関数を呼び出そうとしました。

  • CORBA_Repository_lookup_id()
  • CORBA_InterfaceDef__get_RepositoryId()
  • CORBA_InterfaceDef_is_a()
  • CORBA_InterfaceDef_contents()
  • CORBA_InterfaceDef_lookup_name()
  • CORBA_Container_contents()
  • CORBA_Container_lookup_name()

上記関数を使用する場合は、イニシャルサービスInterfaceRepositoryを使用してください。また、初期環境設定時に、インタフェースリポジトリサービスの使用を有効にしてください。

キューの受付けが停止されています。

odcntlqueコマンドによりキューの受付けを開始してください。

インタフェースリポジトリサービスが未起動の状態で、以下の関数を呼び出そうとしました。

  • CORBA_Object_get_interface()

インタフェースリポジトリサービスが起動されているか確認してください。

ORBの指定に誤りがあります。

Javaアプリケーションの場合、Javaサーバアプリケーション起動時に、JDK/JRE1.2以降におけるORB切替えの設定が正しく行われていない可能性があります。“アプリケーション作成ガイド(CORBAサービス編)”(Enterprise EditionおよびStandard Editionで提供)の“CORBAアプリケーションの実行”を参照してください。

NO_MEMORY

動的メモリの獲得に失敗しました。

動的メモリの割り当てに失敗しました。

スワップの使用量を確認し、使用率が高ければ、スワップまたは実メモリを増やしてください。

NO_PERMISSION

メソッドの実行権限がありません。

本製品では発生しません。

他社CORBA製品との接続で発生していないかを確認してください。

NO_RESOURCES

リソースが不足し、リクエストを実行できません。

1つのサーバで実装可能なインタフェース数/オペレーション数を超えました。

IDLを編集し、インタフェース数/オペレーション数を減らしてください。

メモリ不足が発生しました。

実メモリやスワップを増やしてください。

プロセス多重度の上限を超えてサーバの起動を行いました。

CORBAサービスのconfigファイルの“max_exec_instance”または“max_processes”を大きくした後、CORBAサービスを停止・再起動してください。

セマフォの上限に達しました。

カーネルパラメタのセマフォの上限値を増やしてください。

受け付けたリクエスト数がキューの受付け数の上限を超えました。

odsetqueコマンドによりキューの受付け可能リクエスト数の上限値を増やしてください。

サーバで使用可能なファイルディスクリプタ数の上限を超えました。

ulimitコマンドを使用して使用可能なファイルディスクリプタ数の上限を拡張し、サーバを再起動するか、不要なクライアントアプリケーションを終了させてください。

Javaサーバおよびプレインストール型Javaクライアントの場合、接続サーバ/クライアント数、またはリクエスト数の上限に達した可能性があります。

CORBAサービスのconfigファイルの“max_IIOP_req_per_con”を大きくした後、CORBAサービスを停止・再起動してください。

NO_RESPONSE

リクエストに対する応答がありません。

本製品では発生しません。

他社CORBA製品との接続で発生していないかを確認してください。

OBJ_ADAPTER

オブジェクトの実装に関するエラーです。

CORBA_BOA_impl_is_ready()で活性化しようとしたインプリメンテーションのサーバタイプと起動方法が矛盾しています。

OD_impl_instコマンドの-pオプションを使用してインプリメンテーションリポジトリの登録情報を確認してください。

PERSIST_STORE

永続的な蓄積に失敗しました。

本製品では発生しません。

他社CORBA製品との接続で発生していないかを確認してください。

REBIND

RebindPolicyに設定されたポリシに反する状況が発生しました。

本製品では発生しません。

他社CORBA製品との接続で発生していないかを確認してください。

TIMEOUT

タイムアウトが発生しました。

本製品では発生しません。

他社CORBA製品との接続で発生していないかを確認してください。

TRANSIENT

一時的なエラーです。

同じプログラムの複数のスレッドから並列にCORBA_ORB_init()が呼び出されました。

CORBA_ORB_init()を再度呼び出してください。

UNKNOWN

CORBAサービスの初期化エラーまたは、未知の例外が発生しました。

CORBA_ORB_init()が失敗しました。

CORBAサービスが起動されているか、CORBAサービスが動作するための資源が不足していないかを確認してください。

メモリ不足の可能性があります。システムに十分な空きメモリが確保されているかを確認してください。

以下の原因が考えられます。

  • CDR関数内で未知の例外が発生しました。
  • サーバアプリケーションが異常終了しました。

パラメタに誤りがないかを確認してください。

サーバアプリケーション内で実行時の例外およびエラーが発生していないかを確認してください。

CORBAアプリケーションを停止せずに、CORBAサービスを停止/再起動しました。

CORBAサービスを停止する場合は、事前にすべてのCORBAアプリケーションを停止させてください。

プレインストール型Javaライブラリを使用している場合は、サーバアプリケーションにDefault Servantが登録されていません。

サーバアプリケーションの処理を見直し、Default Servant登録後にPOAManager.activate()を呼び出すようにしてください。


目次 前ページ次ページ

Copyright 2005 FUJITSU LIMITED