先の「86. 実行環境を分割する活動化グループとは」で名前つきの活動化グループを
あらためて説明した背景は パーシスタントCGI を説明するためである。
パーシスタントCGI とは直訳すると「永久的なCGI」とでも呼べばよいのであろうか?
仕組みとしては名前つきの活動化グループとして作成され、途中で終了するときは
LR をONにしないで RETURN
命令だけで終了するCGI のことである。
名前つきの活動化グループのために CGI はメモリに留まり続けることになる。
パーシスタントCGI は JSP & Servlet と同じ効果があり、その最大利点と同じ効果を
発揮することになる。
次回に呼び出されたときにはDISK からではなくメモリ内から直接、起動されるため
パフォーマンスが著しく向上する。
ここにきてパーシスタントCGI を注目したのは EnterpriseServer Ver3.0 の TONAKAI による
仮想対話式環境を実現したかったからである。
TONAKAI によって生成されたパーシスタントCGI は次のような動きをする。
- 最初の EXFMT 命令では HTMLを出力した後でRETURN によって終了する。
このときCGI は終了はしているのでスタックからは完全に消滅する。
しかし活動化グループは消えることなく内部では残存している。 - スタックからは元のCGI は消え去って存在していないので別のCGI を同じスレッド内で
自由に起動することができる。 - 先のCGI がEXFMT の続きとして呼び出されたときは前に実行されたEXFMT からの続きとして
処理が再開される。 - このようにしてスタック環境の復元はいつでも可能である。
- スタックの復元が可能であることによって ボタンや ボタンを
ユーザーが押しても適切なスタック位置が復元されて、そこから処理が再開される。 - ユーザーが ボタンを押したり、F3=終了を行うと活動化グループも CGI も
はじめて完全に終了する。
従来のセッションBean やセッション管理との違いがおわかりであろうか?
更新を行っている多くのサイトでは「 ボタンは押さないでください。」と明記している
場合が多い。
しかし EnterpriseSever の TONAKAI では ボタンやこれらの ボタンを使用可能に
してしまったのである。F5キーを押してもかまわない。
しかも CGI がデータ待ち行列などを待機するようなことはしていない。
フィールドなどの変数値もそのまま残っているし COMMIT & ROLLBACK も可能である。
これはILE活動化グループの最大利点を生かした結果であり、これは iSeries400にしか
できない芸当である。
パフォーマンスは従来より向上し、セッションの残骸がDISK に数多く残ることもない。