6.12 Hints and tips 6.12.1 JCL errors JES3 DLM handling JES2 DLM handling 6.12.2 S722 abends in JCL In this section, we summarize the issues that we experienced during the JES2 migration  process. This experience can vary on your site and has no claim to completeness. After replacing JES3 with JES2, we observed several JCL errors in production BATCH  processing. The root cause was the different handling of the JCL DD DLM option. The  customer’s production JCL included the jobs that are shown in Example 6-30. Under JES3, you can use the DLM option with DD * or DD DATA. In both cases, the SYSIN  records are read until the characters that are defined in the DLM option appear.  JES2 handles DLM differently from JES3. If you code a DLM character in your JCL with DD *,  the input stream is read until the DLM character or // appears. The differences between both  JES versions when DD *,DLM JCL is used are listed in Table 6-20. Some customer’s jobs were abending with S722, which means that the number of lines that is  produced by these jobs exceeded a certain limit. A customer’s limit was set to 16 message  I/O (MIO) lines, as shown in Example 6-8 on page 127. Even so, some customer jobs were  abending after only one line was produced.  The root cause was determined to be the different handling of the JCL accounting field of the  job card. The handling of the accounting field under JES2 is shown in Figure 6-16. Figure 6-16 Structure of JCL accounting field Table 6-20 Comparison of DLM usage The solution for this issue is to migrate all of your JCL by using DD *,DLM= to DD  DATA,DLM=. Example 6-30 JCL DLM example //SYSIN DD *,DLM=$$ first line second line //third line $$ DLM statement JES3 JES2 DD *,DLM=$$ Read the data until $$ appears Read the data until $$ or // appears DD DATA,DLM=$$ Read the data until $$ appears Read the data until $$ appears 172  A Guide to JES3 to JES2 Migration