Interstage Application Server アプリケーション作成ガイド (イベントサービス編) |
目次
索引
![]() ![]() |
第8章 アプリケーションの開発(COBOL) |
COBOLでのPullモデルのアプリケーションの開発について説明します。
Linuxシステムでは、COBOLはWindows(R)クライアントだけで使用可能であるため、Pullモデルを使用できません。
コンシューマがサプライヤからイベントデータを受信する場合、イベントチャネル上のCOSEVENTCHANNELADMIN-PROXYPULLSUPPLIER-PULLメソッドを呼び出します。イベントチャネルは、ユーザがサプライヤ上に作成したSERVER-COSEVENTCOMM-PULLSUPPLIER-PULLメソッドを呼び出します。その概要を以下に示します。
サプライヤはイベントチャネルからイベントデータの要求を受け取るために、SERVER-COSEVENTCOMM-PULLSUPPLIER-PULLメソッドを実装します。
イベントチャネルはサプライヤ上のSERVER-COSEVENTCOMM-PULLSUPPLIER-PULLメソッドを呼び出し、サプライヤにイベントデータを要求します。サプライヤのSERVER-COSEVENTCOMM-PULLSUPPLIER-PULLメソッドを実装するまでの手続き例と処理の流れを以下に説明します。
[COBOLによるPullモデルのサプライヤ]
PROGRAM-ID. "FUNC". ... CALL "COSEVENTCHANNELADMIN-EVENTCHANNEL-FOR-SUPPLIERS" USING EVENTCHOBJ ENV SUPPLIER. /* 1 */ CALL "COSEVENTCHANNELADMIN-SUPPLIERADMIN-OBTAIN-PULL-CONSUMER" USING SUPPLIER ENV PROXYPULL. /* 2 */ CALL "COSEVENTCHANNELADMIN-PROXYPULLCONSUMER-CONNECT-PULL-SUPPLIER" USING PROXYSUPPLIER MY-OBJ ENV. /* 3 */ ... END PROGRAM "FUNC". PROGRAM-ID. "SERVER-COSEVENTCOMM-PULLSUPPLIER-PULL". /* 4 */ ... LINKAGE SECTION. 01 COPY PROXYPULLSUPPLIER IN COSEVENTCOMM REPLACING COSEVENTCHANNELADMIN-PROXYP002 BY OBJ. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 SENDDATA USAGE POINTER. PROCEDURE DIVISION USING OBJ ENV EVDATA. ... /* アプリケーションの処理 */ ... EXIT PROGRAM. END PROGRAM "SERVER-COSEVENTCOMM-PULLSUPPLIER-PULL".
コンシューマからイベントチャネルへイベントデータを要求する手続き例と処理の流れを以下に説明します。
[COBOLによるPullモデルのコンシューマ]
PROGRAM-ID. "FUNC". ... CALL "COSEVENTCHANNELADMIN-EVENTCHANNEL-FOR-CONSUMERS" USING EVENTCHOBJ ENV CONSUMER. /* 1 */ CALL "COSEVENTCHANNELADMIN-CONSUMERADMIN-OBTAIN-PULL-SUPPLIER" USING CONSUMER ENV PROXYPULL. /* 2 */ CALL "COSEVENTCHANNELADMIN-PROXYPULLSUPPLIER-CONNECT-PULL-CONSUMER" USING PROXYPULL PROXYPULL ENV. /* 3 */ CALL "COSEVENTCHANNELADMIN-PROXYPULLSUPPLIER-PULL" USING PROXYPULL ENV EVDATA. /* 4 */ CALL "COSEVENTCHANNELADMIN-PROXYCONSUMER-DISCONNECT-PULL-SUPPL" USING PROXYPULL ENV. /* 5 */ ... END PROGRAM "FUNC".
コンシューマはサプライヤからイベントデータを待ち合わせて引き出すには下記のメソッドを使用します。イベントチャネルからイベントデータを取り出し、CORBA-ANY型の復帰値を返します。イベントチャネルからイベントデータの取り出しが可能になるか、または例外が発生するまでブロックされます。COSEVENTCHANNELADMIN-PROXYPULLSUPPLIERはCOSEVENTCOMM-PULLSUPPLIERを継承しています。
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. SYMBOLIC CONSTANT COPY SYMBOL-CONST IN CORBA. DATA DIVISION. WORKING-STORAGE SECTION. COPY CONST IN COSEVENTCOMM. 01 COPY PULLSUPPLIER IN COSEVENTCOMM REPLACING COSEVENTCHANNELADMIN-PULLSUPPLIER BY OBJ. COPY CONST IN CORBA. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 EVDATA USAGE IS POINTER. PROCEDURE DIVISION. CALL "COSEVENTCHANNELADMIN-PROXYPULLSUPPLIER-PULL" USING OBJ ENV EVDATA.
コンシューマはサプライヤからイベントデータを待ち合わせないで引き出すには下記のメソッドを使用します。イベントチャネルからイベントデータを取り出し、CORBA-ANY型の復帰値を返します。イベントチャネルからイベントデータを取り出せない場合は即座に復帰します。イベントデータが取り出せた場合は、HASEVENTにCORBA-TRUEが設定されます。イベントデータを取り出せなかった場合はHASEVENTにCORBA-FALSEが設定されます。COSEVENTCHANNELADMIN-PROXYPULLSUPPLIERはCOSEVENTCOMM-PULLSUPPLIERを継承しています。
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SPECIAL-NAMES. SYMBOLIC CONSTANT COPY SYMBOL-CONST IN CORBA. DATA DIVISION. WORKING-STORAGE SECTION. COPY CONST IN COSEVENTCOMM. 01 COPY PULLSUPPLIER IN COSEVENTCOMM REPLACING COSEVENTCHANNELADMIN-PROXYPULLSUPPLIER BY OBJ. COPY CONST IN CORBA. 01 COPY BOOLEAN IN CORBA REPLACING CORBA-BOOLEAN BY HASEVENT. 01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV. 01 EVDATA USAGE IS POINTER. PROCEDURE DIVISION. CALL "COSEVENTCHANNELADMIN-PROXYPULLSUPPLIER-TRY-PULL" USING OBJ HASEVENT ENV EVDATA.
目次
索引
![]() ![]() |