将2个VB类型文件连接到VB文件中会出现错误无效的数据集属性:SORTOUT BLKSIZE-原因代码为06

问题描述

我正在尝试将2个VB文件加入新的VB文件中,但我总是收到此错误“无效的数据集属性:SORTOUT BLKSIZE-原因代码为06”

这是我现在正在编写的代码

 //STEP2 EXEC pgm=SORT                                     
 //SYSOUT DD SYSOUT=A                                      
 //SORTJNF1 DD DSN=EHASNAW.DATA.DPDARPG1.FILTER,disP=SHR     -> VB FILES 
 //SORTJNF2 DD DSN=EHASNAW.MEMO.REGGH.GDG.G0009V00,disP=SHR   -> VB FILES
 //SORTOUT DD DSN=EHASNAW.DATASET.DPDARPG4,UNIT=SYSDA,//             DCB=(RECFM=VB,BUFNO=40,BLKSIZE=0),//             disP=(,CATLG,DELETE),//             SPACE=(CYL,(8,10),RLSE)                    
 //SYSIN DD *                                              
   JOINKEYS FILE=F1,FIELDS=(114,06,A)      -> already +4 for the position because its VB                
   JOINKEYS FILE=F2,FIELDS=(09,A)       -> already +4 for the position because its VB                
   REFORMAT FIELDS=(F1:114,06)                             
   OUTREC FIELDS=(04,06)                                   
   SORT FIELDS=(04,PD,A)                                

有人可以帮助我吗?因为我不知道这是什么错误,并且对这种语言不熟悉,所以谢谢您

解决方法

在z / OS上的错误消息通常总是以消息标识符为前缀(3-4个字母字符,后跟2-5位数字,可选地后面跟另一个字母字符)。这是查找更多信息的关键,消息将告诉您。

就您而言,我敢打赌消息标识符为“ ICE043A”。查找消息说明的最简单方法是使用“ Google”标识符(而不是完整的消息)。通常,热门歌曲之一就是您所需要的。

消息经常具有一个或多个附加信息,例如“原因代码”或“返回代码”等。然后,该消息指向该消息文本中的小节,其中包含更详细的信息。

>

在您的情况下,此附加信息为“ Rescon代码06”。如果您查找该消息,则本小节将讨论固定长度记录,以及LRECL和BLKSIZE的问题。

您在// SORTOUT DD语句上指定RECFM = VB,但正在建立固定长度的记录

...
OUTREC FIELDS=(04,06)

这使SORT逻辑难以确定输出数据集属性。 放弃所有输出数据集属性,让SORT决定,或在OUTREC上建立正确的RECFM = VB记录(提示:您必须包括RDW,即位置1-4)。

您可能不习惯于获取有关错误消息的更多详细信息,但是在z / OS(以及重要的z / VM)上,这是处理错误的基础。大多数产品在帮助您解决错误消息方面做得非常出色。因此,每当遇到不了解的消息时,第一步应该是查找消息文本。很多时候但并非总是如此,它可以清楚地说明问题所在。