前章の「148.再コンパイルをしないでモジュールを更新するには ?」で紹介したように
UPDPGM
を使えばコンパイル済みのプログラム(*PGM
) に
同梱されているモジュール(*MODULE
) を
UPDPGM コマンドによって置き換えられることがわかった。
ここからはさらに高度な使用方法として、バインド済みのモジュールに対して
別のライブラリーにある同じ名前のライブラリーに置き換える方法を紹介しよう。
弊社としてのストーリーは前章で紹介したようにユーザー・プログラムに既にバインドされて
*PGM
として作成されているプログラムに同梱されているモジュールを弊社のライブラリーにある
同じ名前のモジュールに置き換えようというものである。
例えば、今、 TESTLIB/TESTPGM
というプログラムは、
CRTPGM TESTLIB/TESTPGM MODULE(QTEMP/TESTPGM MODLIB/MYMOD)
のようにしてライブラリー MODLIB
のモジュール MYMOD
をバインドして作成されている。
この MYMOD を新しいライブラリー NEWLIB
の MYMOD に置き換えようというものである。
単に、
UPDPGM TESTLIB/TESTPGM MODULE(MODLIB/MYMOD)
としたのでは TESTPGM
内の最新のモジュール MODLIB/TESTPGM
に
更新されるだけであるが、これを NEWLIB/MYMOD
に置き換えるには
UPDPGM TESTLIB/TESTPGM MODULE(NEWLIB/MYMOD) RPLLIB(MODLIB)
のように置き換えライブラリー(RPLLIB
)パラメータに旧ライブラリー名を指定すれば
任意のライブラリーのモジュールに置き換えることができる。
置き換え後に
DSPPGM TESTLIB/TESTPGM
でプログラム TESTLIB/TESTPGM
を調べてみると依然として MODLIB/MYMOD
が
バインドしているかのように見えるが、これは DSPPGM
の情報表示が不完全なだけであって
実行してみれば NEWLIB/MYMOD
が起動されていることがわかる。
これによってモジュールをバインドしてしまっているような製品であっても、すっかり裸同然であり
完全なコンバージョンが行えるようになる。