Interstage Application Server リファレンスマニュアル(API編) |
目次
索引
![]() ![]() |
第4章 COBOLインタフェース | > 4.10 ネーミングサービスインタフェース | > 4.10.1 ネーミングコンテキストインタフェース |
COSNAMING-NAMINGCONTEXT-LIST
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. SYMBOLIC CONSTANT COPY SYMBOL-CONST IN CORBA. . DATA DIVISION. COPY CONST IN CORBA. 01 COPY COSNAMING-NAMINGCONTEXT IN CORBA REPLACING COSNAMING-NAMINGCONTEXT BY NC. 01 COPY LONG IN CORBA REPLACING CORBA-LONG BY HOW-MANY. 01 BL USAGE POINTER. 01 BI USAGE POINTER. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. PROCEDURE DIVISION. CALL "COSNAMING-NAMINGCONTEXT-LIST" USING NC HOW-MANY BL BI ENV.
ネーミングコンテキスト中のバインディングのリストを、最大でHOW-MANYで指定された個数分返します。HOW-MANYで指定された値が、nsconfigファイルのbl_how_manyパラメタで設定されている最大バインディング数より大きい場合、ネーミングサービスは最大bl_how_manyパラメタで指定された個数分のバインディングを返します。HOW-MANYに0が設定された場合、クライアントはバインディングにアクセスするためのBIと、長さ0のシーケンスのBLを返します。
リストはBLで指定されたCOSNAMING-BINDINGLIST構造体に設定されます。COSNAMING-BINDINGLISTは登録集で次のように宣言されています。
01 COSNAMING-BINDING. 02 BINDING-NAME. 03 COPY LONG IN CORBA REPLACING CORBA-LONG BY SEQ-MAXIMUM. 03 COPY LONG IN CORBA REPLACING CORBA-LONG BY SEQ-LENGTH. 03 SEQ-BUFFER USAGE IS POINTER. 02 COPY ENUM IN CORBA REPLACING CORBA-ENUM BY BINDING-TYPE. 88 COSNAMING-NOBJECT VALUE 0. 88 COSNAMING-NCONTEXT VALUE 1. 01 COPY ENUM IN CORBA REPLACING CORBA-ENUM BY COSNAMING-BINDINGTYPE. 88 COSNAMING-NOBJECT VALUE 0. 88 COSNAMING-NCONTEXT VALUE 1. 01 COSNAMING-BINDINGLIST. 02 SEQ-MAXIMUM PIC 9(9) COMP-5. 02 SEQ-LENGTH PIC 9(9) COMP-5. 02 SEQ-BUFFER USAGE IS POINTER.
ネーミングコンテキスト内のバインディングの数がHOW-MANYで指定された数よりも多い場合、ネーミングコンテキスト内での現在の位置を示すオブジェクトが生成され、このオブジェクトリファレンスがBIに返されます。このオブジェクトをバインディングアイテレータといいます。BIに返されたオブジェクトリファレンスは、COSNAMING-BINDINGITERATOR-NEXT-ONE関数およびCOSNAMING-BINDINGITERATOR-NEXT-N関数の呼び出し時に使用します。
NCには、CORBA-ORB-RESOLVE-INITIAL-REFERENCES関数で得たネーミングサービスのオブジェクトリファレンス(ネーミングサービスの初期ネーミングコンテキストを示す)、またはCOSNAMING-NAMINGCONTEXT-NEW-CONTEXT関数で作成したネーミングコンテキストのオブジェクトリファレンスを指定します。
本関数はバインディングアイテレータおよびバインディングリストを格納する領域を獲得するため、これらの領域が不要になった時点で、COSNAMING-NAMINGCONTEXT-DESTROY関数およびCORBA-FREE関数を使用して領域を解放する必要があります。
正常終了した場合は、ENV構造体のMAJORにCORBA-NO-EXCEPTIONが設定されます。
異常終了した場合は、ENV構造体のMAJORにCORBA-SYSTEM-EXCEPTIONが設定され、IDとMINORに詳細情報が設定されます。IDとMINORの意味については、"メッセージ集"の"CORBAサービスから通知される例外情報/マイナーコード"を参照してください。
目次
索引
![]() ![]() |