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

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

8.7 ローカルトランザクション

[COBOLによるMixedモデルのローカルトランザクションのサプライヤ]

  01 COPY NOTIFYEVENTCHANNEL IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-EVENTCHA BY EVENT-CHNL.
  01 COPY UTILTYPE IN COSEVENTCOMM REPLACING COSEVENTCHANNELADMIN-EVENTC001 BY UTIL-TYPE.
  01 COPY CHANNELUTIL IN COSEVENTCOMM REPLACING ES-CHANNELUTIL BY CHNLUTIL.
  01 COPY NOTIFYSUPPLIERADMIN IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-SUPPLIER BY ADMIN-SUPP.
  01 COPY NOTIFYSTRUCTUREDPROXYPUSHCON IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-STRUCTUR BY STRPROXYPUSHCON.
  01 COPY CLIENTTYPE IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-CLIENTTY BY CLTYPE.
  01 COPY ENVIRONMENT IN CORBA REPLACING CORBA-ENVIRONMENT BY ENV.

  SET  COSEVENTCHANNELADMIN-EVENTCHAN OF UTIL-TYPE TO TRUE.
  CALL "COSEVENTCHANNELADMIN-EVENTCHANNEL-CREATE-UTIL" USING
          EVENT-CHNL
          UTIL-TYPE
          ENV
          CHNLUTIL.   /* 1 */
  CALL "COSNOTIFYCHANNELADMIN-EVENTCHANNEL--GET-DEFAULT-SUPPLIER-ADMIN" USING
          EVENT-CHNL
          ENV
          ADMIN-SUPP. /* 2 */
  SET COSNOTIFYCHANNELADMIN-STRUCTUR OF CLTYPE TO TRUE.
  CALL "COSNOTIFYCHANNELADMIN-SUPPLIERADMIN-OBTAIN-NOTIFICATION-PUSH-CONSUMER" USING
          ADMIN-SUPP
          CLTYPE
          PROXYID
          ENV
          STRPROXYPUSHCON. /* 3 */
  CALL "COSNOTIFYCHANNELADMIN-STRUCTUREDPROXYPUSHCONSUMER-CONNECT-STRUCTURED-PUSH-SUPPLIER" USING
          STRPROXYPUSHCON
          CORBA-OBJECT-NIL
          ENV. /* 4 */
  CALL "ES-CHANNELUTIL-LOCAL-BEGIN" USING
          CHNLUTIL
          STRPROXYPUSHCON. /* 5 */
  CALL "COSNOTIFYCHANNELADMIN-STRUCTUREDPROXYPUSHCONSUMER-PUSH-STRUCTURED-EVENT" USING
          STRPROXYPUSHCON
          STREVENT
          ENV. /* 6 */
  CALL "ES-CHANNELUTIL-LOCAL-COMMIT" USING
          CHNLUTIL
          STRPROXYPUSHCON. /* 7 */
  CALL "COSNOTIFYCHANNELADMIN-STRUCTUREDPROXYPUSHCONSUMER-DISCONNECT-STRUCTURED-PUSH-CONSUMER" USING
          STRPROXYPUSHCON
          ENV. /* 8 */
  1. ChannelUtilインタフェースのオブジェクトリファレンスを獲得します。
  2. イベントチャネル管理オブジェクトのオブジェクトリファレンスを獲得します。
  3. イベントチャネルのオブジェクトリファレンスを獲得します。
  4. イベントチャネルと接続します。
  5. ローカルトランザクションを開始します。
  6. イベントチャネルにイベントデータを送信します。
  7. ローカルトランザクションを完了します。
  8. イベントチャネルと切断します。

 接続するイベントチャネルのオブジェクトリファレンスを不揮発媒体に保存している場合は、2、3、4、8の処理は不要となります。

[COBOLによるMixedモデルのローカルトランザクションのコンシューマ]

  01 COPY NOTIFYEVENTCHANNEL IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-EVENTCHA BY EVENT-CHNL.
  01 COPY NOTIFYCONSUMERADMIN IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-CONSUMER BY ADMIN-CON.
  01 COPY NOTIFYCHNLADMIN-PROXYID IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-PROXYID BY PROXYID.
  01 COPY UTILTYPE IN COSEVENTCOMM REPLACING COSEVENTCHANNELADMIN-EVENTC001 BY UTIL-TYPE.
  01 COPY CHANNELUTIL IN COSEVENTCOMM REPLACING ES-CHANNELUTIL BY CHNLUTIL.
  01 COPY NOTIFYSTRUCTUREDPROXYPULLSUP IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-STRUC001 BY STRPROXYPULLSUP.
  01 COPY CLIENTTYPE IN COSEVENTCOMM REPLACING COSNOTIFYCHANNELADMIN-CLIENTTY BY CLTYPE.

  SET  COSEVENTCHANNELADMIN-EVENTCHAN OF UTIL-TYPE TO TRUE.
  CALL "COSNOTIFYCHANNELADMIN-EVENTCHANNEL-CREATE-UTIL" USING
          EVENT-CHNL
          UTIL-TYPE
          ENV
          CHNLUTIL.   /* 1 */
  CALL "COSNOTIFYCHANNELADMIN-EVENTCHANNEL--GET-DEFAULT-CONSUMER-ADMIN" USING
          EVENT-CHNL
          ENV
          ADMIN-CON.  /* 2 */
  SET COSNOTIFYCHANNELADMIN-STRUCTUR OF CLTYPE TO TRUE.
  CALL "COSNOTIFYCHANNELADMIN-CONSUMERADMIN-OBTAIN-NOTIFICATION-PULL-SUPPLIER" USING
          ADMIN-CON
          CLTYPE
          PROXYID
          ENV
          STRPROXYPULLSUP. /* 3 */
  CALL "COSNOTIFYCHANNELADMIN-STRUCTUREDPROXYPULLSUPPLIER-CONNECT-STRUCTURED-PULL-CONSUMER" USING
          STRPROXYPULLSUP
          CORBA-OBJECT-NIL
          ENV. /* 4 */
  CALL "ES-CHANNELUTIL-LOCAL-BEGIN" USING
          CHNLUTIL
          STRPROXYPULLSUP
          ENV. /* 5 */
  CALL "COSNOTIFYCHANNELADMIN-STRUCTUREDPROXYPULLSUPPLIER-PULL-STRUCTURED-EVENT" USING
          STRPROXYPULLSUP
          ENV
          RECV. /* 6 */
  CALL "ES-CHANNELUTIL-LOCAL-COMMIT" USING
          CHNLUTIL
          STRPROXYPULLSUP
          ENV. /* 7 */
  CALL "COSNOTIFYCHANNELADMIN-STRUCTUREDPROXYPULLSUPPLIER-DISCONNECT-STRUCTURED-PULL-SUPPLIER" USING
          STRPROXYPULLSUP
          ENV. /* 8 */
  1. ChannelUtilインタフェースのオブジェクトリファレンスを獲得します。
  2. イベントチャネル管理オブジェクトのオブジェクトリファレンスを獲得します。
  3. イベントチャネルのオブジェクトリファレンスを獲得します。
  4. イベントチャネルと接続します。
  5. ローカルトランザクションを開始します。
  6. イベントチャネルにイベントデータを受信します。
  7. ローカルトランザクションを完了します。
  8. イベントチャネルと切断します。

 接続するイベントチャネルのオブジェクトリファレンスを不揮発媒体に保存している場合は、2、3、4、8の処理は不要となります。


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

Copyright 2008 FUJITSU LIMITED