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

付録D サンプルプログラム(Solaris(TM) Operating Environment/Linux)> D.2 実行手順

D.2.2 C++言語アプリケーション

 C++言語のサンプルプログラムについて説明します。

(b1)イベントサービス(Pushモデル)のサンプルプログラム
(b2)イベントサービス(Pullモデル)のサンプルプログラム
(b3)イベントサービス(Mixedモデル)のサンプルプログラム
(b4)イベントサービス(Mixedモデル)のEventFactoryを使用したサンプルプログラム
(b5)イベントサービス(Mixedモデル)のEventFactoryを使用したサンプルプログラム(複数IP対応)
(b6)ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム
(b7)ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム
(b8)ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム
(b9)ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)
(b10)ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム
(b11)ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)
(b12)接続情報取得(情報取得)のサンプルプログラム
(b13)接続情報取得(個数取得)のサンプルプログラム
(b14)ノーティフィケーションサービス(MultiCastモデル)のローカルトランザクションのサンプルプログラム
(b15)ノーティフィケーションサービス(MultiCastモデル)のグローバルトランザクションのサンプルプログラム
(b16)ノーティフィケーションサービス(Point-To-Pointモデル)のローカルトランザクションのサンプルプログラム
(b17)ノーティフィケーションサービス(Point-To-Pointモデル)のグローバルトランザクションのサンプルプログラム

(b1)イベントサービス(Pushモデル)のサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

イベントサービスのチャネル静的生成

Push

any

cpp/push

(1)サンプルプログラムを翻訳し、イベントチャネルをネーミングサービスに登録します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、push_consumer, push_supplier, push_library.soの3つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントチャネルの登録

 静的イベントチャネル「push::sample」を登録します。

  esmkchnl -g push -c sample

イベントチャネルの起動

 イベントチャネルグループ「push」を起動します。

  esstartchnl -g push

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマのインプリメンテーション情報の登録

 サンプル内のdefファイルを編集し、アプリケーションライブラリ名を絶対パスで指定します(以下は、/tmp/pushを作業ディレクトリとした場合の例となります)。

  IDL:CosEventComm/PushConsumer:1.0 = /tmp/push/push_library.so

 push_consumerのインプリメンテーション情報を登録します。

  register

コンシューマの起動

 コンシューマ(push_consumer)を起動します。

  push_consumer

 これで、コンシューマがイベントチャネル「push::sample」に接続されます。

サプライヤの起動

 別のプロセスからサプライヤ(push_supplier)を起動します。

  push_supplier

 これにより、サプライヤが送信したメッセージをイベントチャネルに接続されたコンシューマに送信することができます。

(3)実行結果

 サンプルプログラムの実行結果を示します。

  push_consumer
    Push [Enter/Return] Key
    CosEventComm_PushConsumer_impl::push
    push message : Push-C++ 

(b2)イベントサービス(Pullモデル)のサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

イベントサービスのチャネル静的生成

Pull

any

cpp/pull

(1)サンプルプログラムを翻訳し、イベントチャネルをネーミングサービスに登録します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、pull_consumer, pull_supplier, pull_library.soの3つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントチャネルの登録

 静的イベントチャネル「pull::sample」を登録します。

  esmkchnl -g pull -c sample

イベントチャネルの起動

 イベントチャネルグループ「pull」を起動します。

  esstartchnl -g pull

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

サプライヤのインプリメンテーション情報の登録

 サンプル内のdefファイルを編集し、アプリケーションライブラリ名を絶対パスで指定します(以下は、/tmp/pullを作業ディレクトリとした場合の例となります)。

  IDL:CosEventComm/PullSupplier:1.0 = /tmp/pull/pull_library.so

 pull_supplierのインプリメンテーション情報を登録します。

  register

サプライヤの起動

 サプライヤ(pull_supplier)を起動します。

  pull_supplier

 これで、サプライヤがイベントチャネル「pull::sample」に接続されます。

コンシューマの起動

 別のプロセスからコンシューマ(pull_consumer)を起動します。

  pull_consumer

 コンシューマがイベントを要求し、イベントチャネルは接続されているサプライヤからイベントを取り出し、コンシューマに復帰させます。

(3)実行結果

 サンプルプログラムの実行結果を示します。

  pull_consumer
    pull message : Pull-C++ 

(b3)イベントサービス(Mixedモデル)のサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

イベントサービスのチャネル静的生成

Mixed

any

cpp/mix

(1)サンプルプログラムを翻訳し、イベントチャネルをネーミングサービスに登録します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、mix_consumer, mix_supplierの2つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントチャネルの登録

 静的イベントチャネル「mix::sample」を登録します。

  esmkchnl -g mix -c sample

イベントチャネルの起動

 イベントチャネルグループ「mix」を起動します。

  esstartchnl -g mix

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(mix_consumer)を起動します。

  mix_consumer &

 コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。

サプライヤの起動

 サプライヤ(mix_supplier)を起動します。

  mix_supplier

 これで、イベントチャネルにメッセージを蓄積します。

(3)実行結果

 サンプルプログラムの実行結果を示します。

  mix_consumer &
    [1] 23845
  mix_supplier
    pull message : Mixed-C++ 

(b4)イベントサービス(Mixedモデル)のEventFactoryを使用したサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

イベントサービスのチャネル動的生成

Mixed

any

cpp/factory

 イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。

(1)サンプルプログラムを翻訳します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、factory_consumer, factory_supplierの2つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントファクトリの起動

 イベントファクトリを起動していない場合は、イベントファクトリを起動します。

  esstartfctry

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(factory_consumer)を起動します。

  factory_consumer  
    1.create, 2.create_channel, 3.get_event_channel
    select(1-3):

 1.を選択するとcreate_channelメソッドによりイベントチャネルの生成を以下のイベントチャネル名で生成します。

    select(1-3):1
    input EventChannel name:

 生成するイベントチャネル名(例:“ch1”)を指定します。

    input EventChannel name:ch1
    create EventChannel(ch1)

 コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。

サプライヤの起動

 サプライヤ(factory_supplier)を起動します。

  factory_supplier
    1.create, 2.create_channel, 3.get_event_channel
    select(1-3):

 1.を選択し、コンシューマが接続されているイベントチャネル名“ch1”を指定します。サプライヤがイベントチャネルに接続し、データを送信します。このとき、事前に動的イベントチャネルが生成されていれば、3.を選択して既存のチャネルを使用することができます。

    select(1-3):1 (または、3)
    input EventChannel name:ch1
    create EventChannel(ch1)

 これで、イベントチャネルにメッセージを蓄積します。

(3)実行結果

 サンプルプログラムの実行結果を示します。

  factory_consumer
    pull message : Factory-MIX-C++ 

(b5)イベントサービス(Mixedモデル)のEventFactoryを使用したサンプルプログラム(複数IP対応)

種別

通信モデル

データ型

サブディレクトリ

イベントサービスのチャネル動的生成(複数IP対応)

Mixed

any

cpp/factory

 イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。

(1)サンプルプログラムを翻訳します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、factory_consumer, factory_supplierの2つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントファクトリの起動

 イベントファクトリを起動していない場合は、イベントファクトリを起動します。

  esstartfctry

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(factory_consumer)を起動します。

  factory_consumer  
    1.create, 2.create_channel, 3.get_event_channel
    select(1-3):

 2.を選択するとcreate_channelメソッドによりイベントチャネルの生成を以下のイベントチャネル名で生成します。

    select(1-3):2
    input EventChannel name:

 生成するイベントチャネル名(例:“ch1”)を指定します。

    input EventChannel name:ch1
    Do you use multi IP function?(y/n)

 複数IPアドレスを使用するため、“y”を選択します。

    Do you use multi IP function?(y/n)y
    Please input host name or IP address?

 複数IPアドレスを持つシステムで、イベントチャネルの通信経路を指定する場合に、ホスト名(例:“berk”)またはIPアドレスを指定します。

    Please input host name or IP address?berk
    Please input port number?

 複数IPアドレスを持つシステムで、イベントチャネルの通信経路を指定する場合に、ポート番号を指定します。ポート番号には、CORBAサービスのポート番号として指定されている値(例:“8002”)を指定してください。

    Please input port number?8002
    create EventChannel(ch1) Object

 コンシューマは、生成したイベントチャネルに接続し、イベントを要求します。

サプライヤの起動

 サプライヤ(factory_supplier)を起動します。

  factory_supplier
    1.create, 2.create_channel, 3.get_event_channel
    select(1-3):

 2.を選択し、コンシューマが接続されているイベントチャネル名“ch1”を指定します。サプライヤがイベントチャネルに接続し、データを送信します。このとき、事前に動的イベントチャネルが生成されていれば、3.を選択して既存のチャネルを使用することができます。

    select(1-3):2 (または、3)
    input EventChannel name:ch1
    get EventChannel Object(ch1)

(3)実行結果

 サンプルプログラムの実行結果を示します。コンシューマ側に実行結果が出力されます。

  factory_consumer
    pull message : Factory-MIX-C++ 

(b6)ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービスのチャネル静的生成

Mixed

any

notify/cpp/mix/any

(1)サンプルプログラムを翻訳し、イベントチャネルをネーミングサービスに登録します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、mix_consumer, mix_supplierの2つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントチャネルの登録

 静的イベントチャネル“mix::sample”を登録します。

  esmkchnl -g mix -c sample -notify

イベントチャネルの起動

 イベントチャネルグループ“mix”を起動します。

  esstartchnl -g mix

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(mix_consumer)を起動します。

  mix_consumer &

 コンシューマがイベントを要求します。

サプライヤの起動

 サプライヤ(mix_supplier)を起動します。

  mix_supplier

 これで、イベントチャネルにメッセージを蓄積します。イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。

(3)実行結果

 サンプルプログラムの実行結果を示します。

  mix_consumer &
    [1] 23845
  mix_supplier
    pull message : Mixed-C++

(b7)ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービスのチャネル静的生成

Mixed

StructuredEvent

notify/cpp/mix/structured

(1)サンプルプログラムを翻訳し、イベントチャネルをネーミングサービスに登録します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、mix_consumer, mix_supplierの2つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントチャネルの登録

 静的イベントチャネル「mix::sample」を登録します。

  esmkchnl -g mix -c sample -notify

イベントチャネルの起動

 イベントチャネルグループ「mix」を起動します。

  esstartchnl -g mix

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(mix_consumer)を起動します。

  mix_consumer &

 コンシューマがイベントを要求します。

サプライヤの起動

 サプライヤ(mix_supplier)を起動します。

  mix_supplier

 これで、イベントチャネルにメッセージを蓄積します。イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。

(3)実行結果

 サンプルプログラムの実行結果を示します。

  mix_consumer &
    [1] 23845
  mix_supplier
    pull message : StructuredEvent Mixed-C++

(b8)ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービスのチャネル動的生成

Mixed

any

notify/cpp/factory/any

 イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。

(1)サンプルプログラムを翻訳します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、factory_consumer, factory_supplierの2つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントファクトリの起動

 イベントファクトリを起動していない場合は、以下のコマンドでイベントファクトリを起動します。

  esstartfctry

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(factory_consumer)を起動します。

  factory_consumer
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 1.を選択し、create_channelメソッドによりイベントチャネルの生成を行います。事前に動的イベントチャネルが2つ生成されている場合の例を以下に示します。

    select(1-3):1
    Do you use multi IP function?(y/n)

 複数IPアドレスを使用しないため、“n”を選択します。

    Do you use multi IP function?(y/n)n
    create EventChannelID = 3
    connecting...

サプライヤの起動

 サプライヤ(factory_supplier)を起動します。

  factory_supplier
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 2.を選択し、get_all_channelsメソッドにより現在動的生成されているイベントチャネルの一覧を取得します。

    select(1-3):2
    --- EventChannelID list(ALL=3) ---
           1,       2,       3
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 次に3.を選択し、コンシューマが接続されているイベントチャネルの識別ID“3”を指定します。サプライヤがイベントチャネルに接続し、データを送信します。

    input EventChannelID:3
    get EventChannel Object
    connecting...

(3)実行結果

 サンプルプログラムの実行結果を示します。コンシューマ側に実行結果が出力されます。

  factory_consumer
    connecting...
    pull message : Factory-Mixed-C++

(b9)ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービスのチャネル動的生成(複数IP対応)

Mixed

any

notify/cpp/factory/any

 イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。

(1)サンプルプログラムを翻訳します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、factory_consumer, factory_supplierの2つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントファクトリの起動

 イベントファクトリを起動していない場合は、以下のコマンドでイベントファクトリを起動します。

  esstartfctry

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(factory_consumer)を起動します。

  factory_consumer
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 1.を選択し、create_channelメソッドによりイベントチャネルの生成を行います。事前に動的イベントチャネルが2つ生成されている場合の例を以下に示します。

    select(1-3):1
    Do you use multi IP function?(y/n)

 複数IPアドレスを使用するため、“y”を選択します。

    Do you use multi IP function?(y/n)y
    Please input host name or IP address?

 複数IPアドレスを持つシステムで、イベントチャネルの通信経路を指定する場合に、ホスト名(例:“berk”)またはIPアドレスを指定します。

    Please input host name or IP address?berk
    Please input port number?

 複数IPアドレスを持つシステムで、イベントチャネルの通信経路を指定する場合に、ポート番号を指定します。ポート番号には、CORBAサービスのポート番号として指定されている値(例:“8002”)を指定してください。

    Please input port number?8002

 生成したイベントチャネルの識別IDが表示され、コンシューマはそのイベントチャネルに接続し、イベントを要求します。

    create EventChannelID = 3
    connecting...

サプライヤの起動

 サプライヤ(factory_supplier)を起動します。

  factory_supplier
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 2.を選択し、get_all_channelsメソッドにより現在動的生成されているイベントチャネルの一覧を取得します。

    select(1-3):2
    --- EventChannelID list(ALL=3) ---
           1,       2,       3
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 次に3.を選択し、コンシューマが接続されているイベントチャネルの識別ID“3”を指定します。サプライヤがイベントチャネルに接続し、データを送信します。

    input EventChannelID:3
    get EventChannel Object
    connecting...

(3)実行結果

 サンプルプログラムの実行結果を示します。コンシューマ側に実行結果が出力されます。

  factory_consumer
    connecting...
    pull message : Factory-Mixed-C++

(b10)ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービスのチャネル動的生成

Mixed

StructuredEvent

notify/cpp/factory/structured

 イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。

(1)サンプルプログラムを翻訳します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、factory_consumer, factory_supplierの2つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントファクトリの起動

 イベントファクトリを起動していない場合は、以下のコマンドでイベントファクトリを起動します。

  esstartfctry

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(factory_consumer)を起動します。

  factory_consumer
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 1.を選択し、create_channelメソッドによりイベントチャネルの生成を行います。事前に動的イベントチャネルが2つ生成されている場合の例を以下に示します。

    select(1-3):1
    Do you use multi IP function?(y/n)

 複数IPアドレスを使用しないため、“n”を選択します。

    Do you use multi IP function?(y/n)n
    create EventChannelID = 3
    connecting...

サプライヤの起動

 サプライヤ(factory_supplier)を起動します。

  factory_supplier
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 2.を選択し、get_all_channelsメソッドにより現在動的生成されているイベントチャネルの一覧を取得します。

    select(1-3):2
    --- EventChannelID list(ALL=3) ---
           1,       2,       3
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 次に3を選択し、コンシューマが接続されているイベントチャネルの識別ID“3”を指定します。サプライヤがイベントチャネルに接続し、データを送信します。

    input EventChannelID:3
    get EventChannel Object
    connecting...

(3)実行結果

 サンプルプログラムの実行結果を示します。コンシューマ側に実行結果が出力されます。

  factory_consumer
    connecting...
    pull message : StructuredEvent Factory-Mixed-C++

(b11)ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービスのチャネル動的生成(複数IP対応)

Mixed

StructuredEvent

notify/cpp/factory/structured

 イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。

(1)サンプルプログラムを翻訳します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、factory_consumer, factory_supplierの2つのプログラムが作成されます。

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  cd $ES_HOME/bin
  esstart

イベントファクトリの起動

 イベントファクトリを起動していない場合は、以下のコマンドでイベントファクトリを起動します。

  esstartfctry

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(factory_consumer)を起動します。

  factory_consumer
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 1.を選択し、create_channelメソッドによりイベントチャネルの生成を行います。事前に動的イベントチャネルが2つ生成されている場合の例を以下に示します。

    select(1-3):1
    Do you use multi IP function?(y/n)

 複数IPアドレスを使用するため、“y”を選択します。

    Do you use multi IP function?(y/n)y
    Please input host name or IP address?

 複数IPアドレスを持つシステムで、イベントチャネルの通信経路を指定する場合に、ホスト名(例:“berk”)またはIPアドレスを指定します。

    Please input host name or IP address?berk
    Please input port number?

 複数IPアドレスを持つシステムで、イベントチャネルの通信経路を指定する場合に、ポート番号を指定します。ポート番号には、CORBAサービスのポート番号として指定されている値(例:“8002”)を指定してください。

    Please input port number?8002

 生成したイベントチャネルの識別IDが表示され、コンシューマはそのイベントチャネルに接続し、イベントを要求します。事前に動的イベントチャネルが2つ生成されている場合の例を以下に示します。

    create EventChannelID = 3
    connecting...

サプライヤの起動

 サプライヤ(factory_supplier)を起動します。

  factory_supplier
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 2.を選択し、get_all_channelsメソッドにより現在動的生成されているイベントチャネルの一覧を取得します。

    select(1-3):2
    --- EventChannelID list(ALL=3) ---
           1,       2,       3
    1.create_channel, 2.get_all_channels, 3.get_event_channel
    select(1-3):

 次に3を選択し、コンシューマが接続されているイベントチャネルの識別ID“3”を指定します。サプライヤがイベントチャネルに接続し、データを送信します。

    input EventChannelID:3
    get EventChannel Object
    connecting...

(3)実行結果

 サンプルプログラムの実行結果を示します。コンシューマ側に実行結果が出力されます。

  factory_consumer
    connecting...
    pull message : StructuredEvent Factory-Mixed-C++

(b12)接続情報取得(情報取得)のサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

接続情報取得(情報取得)

cpp/util/proxy

(1)サンプルプログラムを翻訳します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、es_util_getproxyの1つのプログラムが作成されます。

(2)サンプルプログラムの実行

 接続情報取得の実行方法を説明します。
 例として静的イベントチャネル「mix::sample」の場合を説明します。
 静的イベントチャネル「mix::sample」に接続して、接続情報を回収せずに異常終了したコンシューマおよびサプライヤが存在する場合、および静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの接続情報を取得したい場合に起動します。静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの実行方法は、“(b6)ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム”および“(b7)ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム”を参照してください。

接続情報取得の起動

 es_util_getproxyを起動します。

  es_util_getproxy

 静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの接続情報を取得します。

(3)実行結果

 現在、静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの接続情報(IPアドレス、イベントチャネルに接続した時間およびproxy種別)が表示されます。


 IPv6環境において本サンプルプログラムを実行した場合、接続情報のIPアドレスには0.0.0.0が表示されます。IPv6環境で運用する設定については、“チューニングガイド”の“Interstageのチューニング”−“IPv6環境での運用について”、および“CORBAサービスの動作環境ファイル”−“config”(IP-versionパラメタ)を参照してください。

(b13)接続情報取得(個数取得)のサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

接続情報取得(個数取得)

cpp/util/count

(1)サンプルプログラムを翻訳します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

 make

 翻訳が成功した場合、es_util_countの1つのプログラムが作成されます。

(2)サンプルプログラムの実行

 接続情報取得の実行方法を説明します。
 例として静的イベントチャネル「mix::sample」の場合を説明します。
 静的イベントチャネル「mix::sample」に接続して、接続情報を回収せずに異常終了したコンシューマおよびサプライヤが存在する場合、および静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの接続情報を取得したい場合に起動します。静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの実行方法は、“(b6)ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム”および“(b7)ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム”を参照してください。

接続情報取得の起動

 es_util_countを起動します。

  es_util_count

 静的イベントチャネル「mix::sample」に接続しているコンシューマ数、サプライヤ数およびイベントチャネルにキューイングされているイベントデータ数を取得します。

(3)実行結果

 現在、静的イベントチャネル「mix::sample」に接続しているコンシューマ数、サプライヤ数およびイベントチャネルにキューイングされているイベントデータ数が表示されます。

(b14)ノーティフィケーションサービス(MultiCastモデル)のローカルトランザクションのサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービス(MultiCastモデル)のローカルトランザクション

Mixed

StructuredEvent

notify/cpp/localtran

(1)サンプルプログラムを翻訳し、イベントチャネルをネーミングサービスに登録します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、mix_consumer, mix_supplierの2つのプログラムが作成されます。

ユニットの生成

 標準ユニットを生成します。ユニット定義ファイルは、$ES_HOME/etc/def配下の雛型(esunit01.def)を参考にしてください。

  cd $ES_HOME/bin
  esmkunit -uf <ユニット定義ファイル>

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  esstart

イベントチャネルの登録

 静的イベントチャネル「mix::sample」を登録します。

  esmkchnl -g mix -c sample -notify -persist all -tran

イベントチャネルの起動

 イベントチャネルグループ「mix」を起動します。

  esstartchnl -g mix

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(mix_consumer)を起動します。

  mix_consumer <ID> &

 コンシューマがイベントを要求します。IDには、任意の文字列を指定してください。

サプライヤの起動

 サプライヤ(mix_supplier)を起動します。

  mix_supplier

 これで、イベントチャネルにメッセージを蓄積します。
 イベントチャネルは蓄積されたデータをコンシューマに復帰させます。

(3)実行結果

 サンプルプログラムの実行結果を示します。

  mix_consumer <ID> &
    [1] 23845
  mix_supplier
    pull message : StructuredEvent Mixed-C++

 結果が表示されたら、disconnectを実施します。

  mix_consumer <ID> -del

 これで、接続情報が回収されます。

(b15)ノーティフィケーションサービス(MultiCastモデル)のグローバルトランザクションのサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービス(MultiCastモデル)のグローバルトランザクション

Mixed

StructuredEvent

notify/cpp/ots

(1)サンプルプログラムを翻訳し、イベントチャネルをネーミングサービスに登録します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、mix_consumer, mix_supplierの2つのプログラムが作成されます。

ユニットの生成

 拡張ユニットを生成します。ユニット定義ファイルは、$ES_HOME/etc/def配下の雛型(esunit01.def)を参考にしてください。

  cd $ES_HOME/bin
  esmkunit -uf <ユニット定義ファイル>

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  esstart

イベントチャネルの登録

 静的イベントチャネル「mix::sample」を登録します。

  esmkchnl -g mix -c sample -notify -persist all -ots -unit <拡張ユニット名>

イベントチャネルの起動

 イベントチャネルグループ「mix」を起動します。

  esstartchnl -g mix

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(mix_consumer)を起動します。

  mix_consumer <ID> &

 コンシューマがイベントを要求します。IDには、任意の文字列を指定してください。

サプライヤの起動

 サプライヤ(mix_supplier)を起動します。

  mix_supplier

 これで、イベントチャネルにメッセージを蓄積します。
 イベントチャネルは蓄積されたデータをコンシューマに復帰させます。

(3)実行結果

 サンプルプログラムの実行結果を示します。

  mix_consumer <ID> &
    [1] 23845
  mix_supplier
    pull message : StructuredEvent Mixed-C++

 結果が表示されたら、disconnectを実施します。

  mix_consumer <ID> -del

 これで、接続情報が回収されます。

(b16)ノーティフィケーションサービス(Point-To-Pointモデル)のローカルトランザクションのサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービス(Point-To-Pointモデル)のローカルトランザクション

Mixed

StructuredEvent

notify/cpp/ptp/localtran

(1)サンプルプログラムを翻訳し、イベントチャネルをネーミングサービスに登録します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、mix_consumer, mix_supplierの2つのプログラムが作成されます。

ユニットの生成

 標準ユニットを生成します。ユニット定義ファイルは、$ES_HOME/etc/def配下の雛型(esunit01.def)を参考にしてください。

  cd $ES_HOME/bin
  esmkunit -uf <ユニット定義ファイル>

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  esstart

イベントチャネルの登録

 静的イベントチャネル「mix::sample」を登録します。

  esmkchnl -g mix -c sample -notify -persist all -tran -ptp

イベントチャネルの起動

 イベントチャネルグループ「mix」を起動します。

  esstartchnl -g mix

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(mix_consumer)を起動します。

  mix_consumer &

 コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。

サプライヤの起動

 サプライヤ(mix_supplier)を起動します。

  mix_supplier

 これで、イベントチャネルにメッセージを蓄積します。
 イベントチャネルは蓄積されたデータをコンシューマに復帰させます。

(3)実行結果

 サンプルプログラムの実行結果を示します。コンシューマ側に実行結果が出力されます。

  mix_consumer  &
    [1] 23845
  mix_supplier
    pull message : StructuredEvent Mixed-C++

(b17)ノーティフィケーションサービス(Point-To-Pointモデル)のグローバルトランザクションのサンプルプログラム

種別

通信モデル

データ型

サブディレクトリ

ノーティフィケーションサービス(Point-To-Pointモデル)のグローバルトランザクション

Mixed

StructuredEvent

notify/cpp/ptp/ots

(1)サンプルプログラムを翻訳し、イベントチャネルをネーミングサービスに登録します。

サンプルソースの翻訳

 サンプルプログラムを翻訳します。翻訳手順はMakefileで定義されています。

  make

 翻訳が成功した場合、mix_consumer, mix_supplierの2つのプログラムが作成されます。

ユニットの生成

 拡張ユニットを生成します。ユニット定義ファイルは、$ES_HOME/etc/def配下の雛型(esunit01.def)を参考にしてください。

  cd $ES_HOME/bin
  esmkunit -uf <ユニット定義ファイル>

イベントサービスの起動

 イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。

  esstart

イベントチャネルの登録

 静的イベントチャネル「mix::sample」を登録します。

  esmkchnl -g mix -c sample -notify -persist all -ots -unit <拡張ユニット名> -ptp

イベントチャネルの起動

 イベントチャネルグループ「mix」を起動します。

  esstartchnl -g mix

(2)サンプルプログラムの実行

 コンシューマ、サプライヤの実行方法を説明します。

コンシューマの起動

 コンシューマ(mix_consumer)を起動します。

  mix_consumer &

 コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。

サプライヤの起動

 サプライヤ(mix_supplier)を起動します。

  mix_supplier

 これで、イベントチャネルにメッセージを蓄積します。
 イベントチャネルは蓄積されたデータをコンシューマに復帰させます。

(3)実行結果

 サンプルプログラムの実行結果を示します。コンシューマ側に実行結果が出力されます。

  mix_consumer &
    [1] 23845
  mix_supplier
    pull message : StructuredEvent Mixed-C++

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

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