Interstage Application Server リファレンスマニュアル(API編)
目次 索引 前ページ次ページ

第4章 COBOLインタフェース> 4.10 ネーミングサービスインタフェース> 4.10.1 ネーミングコンテキストインタフェース

4.10.1.10 COSNAMING-NAMINGCONTEXT-LIST

名前

 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サービスから通知される例外情報/マイナーコード"を参照してください。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2007