- 「メインフレーム・コンピューター」で遊ぼう - http://www.arteceed.net -

PROCライブラリーを一時的に変更する

STARTコマンドで指定するプロシージャーやJCLから呼び出すカタログ・プロシージャーを格納するプロシージャー・ライブラリーは、通常JES2の起動プロシージャーに定義されていて、システム稼働中に変えることはできませんでした。しかし、現在のz/OSではJES2コマンドで簡単にPROCLIB定義を変えることができます。業務系のシステムで使うことはないでしょうが、開発やテスト系のシステムでは役に立つこともあるかも知れません。
一時的に、現在のPROCLIBとは無関係に独自のデータセット内のプロシージャー(JCL)を使うには、以下の手順でJES2コマンドを実行します。


独自のデータセットをPROCLIBとして追加登録する

  • $ADDPROCLIB(PROC01),DD(1)=DSN=ART1.PROCLIB

これで、ART1.PROCLIBが独自のPROCライブラリーPROC01として登録されます。ただし、この時点ではART1.PROCLIBは、まだPROCライブラリーとしては使われません。


    STARTコマンド用のPROCライブラリーを変更する

    • $DJOBCLASS(STC),PROCLIB
    • $TJOBCLASS(STC),PROCLIB=01

    最初の$DJOBCLASSコマンドでSTCクラスの現在のPROCxxサフィックスを調べます。PROC00であることがほとんどですが、万が一ということもあります。次の$TJOBCLASSコマンドでSTCクラスのPROCLIBパラメーターを01に変更します。これで、STARTコマンドで指定されたメンバーは、PROCライブラリーPROC01から探されます。PROC01は、先ほどの$ADDコマンドで登録したものです。プロシージャー・メンバーは、ここに定義したART1.PROCLIBから探されます。ART1.PROCLIBになければSTARTコマンドは失敗します。あくまでも一時的変更しています。

    • $TJOBCLASS(STC),PROCLIB=00

    元に戻す場合は、$TJOBCLASSコマンドでSTCクラスのPROCLIBパラメーターを00($DJOBCLASSコマンドで得られたSTCクラスの元のPROCxxサフィックス)に変更します。これで、STARTコマンドで指定したメンバーは、元のプロシージャー・ライオブラリーから探されるようになります。


    カタログ・プロシージャー用のPROCライブラリーを変更する

    • $DJOBCLASS(B),PROCLIB
    • $TJOBCLASS(B),PROCLIB=01

    JCLで使うカタログ・プロシージャーのライブラリーを変更するには、JOBCALSSにSTCではなく、カタログ・プロシージャーを使うジョブのジョブ・クラス(実行クラス)を指定して、PROCLIBパラメーターを変更します。カタプロの場合は、こんな面倒なことをしなくても、JCL側のJCLLIBステートメントで変更できますから使う機会は少ないでしょう。JCLを直せないような場合は、応用できる方法の1つです。
    特定のクラスではなく、全てのクラスに対して変更するならクラス文字に * を指定できます。

    • $TJOBCLASS(B),PROCLIB=00

    元に戻す場合は、$TJOBCLASSコマンドで変更したクラスのPROCLIBパラメーターを00($DJOBCLASSコマンドで得られた指定クラスの元のPROCxxサフィックス)に変更します。これで、カタログ・プロシージャーは、元のプロシージャー・ライオブラリーから探されるようになります。


    システム全体で使用するPROCライブラリーを変更する

    • $TPROCLIB(PROC01),NAME=PROC00

    $ADDコマンドで追加した独自のPROCライブラリーPROC01を、PROC00の名前に変更します。PROC00はJES2のデフォルト・プロシージャー・ライオブラリーなので、このコマンドによってシステム全体のプロシージャー・ライブラリーが、PROC01として登録されたデータセットに変わります。

    • $TPROCLIB(PROC00),NAME=PROC01

    元に戻す場合は、$TPROCLIBコマンドで変更後のPROC00をPROC01の名前に戻します。この時点で、元々のPROC00が復活するので、システム全体のプロシージャー・ライブラリーがJES2起動プロシージャーに定義された元のプロシージャー・ライブラリーに戻ります。


追加登録した独自のデータセットをPROCLIBから削除する

  • $DELPROCLIB(PROC01)
  • 作業が終わって元のプロシージャー・ライブラリーに戻したら、追加登録した独自のPROCライブラリーの登録を削除します。


複数のデータセットをPROCLIBとして追加登録する

  • $ADDPROCLIB(PROC01),DD(1)=DSN=ART1.PROCLIB,DD(2)=DSN=USR1.PROCLIB,DD(3)=DSN=SYS1.PROCLIB

追加登録するプロシージャー・ライブラリーに、複数のデータセットを連結する場合は、DDパラメーターに連結順序を指定します。この例は、以下のDDステートメントと同じです。

    //PROC01   DD DISP=SHR,DSN=ART1.PROCLIB
    //         DD DISP=SHR,DSN=USR1.PROCLIB
    //         DD DISP=SHR,DSN=SYS1.PROCLIB
    
  • $DPROCLIB

$DPROCLIBコマンドで、現行のプロシージャー・ライブラリーを確認できます。PROC01として独自のプロシージャー・ライブラリーを追加登録する際に、独自のデータセットの後ろに、現在のプロシージャー・ライブラリーを構成するデータセットを追加指定すれば、一時的な変更中であっても、他の人の作業やジョブの実行に影響を与える心配はありません。