ログオンプロシージャーは、ユーザーがTSOにログオンするためのプログラムと初期状態で割り当てるデータセットを定義したJCLです。JES2によって変換・解釈されてTSOユーザー空間におけるLOGON処理時に使用されます。EXECステートメントで指定されるプログラムはTMPの初期設定ルーチンであり、名前はIKJEFT01(MSPではKEQEFT01、VOS3ではJETTFT01)です。
ログオン・プロシージャーはユーザーごとに変更することが可能で、デフォルトで割り当てるデータセットを変更することができます。MVSがデフォルトで提供するログオン・プロシージャーがIKJACCNT(MSPではKEQACCNT、VOS3ではSYSPROC)で、SYS1.PROCLIBに登録されています。IKJACCNTは主にシステム保守・管理者用のユーザーIDであるIBMUSER(MSPではTSSUSER、VOS3ではSYSUSER)で使用されますが、多くのセンターではこのIKJACCNTを基にユーザー専用のログオン・プロシージャを作成して通常はそちらを使用します。今日では、IKJACCNTは緊急時用のログオン・プロシージャーとして必要時のみ使用されることが多くなっています。
TSOでは、バッチジョブと違ってユーザーが処理に使用するデータセットはコマンドなどで必要の都度割り当てることができます。そのため、JCL(ログオンプロシージャー)で割り当てるデータセットはデータ処理用のものではなく、TSOセッションを制御するための必要最小限のものが定義されることがほとんどです。この場合、データ処理用のデータセットはプログラムを実行するCLIST(コマンドプロシージャー)側で割り当てられます。
ログオンプロシージャーの名前は、TSOユーザー空間のステップ名としても使われます(プロシージャーステップ名にはVTAM端末のLU名が使われる)。
ログオンプロシージャーの例
1 2 3 4 5 6 7 8 9 10 |
//USRACCNT PROC //USRACCNT EXEC PGM=IKJEFT01,DYNAMNBR=256 //STEPLIB DD DISP=SHR,DSN=ISP.SISPLOAD //SYSPROC DD DISP=SHR,DSN=USR1.CMDPROC // DD DISP=SHR,DSN=SYS1.CMDPROC //SYSHELP DD DISP=SHR,DSN=SYS1.HELP //SYSLBC DD DISP=SHR,DSN=SYS1.BRODCAST //SYSPRINT DD TERM=TS,SYSOUT=* //SYSTERM DD TERM=TS,SYSOUT=* //SYSIN DD TERM=TS |
TSOにログオンする際に利用できるログオンプロシージャーの名前は、ユーザーアカウントと共に登録され、予め登録されたプロシージャー名でなければ指定することができないようになっています。そのため、新たなログオンプロシージャーを作成しても、それを自由に使用することは出来ません。また、登録済みログオンプロシージャーは通常複数ユーザーで共用しますから、既存のプロシージャーの内容を変更すると他のユーザーにも影響を与えます。バッチジョブのJCLと異なり、利用者が自由に定義したり変更したりする性質のものではないのです。定義内容の修正やDDステートメントの追加などが必要であればシステム管理者に依頼します。
バッチによるTSOセッションの実行例
TSOセッションはバッチジョブとして実行することもできます。この場合、ログオンプロシージャーをJOBのJCLとして実行すればよいのです。実行するコマンドやCLISTは、端末入力の代わりにSYSTSIN DDステートメントに定義したデータセット内に記述します。たいていの場合、DD * としてJCL内ストリームデータとして記述されます。
1 2 3 4 5 6 7 8 |
// JOB Statement PROCステートメントの代わりにJOBステートメントを指定 //TSOBATCH EXEC PGM=IKJEFT01 //SYSTSPRT DD SYSOUT=* 必須のDDステートメント //SYSPROC DD DISP=SHR,DSN=MY.CLIST 追加のDDステートメント //SYSTSIN DD * 必須のDDステートメント ALLOC DD(SYSUT1) DA('MY.TESTDATA') TSOコマンドの実行 %MYCLIST1 CLISTの実行 // |