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

第7章 アプリケーションの開発(Java言語)

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

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

  public boolean func() {
      ... 
      try {
            obj = Eventch.create_util( UtilType.CHANNEL_UTIL );  /* 1 */
            util = ChannelUtilHelper.narrow( obj );
            supplier = Eventch.default_supplier_admin();         /* 2 */
            tmp_proxy=supplier.obtain_notification_push_consumer(
                   ClientType.STRUCTURED_EVENT,proxyid);         /* 3 */
            proxy_push= StructuredProxyPushConsumerHelper.narrow(
                                                   tmp_proxy); 
            proxy_push.connect_structured_push_supplier(null);   /* 4 */
            util.local_begin( proxy_push );                      /* 5 */  
            proxy_push.push_structured_event(data);              /* 6 */
            util.local_commit( proxy_push );                     /* 7 */
            proxy_push.disconnect_structured_push_consumer();    /* 8 */
      } catch( Exception e ) {
          ... 
      }
      ... 
  }
  1. ChannelUtilインタフェースのオブジェクトリファレンスを獲得します。
  2. イベントチャネル管理オブジェクトのオブジェクトリファレンスを獲得します。
  3. イベントチャネルのオブジェクトリファレンスを獲得します。
  4. イベントチャネルと接続します。
  5. ローカルトランザクションを開始します。
  6. イベントチャネルにイベントデータを送信します。
  7. ローカルトランザクションを完了します。
  8. イベントチャネルと切断します。

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

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

  public boolean func() {
      ... 
      try {
           obj = Eventch.create_util( UtilType.CHANNEL_UTIL ); /* 1 */
           util = ChannelUtilHelper.narrow( obj );
          consumer = Eventch.default_consumer_admin();         /* 2 */
          tmp_proxy =consumer.obtain_notification_pull_supplier
               (ClientType.STRUCTURED_EVENT,proxyid);          /* 3 */
          proxy_pull= StructuredProxyPullSupplierHelper.narrow(tmp_proxy);
          proxy_pull.connect_structured_pull_consumer(null);   /* 4 */
          util.local_begin( proxy_pull );                      /* 5 */
          data = proxy_pull.pull_structured_event();           /* 6 */
          util.local_commit( proxy_pull );                     /* 7 */
          proxy_pull.disconnect_structured_pull_supplier();    /* 8 */
      } catch( Exception e ) {
          ... 
      }
   ... 
  }
  1. ChannelUtilインタフェースのオブジェクトリファレンスを獲得します。
  2. イベントチャネル管理オブジェクトのオブジェクトリファレンスを獲得します。
  3. イベントチャネルのオブジェクトリファレンスを獲得します。
  4. イベントチャネルと接続します。
  5. ローカルトランザクションを開始します。
  6. イベントチャネルにイベントデータを送信します。
  7. ローカルトランザクションを完了します。
  8. イベントチャネルと切断します。

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


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

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