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

第1章 機能> 1.3 基礎知識> 1.3.1 通信モデル

1.3.1.5 Pullモデルのデータ管理

 Pullモデルでのイベントデータの管理について説明します。

(1) イベントデータの送受信

 イベントデータのイベントチャネルでの送受信の概要を説明します。最初にイベントチャネルはコンシューマからイベントデータの引き出し要求を受けます。次にイベントチャネルはサプライヤからイベントデータを引き出します。イベントデータをイベントチャネル内に蓄積して、引出しを要求したコンシューマに送信します。他に接続しているすべてのコンシューマがイベントデータを受信すると、イベントチャネルはイベントデータを削除します。その概要を以下に示します。

 上図のイベントデータの送信、受信、削除までの処理について以下に説明します。イベントチャネルは、1つのデータに対して接続中のすべてのコンシューマがpullを発行した後(7の復帰後)、イベントチャネル上のデータを削除(4で獲得したデータ)します。

  1. サプライヤがイベントチャネルに接続します。
  2. コンシューマ1からイベントチャネルへ、イベントデータの送信を要求します。
  3. イベントチャネルから、サプライヤへ、イベントデータの送信を要求します。
  4. サプライヤからイベントチャネルへ、イベントデータを送信します。
  5. イベントチャネルからコンシューマ1へ、イベントデータを送信します。
  6. コンシューマ2からイベントチャネルへ、イベントデータの送信を要求します。
  7. 3、4と同様な処理の後、イベントチャネルからコンシューマ2へ、イベントデータを送信します。その後、イベントチャネルはデータを削除します。

(2) 複数のサプライヤとのイベント通信

 1つのイベントチャネルに複数のサプライヤを接続した場合、イベントチャネルからサプライヤへのイベントデータの引き出し要求は、最初に接続したサプライヤに対して出されます。他のサプライヤは、接続はできますが、イベント通信はできません。イベント通信中のサプライヤを切断すると、次に接続したサプライヤがイベント通信を行います。

(3) イベントデータの蓄積

 イベントデータの蓄積について説明します。イベントチャネルに蓄積したイベントデータは接続中のコンシューマが取り出した後に削除されます。このときのイベントデータの蓄積から削除までの処理について説明します。

  1. サプライヤとコンシューマ1はconnect( )によりイベントチャネルに接続します。
  2. コンシューマ1はpull( )によりイベントデータの引出しを要求します。イベントデータ○はサプライヤからコンシューマ1に送られます。この時点ではまだコンシューマ2が接続されていません。そのためイベントチャネルはイベントデータ○を削除します。
  3. コンシューマ2はconnect( )によりイベントチャネルに接続します。
  4. コンシューマ2はpull( )によりイベントデータの引出しを要求します。イベントデータ●がサプライヤからコンシューマ2に送られます。この時点ではコンシューマ1が接続しているため、イベントデータをイベントチャネルに蓄積します。
  5. コンシューマ1はpull( )によりイベントデータの引出しを要求します。イベントデータ●はイベントチャネルからコンシューマ1に送られます。この時点でイベントデータ●が蓄積した段階で接続していたコンシューマは存在しません。そのためイベントチャネルはイベントデータ●を削除します。

 イベントデータを蓄積してから削除するまでの時間をessetcnfコマンドとessetcnfchnlコマンドの“イベントデータの生存時間”(-ltimeオプション)により指定することができます。この時間内にコンシューマがイベントデータを受け取らなかった場合、イベントチャネルはイベントデータを自動削除します。このときのイベントデータの蓄積から削除までの処理について説明します。

  1. サプライヤとコンシューマ1と2はconnect()によりイベントチャネルに接続します。
  2. コンシューマ2はpull( )によりイベントデータの引出しを要求します。イベントデータ●はサプライヤからコンシューマ2に送られます。この時点でコンシューマ1が接続しているため、イベントデータ●をイベントチャネルに蓄積します。
  3. 蓄積したイベントデータ●は、蓄積してからの時間が生存時間を超えたため、イベントチャネルから削除されます。


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

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