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

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

D.2.4 COBOLアプリケーション

 COBOLのサンプルプログラムについて説明します。なお、サンプルプログラムは、プロセスモードで作成されます。

サンプルプログラムを使用する前に
(1) イベントサービス(Pushモデル)のサンプルプログラム
(2) イベントサービス(Pullモデル)のサンプルプログラム
(3) イベントサービス(Mixedモデル)のサンプルプログラム
(4) イベントサービス(Mixedモデル)のEventFactoryを使用したサンプルプログラム
(5) イベントサービス(Mixedモデル)のEventFactoryを使用したサンプルプログラム(複数IP対応)
(6) ノーティフィケーションサービス(Mixedモデルany型データ)のサンプルプログラム
(7) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のサンプルプログラム
(8) ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム
(9) ノーティフィケーションサービス(Mixedモデルany型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)
(10) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム
(11) ノーティフィケーションサービス(MixedモデルStructuredEvent型データ)のEventFactoryを使用したサンプルプログラム(複数IP対応)
(12) 接続情報取得(情報取得)のサンプルプログラム
(13) 接続情報取得(個数取得)のサンプルプログラム
(14) ノーティフィケーションサービス(MultiCastモデル)のローカルトランザクションのサンプルプログラム
(15) ノーティフィケーションサービス(Point-To-Pointモデル)のローカルトランザクションのサンプルプログラム
(16) ノーティフィケーションサービス(MultiCastモデル)のグローバルトランザクションのサンプルプログラム
(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)を起動します。

  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

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

Copyright 2008 FUJITSU LIMITED