RPG
87. パーシスタント CGI と活動化グループによるセッションの維持
先の「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 に数多く残ることもない。

PREVIOUS INDEX NEXT
HOME