2.3.4 入出力プラグインのインスタンスのライフサイクル
プラグインのインスタンスのライフサイクルについて説明します。
(1) 入出力プラグインのインスタンスの生成および保持
入出力プラグインのインスタンスは,インスタンスIDで管理されます。ユーザプラグインの場合,「インスタンスID=プラグインID」となります。
- メモ
-
システムプラグインの場合,インスタンスIDは次のように定義されます。
-
JavaScriptプラグイン
インスタンスID=プラグインID+プラグイン名
-
上記以外のプラグイン
インスタンスID=プラグインID
-
同一インスタンスIDの入出力プラグインのインスタンスは,一つの画面につき一つずつ保持されます。各インスタンスは,画面IDをキーにしてHTTPセッションに保持されます。入出力プラグインのインスタンスについて,次の図に示します。
入出力プラグインを実行するときに,HTTPセッションから画面IDとインスタンスIDをキーにして,実行する入出力プラグインのインスタンスを取得します。HTTPセッションからインスタンスを取得できない場合は,新たなインスタンスを生成してHTTPセッションに追加します。このとき生成するのは実行するインスタンスだけです。例えば,次の図のように分岐ノードがある業務コンテンツを実行する際,ノード1→ノード2→ノード4の順で遷移した場合は,プラグインA,プラグインB,プラグインDだけ実行されて,プラグインCは実行されません。したがって,この遷移で業務コンテンツを実行したときは,プラグインCのインスタンスは生成しません。
(2) 入出力プラグインのインスタンスの破棄
入出力プラグインのインスタンスが破棄されるタイミングを次の表に示します。破棄するタイミングは業務実行画面,および業務実行画面(プレビュー)のどちらで操作した場合も同じです。
項番 |
タイミング |
破棄されるプラグインのインスタンス |
---|---|---|
1 |
業務実行画面,または業務実行画面(プレビュー)で業務コンテンツを表示したとき※ |
操作を実行したときのHTTPセッションが,操作した画面の画面IDをキーにして保持しているインスタンス |
2 |
[編集画面表示]メニューをクリックしたとき |
|
3 |
[ログアウト]ボタンをクリックしたとき |
破棄するHTTPセッションが保持している,すべてのインスタンス |
4 |
セッションがタイムアウトしたとき |