きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

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< user ****
pass ****
! ここで引数渡さずに!を打って、シェル環境にする。exit打つまでシェルコマンドを叩けるはず。
mkdir -p /JCLを送るディレクトリ  ftpのmkdirだと親ディレクトリの内ディレクトリは作れない

謝辞訂正:シェル環境はローカルだった。。。これじゃダメだ。
exit
cd /JCLを送るディレクトリ
put ローカルのJCLファイル名
!
jobid=`submit -j /JCLを送ったディレクトリ/JCLファイル名`
wait $jobid
ftp -n<