TSOバッチ・セッション(TSOセッションをバッチジョブで実行する)
TSOコマンドは通常端末を利用するフォアグラウンドセッションで使用しますが、サブミットされたバッチジョブでも使うことができます。これがTSOのバックグラウンドセッションです。
TSOセッションをバッチで実行するJCL
// JOB Statement //********************************************************************* //* Sample JCL - TSO BATCH SESSION //* ============================== //********************************************************************* //TSOBATCH EXEC PGM=IKJEFT01,REGION=4096K,PARM='1st Execute Command' //SYSTSPRT DD SYSOUT=* //SYSTSIN DD * TSOコマンド、CLIST、REXX Exec...をここに書く 例) LISTALC STATUS SYSNAMES LISTCAT LEVEL(MY) ALL //
プログラム名はMSPではKEQEFT01、VOS3ではJETTFT01となります。最低限必要なDD名SYSTSPRTとSYSTSINです。SYSTSINは入力となるコマンドなどを、SYSTSPRTには実行されたコマンドなどの処理結果が出力されます。コマンドによっては追加のDD文が必要です。PARMパラメーターでセッション開始後に最初に実行するコマンドを指定できます。PARMでコマンド名を指定した場合、1つしかコマンドを実行しないからと言ってSYSTSIN DD文を省略できるわけではありません。ただしDUMMYにすることはできます。
バックグラウンドセッションではLOGONコマンドは使用しません。デフォルト・ユーザー属性を使用して実行されます。ただしRACFを導入した環境ではサブミット元のTSOユーザーIDやJOB文のUSERパラメーターでユーザーが識別されます。
複数のコマンドを実行する時、途中のコマンドがエラーで終了しても(ABENDを除く)後続のコマンドは実行されます。MVSではIKJEFT01の代わりにIKJEFT1Aまたは1Bを指定できます。IKJEFT1AはコマンドやプログラムがシステムABENDした場合はセッションは異常終了します。ユーザーABENDの場合は処理は途中で打ち切られるものセッション自体は正常終了します。またCLIST以外のコマンド、プログラム、REXX execが0以外のコードで完了した場合、セッションはそこで終了します。IKJEFT1BではユーザーABENDであってもセッションは異常終了し、CLISTが0以外のコードで完了してもセッションは終了します。
※これはマニュアル(TSO/Eユーザーズガイド)の間違い。実際にはIKJEFT1Aと同じでCLISTの0以外のコードでは終了しない。同じマニュアルでもTSO/Eカスタマイズガイドには終了しないと書いてある。なおユーザーズガイドはz/OS V1R10のマニュアルでは記述が変わっている。
どのTMPプログラムを使うかは、実行するコマンドの種類や組み合わせ、後続に実行するステップの有無などによって選べばいいでしょう。