通过FTP提交JCL

时间:2018-05-21 10:36:37

标签: ftp mainframe jcl

我需要通过FTP提交JCL。 在下面编写代码:

open server.com 
uname
password
quote site LRECL=80 BLKSIZE=27920 RECFM=FB
literal SITE FILETYPE=JES 
GET 'PDS.NAME(JCLNAME)' 'LOCAL\PATH\file.txt'
disconnect
bye

问题是即使在假脱机中完成作业之后,在此脚本完成之前大约需要10分钟。 它似乎停留在 125当Job完成时,将检索其输出。 也许我错过了一些预初始化。请指教。

2 个答案:

答案 0 :(得分:0)

看起来JES系统并不真正知道如何处理请求。如果您阅读Steps for submitting a job and automatically receiving output文章,它会解释为了自动获取作业的输出,JCL JOBNAME必须是USERIDx。因此,如果我的用户ID是ABC123,那么我的JOBNAME应该是ABC123A。他们还推荐与您略有不同的设置。试试这个:

open server.com 
USERID
password
SITE FILEtype=JES NOJESGETBYDSN 
GET 'PDS.NAME(USERIDx)' 'LOCAL\PATH\file.txt'
disconnect
bye

当我尝试使用FTP命令时,我得到了相同的结果(等待10分钟)。我认为它与JES接口级别以及保存不同文件的时间有关。使用上面的命令(并使用正确的命名),只要它们处于HELD状态,SYSOUTS将在作业完成后返回。如果某些输出未处于HELD状态,则会跳过它们。

答案 1 :(得分:0)

感到困惑,为什么你要使用' GET'。 我一直使用' PUT'通过FTP提交JCL。

这是我用来通过FTP提交JCL的批处理作业的片段:

::: -- FTP Compress DOC --
:ftp_COMPRESS
echo.
echo  " ----------------------------------- "
echo  " COMPRESSING dataset                 " 
echo  " --------------------------------------- "
IF EXIST ftptemp.txt del ftptemp.txt
echo user %FTPUserID%>> ftptemp.txt
echo %FTPPwd%>> ftptemp.txt
echo cd ..>> ftptemp.txt
echo cd DATASET>> ftptemp.txt
echo del %filename%>> ftptemp.txt
echo quote site file=jes>> ftptemp.txt
echo put compit.jcl>> ftptemp.txt
echo quote site file=seq
echo quit>> ftptemp.txt
ftp -n -s:ftptemp.txt %host%

pause

这里我的本地计算机上的JCL作业保存为compit.jcl,与.bat目录相同:

 //COMPIT    JOB CARD                                          
 //*-------------------------------------------------------------
 //COMPRESS EXEC PGM=IEBCOPY
 //SYSPRINT DD SYSOUT=*
 //LIB DD DSN=DATASET,DISP=OLD
 //SYSIN DD *
  COPY INDD=LIB,OUTDD=LIB
 /*

在将更多成员上传到数据集之前,作业本身是一种压缩数据集的快捷方式。