Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

4.8.1 スケジュール機能の概要

スケジュール機能は,RPC通信機能によって受信したRPC要求電文をJ2EEサーバで効率良く処理するための機能です。TP1/Server Baseのスケジュールサービスの一部の機能に相当します。

TP1インバウンドアダプタでのスケジュール機能の位置づけを次の図に示します。

図4-11 スケジュール通信機能の位置づけ

[図データ]

スケジュール機能は,次の要素で構成されます。

  1. スケジュールキュー
    RPC通信機能によって受信したRPC要求を保持するキューです。RPC要求は,FIFO方式で保持します。
    スケジュールキューは,Message-driven Bean(サービス)開始時にMessage-driven Bean(サービス)ごとに一つ作成され,Message-driven Bean(サービス)の終了時に削除されます。
  2. Message-driven Bean(サービス)実行制御スレッド
    スケジュールキューからRPC要求を取り出して,空いているMessage-driven Bean(サービス)呼び出しスレッドに処理を委譲します。
    Message-driven Bean(サービス)実行制御スレッドは,Message-driven Bean(サービス)開始時に,Message-driven Bean(サービス)ごとに一つ作成され,Message-driven Bean(サービス)の終了時に削除されます。
  3. Message-driven Bean(サービス)呼び出しスレッド
    Message-driven Bean(サービス)を実行するスレッドです。Connector 1.5仕様に準拠したWorkManagerによって管理されます。
    Message-driven Bean(サービス)実行制御スレッドがRPC要求をスケジュールキューから取り出して受け付けたときにWorkManagerによって割り当てられます。
    RPC応答後は,Message-driven Bean(サービス)呼び出しスレッドはWorkManagerに返されます。WorkManagerが管理するスレッドは,TP1インバウンドアダプタを開始したときに生成され,TP1インバウンドアダプタ終了時に削除されます。
    スレッドの詳細については,「4.8.3 Message-driven Bean(サービス)の同時実行数の制御」を参照してください。
  4. Message-driven Bean(サービス)
    業務処理を実行するサービスとなるMessage-driven Beanです。OpenTP1のSPPに相当します。
     

スケジュール機能の処理の流れを次に示します。

  1. Message-driven Bean(サービス)を開始した時に,Message-driven Bean単位にスケジュールキューおよびMessage-driven Bean(サービス)実行制御スレッドが作成されます。
  2. RPC通信機能でのRPC要求受信後,受信したRPC要求はスケジュールキューに格納されます。
  3. スケジュールキューに格納されたRPC要求がMessage-driven Bean(サービス)実行制御スレッドによって取り出されます。このタイミングで,Connector 1.5仕様に準拠したWorkManagerによって,Message-driven Bean(サービス)呼び出しスレッドが割り当てられます。
  4. Message-driven Bean(サービス)実行制御スレッドがMessage-driven Bean(サービス)呼び出しスレッドにRPC要求を委譲します。
  5. Message-driven Bean(サービス)呼び出しスレッドによって,Message-driven Beanが実行されます。

なお,TP1インバウンドアダプタでは,OpenTP1の機能であるスケジュールの優先順位(ユーザサービス定義のschedule_priority)を指定したRPC要求を受信した場合も,優先順位は無視します。優先順位を指定したRPC要求を受信した場合も,優先順序が設定されていないRPC要求と同じように扱い,受信した順番で処理を実行します。

スケジュール機能では,これらの処理をする際に,次の項目を制御できます。