Interstage Application Server アプリケーション作成ガイド (イベントサービス編)
目次 索引 前ページ次ページ

第8章 アプリケーションの開発(COBOL)

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

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

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