COBOLのサンプルプログラムについて説明します。なお、サンプルプログラムは、プロセスモードで作成されます。
(8) ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム
(9) ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)
(10) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム
(11) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)
(15) ノーティフィケーションサービス(Point-To-Pointモデル)のローカルトランザクションのサンプルプログラム
(17) ノーティフィケーションサービス(Point-To-Pointモデル)のグローバルトランザクションのサンプルプログラム
注意
サンプルプログラムを動作させるには、COBOLの開発・運用を行うための環境が設定されている必要があります。詳細については、COBOLのマニュアルを参照してください。
サンプルプログラムを使用する前に
1. 環境変数COSEVENTCOMMの設定
サンプルプログラムを翻訳する前に、環境変数COSEVENTCOMMにイベントサービスのCOBOL登録集格納ディレクトリを設定します。
COSEVENTCOMM=/opt/FJSVes/include/COBOL export COSEVENTCOMM
2. 環境変数CORBAの設定
サンプルプログラムを翻訳する前に、環境変数CORBAにCORBAサービスのCOBOL登録集格納ディレクトリを設定します。
CORBA=/opt/FSUNod/include/COBOL export CORBA
CORBA=/opt/FJSVod/include/COBOL export CORBA
3. 環境変数COSTRANSACTIONSの設定
グローバルトランザクションのサンプルプログラム(16)(17)を使用する場合は、サンプルプログラムを翻訳する前に、環境変数COSTRANSACTIONSにグローバルトランザクションのCOBOL登録集格納ディレクトリを設定します。
COSTRANSACTIONS=/opt/FSUNots/include/COBOL export COSTRANSACTIONS
4. 環境変数LD_LIBRARY_PATHの設定
サンプルプログラムを実行する前に、環境変数LD_LIBRARY_PATHにCORBAサービスのライブラリの格納ディレクトリを設定します。
[プロセスモードの場合]
LD_LIBRARY_PATH=/opt/FSUNod/lib/nt:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
[スレッドモード、またはUNICODE/UTF8の場合] LD_LIBRARY_PATH=/opt/FSUNod/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
[プロセスモードの場合]
LD_LIBRARY_PATH=/opt/FJSVod/lib/nt:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
[スレッドモード、またはUNICODE/UTF8の場合] LD_LIBRARY_PATH=/opt/FJSVod/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
5. 環境変数OTS_HOMEの設定
グローバルトランザクションのサンプルプログラム(16)(17)を使用する場合は、サンプルプログラムを翻訳・実行する前に、環境変数OTS_HOMEにデータベース連携サービスのインストールディレクトリを設定します。
OTS_HOME=/opt/FSUNots export OTS_HOME
(1) イベントサービス(Pushモデル)のサンプルプログラム
種別 | 通信モデル | データ型 | サブディレクトリ |
---|---|---|---|
イベントサービスのチャネル静的生成 | Push | any | cobol/push |
1. サンプルプログラムを翻訳し、ネーミングサービスにイベントチャネルを登録します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、push_consumer、push_supplier、libCOSEVENTCOMM-PUSHCONSUMER.soの3つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/bin esstart
イベントチャネルの登録
静的イベントチャネル「push::sample」を登録します。
esmkchnl -g push -c sample
イベントチャネルの起動
イベントチャネルグループ「push」を起動します。
esstartchnl -g push
2. サンプルプログラムの実行
コンシューマ、サプライヤの実行方法を説明します。
環境変数の設定
コンシューマ側では、環境変数LD_LIBRARY_PATHに1.で作成したlibCOSEVENTCOMM-PUSHCONSUMER.soの格納場所を追加します。
/tmp/pushに格納した場合の例を以下に示します。
LD_LIBRARY_PATH=/tmp/push:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
コンシューマのインプリメンテーション情報の登録
push_consumerのインプリメンテーション情報を登録します。
register
コンシューマの起動
コンシューマ(push_consumer)を起動します。
push_consumer &
これで、コンシューマがイベントチャネル「push::sample」に接続されます。
サプライヤの起動
サプライヤ(push_supplier)を起動します。
push_supplier
これにより、サプライヤが送信したメッセージをイベントチャネルに接続されたコンシューマに送信できます。
3. 実行結果
サンプルプログラムの実行結果を示します。
push_consumer & [1] 23845 push_supplier recv data push-COBOL
(2) イベントサービス(Pullモデル)のサンプルプログラム
種別 | 通信モデル | データ型 | サブディレクトリ |
---|---|---|---|
イベントサービスのチャネル静的生成 | Pull | any | cobol/pull |
1. サンプルプログラムを翻訳し、ネーミングサービスにイベントチャネルを登録します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、pull_consumer、pull_supplier、libCOSEVENTCOMM-PULLSUPPLIER.soの3つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/bin esstart
イベントチャネルの登録
静的イベントチャネル「pull::sample」を登録します。
esmkchnl -g pull -c sample
イベントチャネルの起動
イベントチャネルグループ「pull」を起動します。
esstartchnl -g pull
2. サンプルプログラムの実行
コンシューマ、サプライヤの実行方法を説明します。
環境変数の設定
サプライヤ側では、環境変数LD_LIBRARY_PATHに1.で作成したlibCOSEVENTCOMM-PULLSUPPLIER.soの格納場所を追加します。
/tmp/pullに格納した場合の例を以下に示します。
LD_LIBRARY_PATH=/tmp/pull:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
サプライヤのインプリメンテーション情報の登録
pull_supplierのインプリメンテーション情報を登録します。
register
サプライヤの起動
サプライヤ(pull_supplier)を起動します。
pull_supplier &
これで、サプライヤがイベントチャネル「pull::sample」に接続されます。
コンシューマの起動
コンシューマ(pull_consumer)を起動します。
pull_consumer
コンシューマがイベントを要求し、イベントチャネルは接続されているサプライヤからイベントを取り出し、コンシューマに復帰させます。
3. 実行結果
サンプルプログラムの実行結果を示します。
pull_supplier & [1] 23845 pull_consumer recv data pull-COBOL
(3) イベントサービス(Mixedモデル)のサンプルプログラム
種別 | 通信モデル | データ型 | サブディレクトリ |
---|---|---|---|
イベントサービスのチャネル静的生成 | Mixed | any | cobol/mix |
1. サンプルプログラムを翻訳し、ネーミングサービスにイベントチャネルを登録します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、mix_consumer、mix_supplierの2つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/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 recv data mix-COBOL
(4) イベントサービス(Mixedモデル)のEventFactoryを使用したサンプルプログラム
種別 | 通信モデル | データ型 | サブディレクトリ |
---|---|---|---|
イベントサービスのチャネル動的生成 | Mixed | any | cobol/factory |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリをセットアップしてください。
1. サンプルプログラムを翻訳します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、factory_consumer、factory_supplierの2つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/bin esstart
イベントファクトリの起動
イベントファクトリを起動していない場合は、以下のコマンドでイベントファクトリを起動します。
esstartfctry
2. サンプルプログラムの実行
コンシューマ、サプライヤの実行方法を説明します。
コンシューマの起動
コンシューマ(factory_consumer)を起動します。
factory_consumer 1.create, 2.create_channel, 3.get_event_channel select(1-3):
1.を選択すると、createメソッドによりイベントチャネルを以下のイベントチャネル名で生成します。
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 recv data Factory-MIX-COBOL
(5) イベントサービス(Mixedモデル)のEventFactoryを使用したサンプルプログラム(複数IP対応)
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
イベントサービスのチャネル動的生成(複数IP対応) | Mixed | any | cobol/factory |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリをセットアップしてください。
1. サンプルプログラムを翻訳します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、factory_consumer、factory_supplierの2つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/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_channel, 2.get_all_channels, 3.get_event_channel select(1-3):
2.を選択し、コンシューマが接続されているイベントチャネル名“ch1”を指定します。このとき、事前に動的イベントチャネルが生成されていれば、3.を選択して既存のイベントチャネルを使用できます。
2.を選択した場合の操作は、以下のとおりです。
select(1-3): 2 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 get EventChannel(ch1) Object
3.を選択した場合の操作は、以下のとおりです。
select(1-3): 3 input EventChannel name: ch1 get EventChannel Object(ch1)
サプライヤがイベントチャネルに接続し、データを送信します。
3. 実行結果
サンプルプログラムの実行結果を示します。
factory_consumer recv data Factory-MIX-COBOL
(6) ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービスのチャネル静的生成 | Mixed | any | notify/cobol/mix/any |
1. サンプルプログラムを翻訳し、ネーミングサービスにイベントチャネルを登録します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、mix_consumer、mix_supplierの2つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/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-COBOL
(7) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービスのチャネル静的生成 | Mixed | StructuredEvent | notify/cobol/mix/structured |
1. サンプルプログラムを翻訳し、ネーミングサービスにイベントチャネルを登録します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、mix_consumer、mix_supplierの2つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/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-COBOL
(8) ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービスのチャネル動的生成 | Mixed | any | notify/cobol/factory/any |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリをセットアップしてください。
1. サンプルプログラムを翻訳します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、factory_consumer、factory_supplierの2つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/bin esstart
イベントファクトリの起動
イベントファクトリを起動していない場合は、以下のコマンドでイベントファクトリを起動します。
esstartfctry
2. サンプルプログラムの実行
コンシューマ、サプライヤの実行方法を説明します。
コンシューマの起動
コンシューマ(factory_consumer)を起動します。
factory_consumer 1.create, 2.create_channel, 3.get_event_channel select(1-3):
1.を選択し、createメソッドによりイベンチャネルを生成します。
事前に動的イベントチャネルが2つ生成されている場合の例を以下に示します。
select(1-3): 1 input EventChannel name:
複数IPアドレスを使用しないため、“n”を選択します。
Do you use multi IP function?(y/n) n create EventChannelID =+000000003 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=000000003) --- +000000001,+000000002,+000000003 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-COBOL
(9) ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービスのチャネル動的生成(複数IP対応) | Mixed | any | notify/cobol/factory/any |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリをセットアップしてください。
1. サンプルプログラムを翻訳します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、factory_consumer、factory_supplierの2つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/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 =+000000003 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=000000003) --- +000000001,+000000002,+000000003 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-COBOL
(10) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービスのチャネル動的生成 | Mixed | StructuredEvent | notify/cobol/factory/structured |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリをセットアップしてください。
1. サンプルプログラムを翻訳します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、factory_consumer、factory_supplierの2つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/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 =+000000003 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=000000003) --- +000000001,+000000002,+000000003 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-COBOL
(11) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービスのチャネル動的生成(複数IP対応) | Mixed | StructuredEvent | notify/cobol/factory/structured |
イベントファクトリがセットアップされていない場合は、イベントサービスが未起動の状態で、essetupコマンド(essetup -f)によりイベントファクトリをセットアップしてください。
1. サンプルプログラムを翻訳します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、factory_consumer、factory_supplierの2つのプログラムが作成されます。
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
cd /opt/FJSVes/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 =+000000003 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=000000003) --- +000000001,+000000002,+000000003 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-COBOL
(12) 接続情報取得(情報取得)のサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
接続情報取得(情報取得) | - | - | cobol/util/proxy |
1. サンプルプログラムを翻訳します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、es_util_getproxyの1つのプログラムが作成されます。
2. サンプルプログラムの実行
接続情報取得の実行方法を説明します。
静的イベントチャネル「mix::sample」の場合の例で説明します。
静的イベントチャネル「mix::sample」に接続し、接続情報を回収せずに異常終了したコンシューマおよびサプライヤが存在する場合、および静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの接続情報を取得したい場合に起動します。静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの実行方法は、“(6) ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム”および“(7) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム”を参照してください。
接続情報取得の起動
es_util_getproxyを起動します。
es_util_getproxy Please input the time zone. For example:It is 9 for Japan, and -5 for ET 9
イベントチャネルに接続した時間を出力するため、タイムゾーンを指定します。たとえば、日本標準時を出力する場合は“9”を入力し、米国東部標準時を出力する場合は“-5”を指定します。
静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの接続情報を取得します。
注意
IPv6環境において本サンプルプログラムを実行した場合、接続情報のIPアドレスには000.000.000.000が表示されます。IPv6環境で運用する設定については、“チューニングガイド”の“Interstageのチューニング”-“IPv6環境での運用について”、および“CORBAサービスの動作環境ファイル”-“config”(IP-versionパラメタ)を参照してください。
(13) 接続情報取得(個数取得)のサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
接続情報取得(個数取得) | - | - | cobol/util/count |
1. サンプルプログラムの翻訳
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、es_util_countの1つのプログラムが作成されます。
2. サンプルプログラムの実行
接続情報取得の実行方法を説明します。
静的イベントチャネル「mix::sample」の場合の例で説明します。
静的イベントチャネル「mix::sample」に接続し、接続情報を回収せずに異常終了したコンシューマおよびサプライヤが存在する場合、および静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの接続情報を取得したい場合に起動します。静的イベントチャネル「mix::sample」に接続しているコンシューマおよびサプライヤの実行方法は、“(6) ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム”および“(7) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム”を参照してください。
接続情報取得の起動
es_util_countを起動します。
es_util_count
静的イベントチャネル「mix::sample」に接続しているコンシューマ数、サプライヤ数およびイベントチャネルにキューイングされているイベントデータ数を取得します。
3. 実行結果
現在、静的イベントチャネル「mix::sample」に接続しているコンシューマ数、サプライヤ数およびイベントチャネルにキューイングされているイベントデータ数が表示されます。
(14) ノーティフィケーションサービス(MultiCastモデル)のローカルトランザクションのサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービス(MultiCastモデル)のローカルトランザクション | Mixed | StructuredEvent | notify/cobol/localtran |
1. サンプルプログラムを翻訳し、ネーミングサービスにイベントチャネルを登録します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、mix_consumer、mix_supplierの2つのプログラムが作成されます。
ユニットの生成
標準ユニットを生成します。ユニット定義ファイルは、/opt/FJSVes/etc/def配下の雛型(esunit01.def)を参考にしてください。
cd /opt/FJSVes/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-COBOL
結果が表示されたら、disconnectを実施します。
mix_consumer <ID> -del
これで、接続情報が回収されます。
注)disconnectの実施後、mix_consumerを実行したディレクトリ配下に作成されたProxyの情報を含むファイル(ファイル名:proxy<ID>)を手動で削除してください。
(15) ノーティフィケーションサービス(Point-To-Pointモデル)のローカルトランザクションのサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービス(Point-To-Pointモデル)のローカルトランザクション | Mixed | StructuredEvent | notify/cobol/ptp/localtran |
1. サンプルプログラムを翻訳し、ネーミングサービスにイベントチャネルを登録します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、mix_consumer、mix_supplierの2つのプログラムが作成されます。
ユニットの生成
標準ユニットを生成します。ユニット定義ファイルは、/opt/FJSVes/etc/def配下の雛型(esunit01.def)を参考にしてください。
cd /opt/FJSVes/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-COBOL
(16) ノーティフィケーションサービス(MultiCastモデル)のグローバルトランザクションのサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービス(MultiCastモデル)のグローバルトランザクション | Mixed | StructuredEvent | notify/cobol/ots |
1. サンプルプログラムを翻訳し、ネーミングサービスにイベントチャネルを登録します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、mix_consumer、mix_supplierの2つのプログラムが作成されます。
ユニットの生成
拡張ユニットを生成します。ユニット定義ファイルは、/opt/FJSVes/etc/def配下の雛型(esunit01.def)を参考にしてください。
cd /opt/FJSVes/bin esmkunit -uf <ユニット定義ファイル>
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
esstart
イベントチャネルの登録
静的イベントチャネル「mix::sample」を登録します。
esmkchnl -g mix -c sample -notify -persist all -ots -unit <拡張ユニット名>
イベントチャネルの起動
イベントチャネルグループ「mix」を起動します。
esstartchnl -g mix
2. サンプルプログラムの実行
コンシューマ、サプライヤの実行方法を説明します。
なお、本サンプルプログラムを実行する場合は、データベース連携サービスが必要です。Interstageをtype2で初期化してください。
コンシューマの起動
コンシューマ(mix_consumer)を起動します。
mix_consumer <ID> &
コンシューマがイベントを要求します。IDには、任意の文字列を指定してください。
サプライヤの起動
サプライヤ(mix_supplier)を起動します。
mix_supplier
これで、イベントチャネルにメッセージを蓄積します。
イベントチャネルは蓄積されたデータをコンシューマに復帰させます。
3. 実行結果
サンプルプログラムの実行結果を示します。
mix_consumer <ID> & [1] 23845 mix_supplier pull message : StructuredEvent Mixed-COBOL
結果が表示されたら、disconnectを実施します。
mix_consumer <ID> -del
これで、接続情報が回収されます。
注意
disconnectの実施後、mix_consumerを実行したディレクトリ配下に作成されたProxyの情報を含むファイル(ファイル名:proxy<ID>)を手動で削除してください。
(17) ノーティフィケーションサービス(Point-To-Pointモデル)のグローバルトランザクションのサンプルプログラム
種別 | 通信モデル | データ型 | ディレクトリ |
---|---|---|---|
ノーティフィケーションサービス(Point-To-Pointモデル)のグローバルトランザクション | Mixed | StructuredEvent | notify/cobol/ptp/ots |
1. サンプルプログラムを翻訳し、ネーミングサービスにイベントチャネルを登録します。
サンプルソースの翻訳
サンプルプログラムを翻訳します。翻訳手順は、Makefileで定義されています。
make
翻訳が成功した場合、mix_consumer、mix_supplierの2つのプログラムが作成されます。
ユニットの生成
拡張ユニットを生成します。ユニット定義ファイルは、/opt/FJSVes/etc/def配下の雛型(esunit01.def)を参考にしてください。
cd /opt/FJSVes/bin esmkunit -uf <ユニット定義ファイル>
イベントサービスの起動
イベントサービスを起動していない場合は、以下のコマンドでイベントサービスを起動します。
esstart
イベントチャネルの登録
静的イベントチャネル「mix::sample」を登録します。
esmkchnl -g mix -c sample -notify -persist all -ots -unit <拡張ユニット名> -ptp
イベントチャネルの起動
イベントチャネルグループ「mix」を起動します。
esstartchnl -g mix
2. サンプルプログラムの実行
コンシューマ、サプライヤの実行方法を説明します。
なお、本サンプルプログラムを実行する場合は、データベース連携サービスが必要です。Interstageをtype2で初期化してください。
コンシューマの起動
コンシューマ(mix_consumer)を起動します。
mix_consumer &
コンシューマがイベントを要求し、イベントチャネルはイベントチャネルに蓄積されたデータをコンシューマに復帰させます。
サプライヤの起動
サプライヤ(mix_supplier)を起動します。
mix_supplier
これで、イベントチャネルにメッセージを蓄積します。
イベントチャネルは蓄積されたデータをコンシューマに復帰させます。
3. 実行結果
サンプルプログラムの実行結果を示します。コンシューマ側に実行結果が出力されます。
mix_consumer & [1] 23845 mix_supplier pull message : StructuredEvent Mixed-COBOL