我通过ftps将二进制.gz文件从Linux发送到z/OS。 文件传输似乎很好,但是当大型机人员压缩文件时,他们会收到警告:
PEX013W 记录被截断为 lrecl= 996。记录 # 1 为 1000 字节。
目前我正在发送站点命令:
SITE TRAIL
200 SITE command was accepted
SITE CYLINDERS PRIMARY=50 SECONDARY=50
200 SITE command was accepted
SITE RECFM=VB LRECL=1000 BLKSIZE=32000
200 SITE command was accepted
SITE CONDDISP=delete
200 SITE command was accepted
TYPE I
200 Representation type is Image
...
250 Transfer completed successfully.
QUIT
221 Quit command received. Goodbye.
他们可以在 pkunzip 之后读取文件,但发出警告并不是一件好事。
pkunzip 的输出:
SDSF OUTPUT DISPLAY RMD0063A JOB22093 DSID 103 LINE 25 COLUMNS 02- 81
COMMAND INPUT ===> SCROLL ===> CSR
PCM123I Authorized services are unavailable.
PAM030I INPUT Archive opened: TEST.FTP.SOA5021.GZ
PAM560I ARCHIVE FASTSEEK processing is disabled.
PDA000I DDNAME=SYS00001,DISP_STATUS=MOD,DISP_NORMAL=CATALOG,DISP_ABNORMAL=
PDA000I SPACE_TYPE=TRK,SPACE_TYPE=CYL,SPACE_TYPE=BLK
PDA000I SPACE_PRIMARY=4194304,SPACE_DIRBLKS=5767182,INFO_ALCFMT=00
PDA000I VOLUMES=DPPT71,INFO_CNTL=,INFO_STORCLASS=,INFO_MGMTCLASS=
PDA000I INFO_DATACLASS=,INFO_VSAMRECORG=00,INFO_VSAMKEYOFF=0
PDA000I INFO_COPYDD=,INFO_COPYMDL=,INFO_AVGRECU=00,INFO_DSTYPE=00
PEX013W Record(s) being truncated to lrecl= 996. Record# 1 is 1000 bytes.
PEX002I TEST.FTP.SOA5021
PEX003I Extracted to TEST.FTP.SOA5021I.TXT
PAM140I FILES: EXTRACTED EXCLUDED BYPASSED IN ERROR
PAM140I 1 0 0 0
PMT002I PKUNZIP processing complete. RC=00000004 4(Dec) Start: 12:59:48.86 End
是否有一组更好的站点命令将.gz文件从 Linux 传输到 z/OS 以避免此错误?
****更新****
使用下面SaggingRufus的答案,事实证明,只要它是二进制的,你如何发送.gz文件并不重要。 他的建议为我们指出了发送到输出文件的 pkunzip 的参数,它是 VB 并且从记录中截断了 4 个字节。
因为它是一个可变块文件,所以有 4 个字节分配给记录属性。分配 LRECL 为 1004 的文件,就可以了。
与其生成一个.zip文件,不如生成一个.tar.gz文件并将其传输到 z/OS UNIX? 默认情况下,Tar 随 z/OS 一起提供,Rocket Software 提供了一个针对 z/OS 优化的 gzip 端口。