IBM i のLANSA Composerリクエストサーバーの仕組み
下の図は、LANSA Composerの処理シーケンス内で、異なったLANSAシステムや区画にあるLANSAのファンクションを、CALL_FUNCTIONアクティビティを使って同時に"呼び出す"場合の、IBM i のLANSA Composerリクエスト・サーバーの動作を示しています。 図の中で示される番号は以下の注意書きに対応しています。
この図ではCALL_FUNCTIONアクティビティについて示されていますが、これと反対のケース、つまりLANSAアプリケーションで組み込み関数COMPOSER_RUNを使ってLANSA Composerの処理シーケンスを"呼び出す"場合も処理は同様です。
1. CALL_FUNCTIONアクティビティのアクティビティ・プロセッサは、LANSAリクエスト・サーバーで使用される1つまたは複数のヘッダーと詳細データの待ち行列を加えて、リクエスト・サーバーに要求を送信します。 またリクエスト・サーバーがまだ使用できない状態であると分かると、自動的にリクエスト・サーバーを開始させます。
2. LANSA Composerのリクエスト・サーバーが、データ待ち行列から要求についての詳細を受け取ります。
3. CALL_FUNCTIONの場合、リクエスト・サーバーは目的のLANSAシステムの交換リストに交換された変数とデータを追加し、指定のLANSAファンクションを呼び出します。 そこでLANSA交換リストから交換された変数の値を受け取ります。
4. リクエスト・サーバーは応答データを応答データ待ち行列に送ります。
5. CALL_FUNCTIONのアクティビティ・プロセッサが、そのデータ待ち行列からの応答データを受け取り、結果を判断して、必要に応じて処理シーケンスの変数プール内の値を更新します。