JCL Submitと自動化の話
FTPのJESINTERFACELEVEL=2を前提として、
quote site filetype=JESにしたのち、
JCLをputすることで、submitする方法もあるのだが、結果を取得するのに向かない。
USSのsubmitコマンドを使うのがいいだろう。
submitコマンドにはUSSのファイルパスも受け付けることになっている。
そのため、わざわざJCLをデータセットに置くなんてことも必要ない。
submitコマンドの際に-jオプションで、JOBIDのみを表示させる。
それを拾ってきてから次はどうするか?
ここでwaitコマンドの登場。
waitコマンドはJOBIDを受け付ける。
これでJOBが終わるまで待つ。
ちょっと怖いのは終わらないJOBが居たときか。
それが嫌なら頑張ってループするしかない。
謝辞訂正、waitで待てるのはMVS的なJOBではなかったです。
ftpを繋ぐときは-nオプションで自動ログインは抑止して、
userとpassを打つ感じにする。
このときヒアドキュメントを使う感じだろう。
JESINTERFACELEVEL=2を前提としてftpでgetする。
quote site filetype=JES
quote site jesjobname=${your job name}
quote site jesowner=${your id}
get ${jobid} ${your job name}.log
quit
これでUSS上にJOBLOGが取れてくるだろう。
もう少しアレンジしていくともっと違う形になる。
そもそもsubmitするためにsshで繋いだりしない方法も考えられる。
ftp -n<
pass ****
! ここで引数渡さずに!を打って、シェル環境にする。exit打つまでシェルコマンドを叩けるはず。
mkdir -p /JCLを送るディレクトリ ftpのmkdirだと親ディレクトリの内ディレクトリは作れない
謝辞訂正:シェル環境はローカルだった。。。これじゃダメだ。
exit
cd /JCLを送るディレクトリ
put ローカルのJCLファイル名
!
jobid=`submit -j /JCLを送ったディレクトリ/JCLファイル名`
wait $jobid
ftp -n<