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

第4章 アプリケーションの開発(各機能)> 4.1 イベントチャネル接続のアプリケーション開発

4.1.3 イベントチャネルの接続情報の取得

 アプリケーションから、イベントチャネルに接続しているコンシューマおよびサプライヤの情報を取得することができます。
 取得できる接続情報を以下に示します。

 Cプログラムで接続情報を取得するアプリケーション作成例(イベントサービスの場合ノーティフィケーションの場合)と処理の流れを以下に説明します。

イベントサービスの場合

[イベントチャネルに接続しているアプリケーションの接続情報の取得(C言語の場合)]

  CORBA_Boolean func() {
      CosEventChannelAdmin_EventChannel    channel;
      ES_ChannelUtil                       util;
      CORBA_Environment                    env;
      CORBA_unsigned_long                  consumer;
      CORBA_unsigned_long                  supplier;

      channel = イベントチャネルのオブジェクトリファレンスの獲得      /* 1 */
      util = CosEventChannelAdmin_EventChannel_create_util(
      channel, CosEventChannelAdmin_EventChannel_CHANNEL_UTIL, &env); /* 2 */
      pProxyDataSeq = ES_ChannelUtil_get_proxys(
                       util, ES_ChannelUtil_ALL_PROXYS, &env);        /* 3 */
      consumer = ES_ChannelUtil_get_consumer_count(
                       util, &env );                                  /* 4 */
      supplier = ES_ChannelUtil_get_supplier_count(
                       util, &env );                                  /* 5 */
      queue = ES_ChannelUtil_get_queue_length(
                       util, &env );                                  /* 6 */
      ... 
  }
  1. イベントチャネルのオブジェクトリファレンスを獲得します。イベントチャネルのオブジェクトリファレンスの獲得方法については、各言語の“アプリケーションの開発”−“イベントチャネルのオブジェクトリファレンスの獲得”を参照してください。
  2. CosEventChannelAdmin_EventChannel_create_util()メソッドで、イベントチャネルからESインタフェースのオブジェクトリファレンスを作成します
  3. ES_ChannelUtil_get_proxys()メソッドで、イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を取得します。
  4. ES_ChannelUtil_get_consumer_count()メソッドで、イベントチャネルに接続しているコンシューマ数を取得します。
  5. ES_ChannelUtil_get_supplier_count()メソッドで、イベントチャネルに接続しているサプライヤ数を取得します。
  6. ES_ChannelUtil_get_queue_length()メソッドで、イベントチャネルにキューイングされているイベントデータ数を取得します。

ノーティフィケーションサービスの場合

[イベントチャネルに接続しているアプリケーションの接続情報の取得(C言語の場合)]

  CORBA_Boolean func() {
      CosEventChannelAdmin_EventChannel     channel;
      ES_ChannelUtil                        util;
      CORBA_Environment                     env;
      CORBA_unsigned_long                   consumer;
      CORBA_unsigned_long                   supplier;

      channel = イベントチャネルのオブジェクトリファレンスの獲得              /* 1 */
      util = CosNotifyChannelAdmin_EventChannel_create_util(
             channel, CosNotifyChannelAdmin_EventChannel_CHANNEL_UTIL, &env); /* 2 */
      pProxyDataSeq = ES_ChannelUtil_get_proxys(
                    util, ES_ChannelUtil_ALL_PROXYS, &env);                   /* 3 */
      consumer = ES_ChannelUtil_get_consumer_count(
                    util, &env );                                             /* 4 */
      supplier = ES_ChannelUtil_get_supplier_count(
                    util, &env );                                             /* 5 */
      queue = ES_ChannelUtil_get_queue_length(
                    util, &env );                                             /* 6 */
      ... 
  }
  1. イベントチャネルのオブジェクトリファレンスを獲得します。イベントチャネルのオブジェクトリファレンスの獲得方法については、各言語の“アプリケーションの開発”−“イベントチャネルのオブジェクトリファレンスの獲得”を参照してください。
  2. CosNotifyChannelAdmin_EventChannel_create_util()メソッドで、イベントチャネルからESインタフェースのオブジェクトリファレンスを作成します。
  3. ES_ChannelUtil_get_proxys()メソッドで、イベントチャネルに接続しているコンシューマ/サプライヤの接続情報を取得します。
  4. ES_ChannelUtil_get_consumer_count()メソッドで、イベントチャネルに接続しているコンシューマ数を取得します。
  5. ES_ChannelUtil_get_supplier_count()メソッドで、イベントチャネルに接続しているサプライヤ数を取得します。
  6. ES_ChannelUtil_get_queue_length()メソッドで、イベントチャネルにキューイングされているイベントデータ数を取得します。

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

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