ネーミングサービスのメソッドCOSNAMING-NAMINGCONTEXT-RESOLVEにより、これから実行したいサーバアプリケーションのオブジェクトリファレンスを取り出します。検索したいオブジェクト名を当メソッドのパラメタとして指定します。
DATA DIVISION. WORKING-STORAGE SECTION. 01 STR-BUF PIC X(30). 01 COPY COSNAMING-NAME IN CORBA REPLACING COSNAMING-NAME BY NAME. 01 NAME-A USAGE POINTER. 01 COPY COSNAMING-NAMECOMPONENT IN CORBA REPLACING COSNAMING-NAMECOMPONENT BY NAME-COMPONENT. 01 NAME-COMPONENT-A USAGE POINTER. 01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT BY OBJ. PROCEDURE DIVISION. * オブジェクト名 MOVE FUNCTION LENG (STR-BUF) TO STRING-LENGTH. MOVE "ODdemo::calculator" TO STR-BUF. CALL "CORBA-STRING-SET" USING IDL-ID OF NAME-COMPONENT STRING-LENGTH STR-BUF. * オブジェクトのタイプ MOVE " " TO STR-BUF. CALL "CORBA-STRING-SET" USING KIND OF NAME-COMPONENT STRING-LENGTH STR-BUF. * オブジェクト名の数 MOVE 1 TO SEQ-LENGTH OF NAME. MOVE 1 TO SEQ-MAXIMUM OF NAME. * Sequenceの要素数 MOVE 1 TO NUM. * CosNamingのアクセス情報格納用のSequence領域獲得 CALL "CORBA-SEQUENCE-COSNAMING-NAMECOMPONENT-ALLOCBUF" USING SEQ-MAXIMUM OF NAME SEQ-BUFFER OF NAME. MOVE FUNCTION ADDR ( NAME ) TO NAME-A. MOVE FUNCTION ADDR ( NAME-COMPONENT ) TO NAME-COMPONENT-A. * CosNamingの要素設定 CALL "CORBA-SEQUENCE-ELEMENT-SET" USING NAME-A NUM NAME-COMPONENT-A. * サーバアプリケーションのオブジェクトリファレンスを獲得 CALL "COSNAMING-NAMINGCONTEXT-RESOLVE" USING COS-NAMING NAME ENV OBJ. MOVE "COSNAMING-NAMINGCONTEXT-RESOLVE" TO MESS. PERFORM ENV-CHECK.