ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(イベントサービス編)

8.5 イベントチャネルのオブジェクトリファレンスの獲得

  イベントチャネルのメソッドを呼び出すために、アプリケーションはイベントチャネルのオブジェクトリファレンスを獲得します。イベントチャネルのオブジェクトリファレンスは静的生成と動的生成により獲得の方法が異なります。


  静的生成

  イベントチャネル生成コマンド(esmkchnlコマンド)によりオブジェクトリファレンスがネーミングサービスに登録されています。アプリケーションからネーミングサービスを使用して獲得します。

  動的生成

  イベントファクトリのCREATEメソッドの復帰値としてオブジェクトリファレンスを獲得します。


  静的生成によりネーミングサービスに格納されているオブジェクトリファレンスを獲得する例を以下に示します。アプリケーションは、ネーミングサービスにチャネル名を問い合わせ、イベントチャネルを獲得します。


  ネーミングサービスから登録名「GROUP::CHANNEL」のオブジェクトリファレンスを獲得する場合

01 COPY COSNAMING-NAMINGCONTEXT IN CORBA REPLACING COSNAMING-NAMINGCONTEXT BY COS-NAMING.
01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT                   BY ENV. 
01 COPY COSNAMING-NAME IN CORBA REPLACING COSNAMING-NAME                   BY NAME. 
01 COPY COSNAMING-NAMECOMPONENT IN CORBA REPLACING COSNAMING-NAMECOMPONENT BY NAME-COMPONENT. 
01 COPY OBJECT IN CORBA REPLACING CORBA-OBJECT                             BY EVENT-CH. 

     MOVE "GROUP::CHANNEL" 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

     CALL "CORBA-SEQUENCE-COSNAMING-NAMECOMPONENT-ALLOCBUF" USING
           SEQ-MAXIMUM OF NAME
           SEQ-BUFFER OF NAME

     CALL "COSNAMING-NAMINGCONTEXT-RESOLVE" USING
           COS-NAMING
           NAME
           ENV
           EVENT-CH