Interstage Application Server アプリケーション作成ガイド (イベントサービス編) |
目次
索引
![]() ![]() |
付録C サンプルプログラム(Windows(R)) | > C.2 実行手順 |
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モデル)のグローバルトランザクションのサンプルプログラム
種別 |
通信モデル |
データ型 |
ディレクトリ |
イベントサービスのチャネル静的生成 |
Push |
any |
cpp\push |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。 起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\cpp\push\push_consumer\push_consumer.mdp %ES_HOME%\src\samples\cpp\push\push_library\push_library.mdp %ES_HOME%\src\samples\cpp\push\push_supplier\push_supplier.mdp
翻訳が成功した場合、push_consumer.exe, push_supplier.exe, push_library.dllの3つのプログラムが作成されます。push_library.dllを環境変数PATHに指定されているディレクトリに移動します。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
静的イベントチャネル“push::sample”を登録します。
esmkchnl -g push -c sample
イベントチャネルグループ“push”を起動します。
esstartchnl -g push
コンシューマ、サプライヤの実行方法を説明します。
push_consumerのインプリメンテーション情報を登録します。
cd %ES_HOME%\src\samples\cpp\push register
現ディレクトリを以下に移動し、push_consumer.exeを起動します。
cd %ES_HOME%\src\samples\cpp\push\push_consumer\Release(またはDebug) push_consumer
これで、コンシューマがイベントチャネル“push::sample”に接続されます。
別のコマンドプロンプトから現ディレクトリを以下に移動し、push_supplier.exeを起動します。
cd %ES_HOME%\src\samples\cpp\push\push_supplier\Release(またはDebug) push_supplier
これにより、サプライヤが送信したメッセージをイベントチャネルに接続されたコンシューマに送信することができます。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
push_consumer CosEventComm_PushConsumer_impl::push push message : Push-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
イベントサービスのチャネル静的生成 |
Pull |
any |
cpp\pull |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。 起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\cpp\pull\pull_consumer\pull_consumer.mdp %ES_HOME%\src\samples\cpp\pull\pull_library\pull_library.mdp %ES_HOME%\src\samples\cpp\pull\pull_supplier\pull_supplier.mdp
翻訳が成功した場合、pull_consumer.exe, pull_supplier.exe, pull_library.dllの3つのプログラムが作成されます。pull_library.dllを環境変数PATHに指定されているディレクトリに移動します。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
静的イベントチャネル“pull::sample”を登録します。
esmkchnl -g pull -c sample
イベントチャネルグループ“pull”を起動します。
esstartchnl -g pull
コンシューマ、サプライヤの実行方法を説明します。
pull_supplierのインプリメンテーション情報を登録します。
cd %ES_HOME%\src\samples\cpp\pull register
現ディレクトリを以下に移動し、pull_supplier.exeを起動します。
cd %ES_HOME%\src\samples\cpp\pull\pull_supplier\Release(またはDebug) pull_supplier
これで、サプライヤがイベントチャネル“pull::sample”に接続されます。
別のコマンドプロンプトから現ディレクトリを以下に移動し、pull_consumer.exeを起動します。
cd %ES_HOME%\src\samples\cpp\pull\pull_consumer\Release(またはDebug) pull_consumer
コンシューマがイベントを要求し、イベントチャネルは接続されているサプライヤからイベントを取り出し、コンシューマに復帰させます。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
pull_consumer pull message : Pull-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
イベントサービスのチャネル静的生成 |
Mixed |
any |
cpp\mix |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。 起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\cpp\mix\mix_consumer\mix_consumer.mdp %ES_HOME%\src\samples\cpp\mix\mix_supplier\mix_supplier.mdp
翻訳が成功した場合、mix_consumer.exe, mix_supplier.exeの2つのプログラムが作成されます。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
静的イベントチャネル“mix::sample”を登録します。
esmkchnl -g mix -c sample
イベントチャネルグループ“mix”を起動します。
esstartchnl -g mix
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、mix_consumer.exeを起動します。
cd %ES_HOME%\src\samples\cpp\mix\mix_consumer\Release(またはDebug) mix_consumer
コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。
別のコマンドプロンプトから現ディレクトリを以下に移動し、mix_supplier.exeを起動します。
cd %ES_HOME%\src\samples\cpp\mix\mix_supplier\Release(またはDebug) mix_supplier
これで、イベントチャネルにメッセージを蓄積します。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
mix_consumer pull message : Mixed-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
イベントサービスのチャネル動的生成 |
Mixed |
any |
cpp\factory |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\cpp\factory\factory_consumer\factory_consumer.mdp %ES_HOME%\src\samples\cpp\factory\factory_supplier\factory_supplier.mdp
翻訳が成功した場合、factory_consumer.exe, factory_supplier.exeの2つのプログラムが作成されます。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
イベントファクトリを起動していない場合は、以下のコマンドまたは"EventFactory"サービスの「開始」でイベントファクトリを起動します。
esstartfctry
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、factory_consumer.exeを起動します。
cd %ES_HOME%\src\samples\cpp\factory\factory_consumer\Release(またはDebug) 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.exeを起動します。
cd %ES_HOME%\src\samples\cpp\factory\factory_supplier\Release(またはDebug) 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)
これで、イベントチャネルにメッセージを蓄積します。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
factory_consumer pull message : Factory-MIX-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
イベントサービスのチャネル動的生成(複数IP対応) |
Mixed |
any |
cpp\factory |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\cpp\factory\factory_consumer\factory_consumer.mdp %ES_HOME%\src\samples\cpp\factory\factory_supplier\factory_supplier.mdp
翻訳が成功した場合、factory_consumer.exe, factory_supplier.exeの2つのプログラムが作成されます。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
イベントファクトリを起動していない場合は、以下のコマンドまたは"EventFactory"サービスの「開始」でイベントファクトリを起動します。
esstartfctry
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、factory_consumer.exeを起動します。
cd %ES_HOME%\src\samples\cpp\factory\any\factory_consumer\Release(またはDebug) 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.exeを起動します。
cd %ES_HOME%\src\samples\cpp\factory\factory_supplier\Release(またはDebug) 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 create EventChannel Object(ch1)
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
factory_consumer pull message : Factory-MIX-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービスのチャネル静的生成 |
Mixed |
any |
notify\cpp\mix\any |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\mix\any\mix_consumer\mix_consumer.mdp %ES_HOME%\src\samples\notify\cpp\mix\any\mix_supplier\mix_supplier.mdp
翻訳が成功した場合、mix_consumer.exe, mix_supplier.exeの2つのプログラムが作成されます。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
静的イベントチャネル“mix::sample”を登録します。
esmkchnl -g mix -c sample -notify
イベントチャネルグループ“mix”を起動します。
esstartchnl -g mix
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、mix_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\mix\any\mix_consumer\Release(またはDebug) mix_consumer
コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。
別のコマンドプロンプトから現ディレクトリを以下に移動し、mix_supplier.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\mix\any\mix_supplier\Release(またはDebug) mix_supplier
これで、イベントチャネルにメッセージを蓄積します。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
mix_consumer pull message : Mixed-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービスのチャネル静的生成 |
Mixed |
StructuredEvent |
notify\cpp\mix\structured |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\mix\structured\mix_consumer\mix_consumer.mdp %ES_HOME%\src\samples\notify\cpp\mix\structured\mix_supplier\mix_supplier.mdp
翻訳が成功した場合、mix_consumer.exe, mix_supplier.exeの2つのプログラムが作成されます。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
静的イベントチャネル“mix::sample”を登録します。
esmkchnl -g mix -c sample -notify
イベントチャネルグループ“mix”を起動します。
esstartchnl -g mix
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、mix_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\mix\structured\mix_consumer\Release(またはDebug) mix_consumer
コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。
別のコマンドプロンプトから現ディレクトリを以下に移動し、mix_supplier.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\mix\structured\mix_supplier\Release(またはDebug) mix_supplier
これで、イベントチャネルにメッセージを蓄積します。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
mix_consumer pull message : StructuredEvent Mixed-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービスのチャネル動的生成 |
Mixed |
any |
notify\cpp\factory\any |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\factory\any\factory_consumer\factory_consumer.mdp %ES_HOME%\src\samples\notify\cpp\factory\any\factory_supplier\factory_supplier.mdp
翻訳が成功した場合、factory_consumer.exe, factory_supplier.exeの2つのプログラムが作成されます。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
イベントファクトリを起動していない場合は、以下のコマンドまたは"EventFactory"サービスの「開始」でイベントファクトリを起動します。
esstartfctry
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、factory_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\factory\any\factory_consumer\Release(またはDebug) 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.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\factory\any\factory_supplier\Release(またはDebug) 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...
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
factory_consumer connecting... pull message : Factory-Mixed-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービスのチャネル動的生成(複数IP対応) |
Mixed |
any |
notify\cpp\factory\any |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\factory\any\factory_consumer\factory_consumer.mdp %ES_HOME%\src\samples\notify\cpp\factory\any\factory_supplier\factory_supplier.mdp
翻訳が成功した場合、factory_consumer.exe, factory_supplier.exeの2つのプログラムが作成されます。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
イベントファクトリを起動していない場合は、以下のコマンドまたは"EventFactory"サービスの「開始」でイベントファクトリを起動します。
esstartfctry
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、factory_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\factory\any\factory_consumer\Release(またはDebug) 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.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\factory\any\factory_supplier\Release(またはDebug) 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...
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
factory_consumer connecting... pull message : Factory-Mixed-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービスのチャネル動的生成 |
Mixed |
StructuredEvent |
notify\cpp\factory\structured |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\factory\structured\factory_consumer\factory_consumer.mdp %ES_HOME%\src\samples\notify\cpp\factory\structured\factory_supplier\factory_supplier.mdp
翻訳が成功した場合、factory_consumer.exe, factory_supplier.exeの2つのプログラムが作成されます。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
イベントファクトリを起動していない場合は、以下のコマンドまたは"EventFactory"サービスの「開始」でイベントファクトリを起動します。
esstartfctry
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、factory_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\factory\structured\factory_consumer\Release(またはDebug) 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.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\factory\structured\factory_supplier\Release(またはDebug) 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...
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
factory_consumer connecting... pull message : StructuredEvent Factory-Mixed-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービスのチャネル動的生成(複数IP対応) |
Mixed |
StructuredEvent |
notify\cpp\factory\structured |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリのセットアップを行ってください。
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\factory\structured\factory_consumer\factory_consumer.mdp %ES_HOME%\src\samples\notify\cpp\factory\structured\factory_supplier\factory_supplier.mdp
翻訳が成功した場合、factory_consumer.exe, factory_supplier.exeの2つのプログラムが作成されます。
イベントサービスを起動していない場合は、以下のコマンドまたは"EventService"サービスの「開始」でイベントサービスを起動します。
esstart
イベントファクトリを起動していない場合は、以下のコマンドまたは"EventFactory"サービスの「開始」でイベントファクトリを起動します。
esstartfctry
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、factory_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\factory\structured\factory_consumer\Release(またはDebug) 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.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\factory\structured\factory_supplier\Release(またはDebug) 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...
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
factory_consumer connecting... pull message : StructuredEvent Factory-Mixed-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
接続情報取得(情報取得) |
− |
− |
cpp\util\proxy |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\cpp\util\proxy\es_util_getproxy.mdp
翻訳が成功した場合、es_util_getproxy.exeの1つのプログラムが作成されます。
接続情報取得の実行方法を説明します。
例として静的イベントチャネル“mix::sample”の場合を説明します。
静的イベントチャネル“mix::sample”に接続して、接続情報を回収しないで異常終了したコンシューマおよびサプライヤが存在する場合、および静的イベントチャネル“mix::sample”に接続しているコンシューマおよびサプライヤの接続情報を取得したい場合に起動します。静的イベントチャネル“mix::sample”に接続しているコンシューマおよびサプライヤの実行方法は、“(b6) ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム”および“(b7) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム”を参照してください。
現ディレクトリを以下に移動し、es_util_getproxy.exeを起動します。
cd %ES_HOME%\src\samples\cpp\util\proxy\Release(またはDebug) es_util_getproxy
静的イベントチャネル“mix::sample”に接続しているコンシューマおよびサプライヤの接続情報を取得します。
現在、静的イベントチャネル“mix::sample”に接続しているコンシューマおよびサプライヤの接続情報(IPアドレス、イベントチャネルに接続した時間およびproxy種別)が表示されます。
種別 |
通信モデル |
データ型 |
ディレクトリ |
接続情報取得(個数取得) |
− |
− |
cpp\util\count |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\cpp\util\count\es_util_count.mdp
翻訳が成功した場合、es_util_count.exeの1つのプログラムが作成されます。
接続情報取得の実行方法を説明します。
例として静的イベントチャネル“mix::sample”の場合を説明します。
静的イベントチャネル“mix::sample”に接続して、接続情報を回収しないで異常終了したコンシューマおよびサプライヤが存在する場合、および静的イベントチャネル“mix::sample”に接続しているコンシューマおよびサプライヤの接続情報を取得したい場合に起動します。静的イベントチャネル“mix::sample”に接続しているコンシューマおよびサプライヤの実行方法は、“(b6) ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム”および“(b7) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム”を参照してください。
現ディレクトリを以下に移動し、es_util_count.exeを起動します。
cd %ES_HOME%\src\samples\cpp\util\count\Release(またはDebug) es_util_count
静的イベントチャネル“mix::sample”に接続しているコンシューマ数、サプライヤ数およびイベントチャネルにキューイングされているイベントデータ数を取得します。
現在、静的イベントチャネル“mix::sample”に接続しているコンシューマ数、サプライヤ数およびイベントチャネルにキューイングされているイベントデータ数が表示されます。
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービス(MultiCastモデル)のローカルトランザクション |
Mixed |
StructuredEvent |
notify\cpp\localtran |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\localtran\mix_consumer\mix_consumer.mdp %ES_HOME%\src\samples\notify\cpp\localtran\mix_supplier\mix_supplier.mdp
翻訳が成功した場合、mix_consumer.exe, mix_supplier.exeの2つのプログラムが作成されます。
標準ユニットを生成します。ユニット定義ファイルは、%ES_HOME%\etc\def配下の雛型(esunit01.def)を参考にしてください。
esmkunit -uf <ユニット定義ファイル>
イベントサービスを起動していない場合は、以下のコマンドまたは“EventService”サービスの「開始」でイベントサービスを起動します。
esstart
静的イベントチャネル“mix::sample”を登録します。
esmkchnl -g mix -c sample -notify -persist all -tran
イベントチャネルグループ“mix”を起動します。
esstartchnl -g mix
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、mix_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\localtran\mix_consumer\Release(またはDebug) mix_consumer <ID>
コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。IDには、任意の文字列を指定してください。
別のコマンドプロンプトから現ディレクトリを以下に移動し、mix_supplier.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\localtran\mix_supplier\Release(またはDebug) mix_supplier
これで、イベントチャネルにメッセージを蓄積します。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
mix_consumer <ID> pull message : StructuredEvent Mixed-C++
結果が表示されましたら、disconnectを実施します。
mix_consumer <ID> -del
これで、接続情報が回収されます。
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービス(MultiCastモデル)のグローバルトランザクション |
Mixed |
StructuredEvent |
notify\cpp\ots |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\ots\mix_consumer\mix_consumer.mdp %ES_HOME%\src\samples\notify\cpp\ots\mix_supplier\mix_supplier.mdp
翻訳が成功した場合、mix_consumer.exe, mix_supplier.exeの2つのプログラムが作成されます。
拡張ユニットを生成します。ユニット定義ファイルは、%ES_HOME%\etc\def配下の雛型(esunit01.def)を参考にしてください。
esmkunit -uf <ユニット定義ファイル>
イベントサービスを起動していない場合は、以下のコマンドまたは“EventService”サービスの「開始」でイベントサービスを起動します。
esstart
静的イベントチャネル“mix::sample”を登録します。
esmkchnl -g mix -c sample -notify -persist all -ots -unit <拡張ユニット名>
イベントチャネルグループ“mix”を起動します。
esstartchnl -g mix
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、mix_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\ots\mix_consumer\Release(またはDebug) mix_consumer <ID>
コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。IDには、任意の文字列を指定してください。
別のコマンドプロンプトから現ディレクトリを以下に移動し、mix_supplier.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\ots\mix_supplier\Release(またはDebug) mix_supplier
これで、イベントチャネルにメッセージを蓄積します。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
mix_consumer <ID> pull message : StructuredEvent Mixed-C++
結果が表示されましたら、disconnectを実施します。
mix_consumer <ID> -del
これで、接続情報が回収されます。
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービス(Point-To-Pointモデル)のローカルトランザクション |
Mixed |
StructuredEvent |
notify\cpp\ptp\localtran |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\ptp\localtran\mix_consumer\mix_consumer.mdp %ES_HOME%\src\samples\notify\cpp\ptp\localtran\mix_supplier\mix_supplier.mdp
翻訳が成功した場合、mix_consumer.exe, mix_supplier.exeの2つのプログラムが作成されます。
標準ユニットを生成します。ユニット定義ファイルは、%ES_HOME%\etc\def配下の雛型(esunit01.def)を参考にしてください。
esmkunit -uf <ユニット定義ファイル>
イベントサービスを起動していない場合は、以下のコマンドまたは“EventService”サービスの「開始」でイベントサービスを起動します。
esstart
静的イベントチャネル“mix::sample”を登録します。
esmkchnl -g mix -c sample -notify -persist all -tran -ptp
イベントチャネルグループ“mix”を起動します。
esstartchnl -g mix
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、mix_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\ptp\localtran\mix_consumer\Release(またはDebug) mix_consumer
コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。
別のコマンドプロンプトから現ディレクトリを以下に移動し、mix_supplier.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\ptp\localtran\mix_supplier\Release(またはDebug) mix_supplier
これで、イベントチャネルにメッセージを蓄積します。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
mix_consumer pull message : StructuredEvent Mixed-C++
種別 |
通信モデル |
データ型 |
ディレクトリ |
ノーティフィケーションサービス(Point-To-Pointモデル)のグローバルトランザクション |
Mixed |
StructuredEvent |
notify\cpp\ptp\ots |
サンプルプログラムを翻訳します。エクスプローラなどから以下のプロジェクトワークスペース(.mdp)ファイルをダブルクリックしてVisual C++を起動します。起動されたVisual C++のメニューバーから「ビルド」-「ビルド」を選択します。
%ES_HOME%\src\samples\notify\cpp\ptp\ots\mix_consumer\mix_consumer.mdp %ES_HOME%\src\samples\notify\cpp\ptp\ots\mix_supplier\mix_supplier.mdp
翻訳が成功した場合、mix_consumer.exe, mix_supplier.exeの2つのプログラムが作成されます。
拡張ユニットを生成します。ユニット定義ファイルは、%ES_HOME%\etc\def配下の雛型(esunit01.def)を参考にしてください。
esmkunit -uf <ユニット定義ファイル>
イベントサービスを起動していない場合は、以下のコマンドまたは“EventService”サービスの「開始」でイベントサービスを起動します。
esstart
静的イベントチャネル“mix::sample”を登録します。
esmkchnl -g mix -c sample -notify -persist all -ots -unit <拡張ユニット名> -ptp
イベントチャネルグループ“mix”を起動します。
esstartchnl -g mix
コンシューマ、サプライヤの実行方法を説明します。
現ディレクトリを以下に移動し、mix_consumer.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\ptp\ots\mix_consumer\Release(またはDebug) mix_consumer
コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。
別のコマンドプロンプトから現ディレクトリを以下に移動し、mix_supplier.exeを起動します。
cd %ES_HOME%\src\samples\notify\cpp\ptp\ots\mix_supplier\Release(またはDebug) mix_supplier
これで、イベントチャネルにメッセージを蓄積します。
サンプルプログラムの実行結果を示します。コンシューマ側のコマンドプロンプトに実行結果が出力されます。
mix_consumer pull message : StructuredEvent Mixed-C++
目次
索引
![]() ![]() |