IFS

10. IFS のテスト環境と本番環境

ライブラリー環境での開発の場合ではライブラリー・リストの設定を変更することによって
テスト環境と本番環境とを変更することが、良く知られていて実際利用されている。
しかし Web開発などの IFS 環境を参照している適用業務ではライブラリー・リストの変更によって
テスト環境と本番環境を切り分けることはできない。
既に本番環境が稼動済みの大規模開発ではどのようにすれはよいのだろうか ?
最も簡単な切り替えは System i の筐体をもうひとつテスト用として用意しておくことであろう。
また LPAR でも同じことである。
しかし十分な予算がない事情では、テスト用と本番用の System i を2つ用意することは難しい。
何とかライブラリー・リストのように設定変更だけによるテスト環境と本番環境の切り替えは
できないものであろうか ?
ここでは、そのような問題を解決する手法としてのスマートな方法を紹介しよう。

■ 現行ディレクトリーによる解決

現在のジョブの現行ディレクトリーは DSPLNK コマンドによって表示することができる。
DSPLNK + [実行] によって下記のような画面が表示される。

DSPLNK + [実行]

最上部に表示されているディレクトリー名が現行ディレクトリーつまりカレント・ディレクトリーである。
( UNIX では PWD というコマンドが御馴染みであるが System i では PWD は提供されていない。)
さて次に IFS : /TEST/PCOMM.WS というストリーム・ファイルを DSPF コマンドによって
表示することを行ってみたい。

DSPF STMF('/TEST/PCOMM.WS') + [実行] すると次のように表示することができる。

DSPF STMF('/TEST/PCOMM.WS') + [実行]

次にディリトクリー /TEST を指定せず
DSPF STMF('/PCOMM.WS') + [実行] すると当然、

このようなパスまたはディレクトリーはない

というエラー・メッセージが送出されて表示することはできない。
しかし CD DIR('/TEST') + [実行] によって現行ディレクトーを CD コマンドを使って
/TEST に変更してみると DSPLNK + [実行] では

DSPLNK + [実行]

となり、続いて DSPF STMF('/PCOMM.WS') + [実行] では

このようなパスまたはディレクトリーはない

というエラー・メッセージが送出されて表示することはできない。
しかし DSPF STMF('PCOMM.WS') + [実行] とすると

DSPF STMF('PCOMM.WS') + [実行]

のようにして表示することができるのである。

つまりパス名の先頭の文字が「/」であればルート・ディレクトリーからの開始であり
/ .... との意味と解釈されるのであるが(これを絶対パスと呼ぶ)
文字「/」がない場合は現行ディレクトリーが先頭に付加されて /TEST/PCOMM.WS として
解釈される。(これを相対パスと呼ぶ)
従って次のことが言える。

適用業務で指定するパス名を相対パス名として記述しておけば
現行ディレクトリーの変更だけでテスト環境と本番環境を切り替えることができる。

【 例 】

テスト用の IFS は /TEST ディレクトリーの配下に保存しておく。
本番用の IFS は / (ルート・ディレクトリー) の配下に保存する。
テストのときは現行ディリクトリーは /TEST で実行して本番のときは CD によって
/ に切り替える。