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

第1章 機能> 1.3 基礎知識

1.3.5 イベントチャネルのプロセスとスレッドの構成

 イベントチャネルが動作したときのプロセスとスレッドの構成について説明します。

静的生成運

 イベントチャネルを静的生成する際に使用するesmkchnlコマンドでは、1つのグループの中に複数のイベントチャネルを含めることができます。生成したイベントチャネルのグループは、グループ名指定でesstartchnlコマンドにより起動します。esstartchnlコマンドを起動すると、指定したグループ情報に含まれるすべてのイベントチャネルを起動します。このとき、グループ情報1つに1つのプロセスを起動し、イベントチャネルをプロセス内にスレッドとして起動します。

 また、イベントチャネルのスレッドとは別に、タイマ監視スレッドを起動時に生成します。これは、グループ内で共通の環境情報であるイベントデータの生存時間と待ち合わせ時間を監視します。グループ情報とプロセスの対応を以下に示します。

 1つのイベントチャネルは、複数のスレッドにより構成されています。イベントチャネルを構成するスレッド数は、イベントチャネルのモデル、構成情報、イベントチャネルの環境情報の設定により異なります。イベントチャネルのスレッド構成を以下に示します。図中の送受信制御スレッドは、イベントデータを受け渡す基本となるスレッドです。その配下に送信スレッドが存在します。その数は、送信スレッド数の初期値(essetcnfコマンドまたはessetcnfchnlコマンドの-sthinitオプション)と最大値(essetcnfコマンドまたはessetcnfchnlコマンドの-sthmaxオプション)により決まります。

動的生成運

 イベントチャネルを動的生成する際に使用するイベントファクトリのcreateメソッドは、イベントチャネルを動作させるプロセスの生成と、プロセス上のイベントチャネルの生成・起動を行います。その概要を以下に示します。この図は、イベントチャネルを動作させるプロセス数が3個で、動作できるイベントチャネルの最大数が9個の例です。

 図中の番号に沿ってプロセスの生成と、イベントチャネルの生成・起動を以下に説明します。イベントチャネルを構成するスレッドについては、静的生成運用の構成を参照してください。

  1. createメソッドの起動を受け付けると、イベントチャネルを動作させるプロセスを検索します。プロセスが存在しない場合はプロセスを生成します。生成するときにプロセス上で動作するイベントチャネル数を決定します。
  2. 動作させるプロセスを決定すると、プロセス上にイベントチャネルを生成および起動します。上図では、プロセス1のイベントチャネル1、プロセス2のイベントチャネル5、プロセス3のイベントチャネル7と9が動作しています。残りのイベントチャネルは、生成の用意ができている状態を表わしています。この状態でcreateメソッドを実行すると、空きの多いプロセス1またはプロセス2のイベントチャネルを使用します。

 動的生成できるイベントチャネルの総数は、動的生成のイベントチャネルの最大起動数(essetcnfコマンドの-dchmaxオプション)で指定します。動的生成のイベントチャネルが動作するプロセスの最大数は、イベントチャネルの最大プロセス数(essetupコマンドの-pオプション)で指定します。


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

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