| 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.
目次
索引
![]()
|