IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Why nothing happened after reading INFILE2?


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Lord.of.Wind

New User


Joined: 17 Nov 2005
Posts: 60

PostPosted: Wed Nov 05, 2008 11:20 am
Reply with quote

The COBOL is compiled in success. But when running JCL, it stopped in line 59 and RC=0. Quite confusing, could somebody help me? Many thanks!

COBOL:
Code:
Command ===>                                                  Scroll ===> CSR 
000001        IDENTIFICATION DIVISION.                                         
000002        PROGRAM-ID  TST.                                                 
000003        ENVIRONMENT DIVISION.                                           
000004       *****************************************************************
000005        INPUT-OUTPUT SECTION.                                           
000006       *****************************************************************
000007        FILE-CONTROL.                                                   
000008            SELECT  INFILE1 ASSIGN TO INPUT1                             
000009              FILE STATUS IS WS-INFILE1-STATUS.                         
000010            SELECT  INFILE2 ASSIGN TO INPUT2                             
000011              FILE STATUS IS WS-INFILE2-STATUS.                         
000012            SELECT  OTFILE1 ASSIGN TO OTPUT1                             
000013              FILE STATUS IS WS-OTFILE1-STATUS.                         
000014        DATA DIVISION.                                                   
000015       *****************************************************************
000016        FILE SECTION.                                                   
000017       *****************************************************************
000018        FD  INFILE1                                                     
000019            RECORDING MODE IS F.                                         
000020        01  INFILE1-REC.                                                 
000021          03  NUM1    PIC 9(10).                                         
000022        FD  INFILE2                                                     
000023            RECORDING MODE IS F.                                         
000024        01  INFILE2-REC.                                                 
000025          03  NUM2    PIC 9(10).                                         
000026        FD  OTFILE1                                                     
000027            RECORDING MODE IS F.                                       
000028        01  OTFILE1-REC.                                               
000029          03 NUM3     PIC 9(11).                                       
000030          03 FILLER   PIC X(59).                                       
000031       *****************************************************************
000032        WORKING-STORAGE SECTION.                                       
000033       *****************************************************************
000034        01  WS-VAR.                                                     
000035          03  WS-NUM1 PIC  9(10).                                       
000036          03  WS-NUM2 PIC  9(10).                                       
000037        01  WS-INFILE1-STATUS PIC X(02).                               
000038        01  WS-INFILE2-STATUS PIC X(02).                               
000039        01  WS-OTFILE1-STATUS PIC X(02).                               
000040        01  WS-FILE-STATUS PIC X(02).                                   
000041          88  FILE-OK  VALUE '00'.                                     
000042          88  FILE-END VALUE '10'.                                     
000043        77  EOF-FLAG   PIC  X(01)   VALUE 'N'.                         
000044       *****************************************************************
000045        PROCEDURE DIVISION.                                             
000046       *****************************************************************
000047            DISPLAY 'TO OPEN FILES'.                                   
000048            OPEN  INPUT INFILE1 INFILE2                                 
000049                  OUTPUT OTFILE1.                                       
000050                                                                       
000051            DISPLAY 'TO READ FILE1'.                                   
000052            READ INFILE1                                               
000053              AT END DISPLAY 'INFILE1 IS END'.                         
000054            MOVE WS-INFILE1-STATUS TO WS-FILE-STATUS                   
000055            DISPLAY 'WS-INFILE1-STATUS: ' WS-INFILE1-STATUS             
000056                                                                       
000057            IF FILE-OK                                                 
000058              DISPLAY 'TO READ FILE2'                                   
000059              READ INFILE2 AT END DISPLAY 'INFILE2 IS END'             
000060              MOVE WS-INFILE2-STATUS TO WS-FILE-STATUS                 
000061              DISPLAY 'FILE2 STATUS: ' WS-FILE-STATUS                   
000062              DISPLAY 'TO DO LOOP'                                     
000063              IF FILE-OK                                               
000064                PERFORM 3000-LOOP THRU 3000-END UNTIL FILE-END         
000065              END-IF                                                   
000066            END-IF.                                                     
000067            CLOSE INFILE1 INFILE2 OTFILE1.                             
000068                                                                       
000069            STOP RUN.                                                   
000070       *****************************************************************
000071        3000-LOOP SECTION.                                             
000072       *****************************************************************
000073             DISPLAY ' NUM1: ' NUM1                                     
000074             DISPLAY '+NUM2: ' NUM2                                     
000075             COMPUTE NUM3 = NUM1 + NUM2                                 
000076             DISPLAY '=NUM3: ' NUM3                                     
000077                                                                         
000078             WRITE OTFILE1-REC.                                         
000079             MOVE WS-OTFILE1-STATUS TO WS-FILE-STATUS                   
000080             IF NOT FILE-OK DISPLAY WS-OTFILE1-STATUS STOP RUN END-IF   
000081                                                                         
000082             READ   INFILE1                                             
000083             MOVE WS-INFILE1-STATUS TO WS-FILE-STATUS                   
000084             IF FILE-END DISPLAY 'INFILE1 IS END' END-IF                 
000085                                                                         
000086             READ   INFILE2                                             
000087             MOVE WS-INFILE2-STATUS TO WS-FILE-STATUS                   
000088             IF FILE-END DISPLAY 'INFILE2 IS END' END-IF                 
000089              .                                                         
000090        3000-END.                                                       
****** **************************** Bottom of Data ****************************


JCL script
Code:
****** ***************************** Top of Data ******************************
000010 //CCC024R  JOB (ACCT#),'CDC024',MSGCLASS=X,MSGLEVEL=(1,1),             
000020 //         CLASS=A,NOTIFY=&SYSUID                                       
000030 //*                                                                     
000040 //JOBLIB    DD DSN=CCC024.TRN.LOADLIB,DISP=SHR                         
000050 //STEP000   EXEC PGM=IEFBR14                                           
000060 //DEL01     DD DSN=CCC024.TEST.OUTFILE1,                               
000070 //             DISP=(MOD,DELETE,DELETE),SPACE=(TRK,0)                   
000080 //*                                                                     
000100 //STEP001   EXEC PGM=TST                                               
000600 //INPUT1    DD DSN=CCC024.TEST.INFILE1,DISP=SHR                         
000700 //INPUT2    DD DSN=CCC024.TEST.INFILE2,DISP=SHR                         
000800 //OTPUT1    DD DSN=CCC024.TEST.OUTFILE1,                               
000900 //             DISP=(NEW,CATLG,DELETE),                                 
001000 //             SPACE=(TRK,(5,5),RLSE),                                 
001100 //             DCB=(RECFM=FB,LRECL=70,BLKSIZE=0)                       
001610 //SYSOUT    DD SYSOUT=*                                                 
001700 /*                                                                     
****** **************************** Bottom of Data ****************************

JCL SYSOUT

Code:
 SDSF OUTPUT DISPLAY CDC024R  JOB05545  DSID   101 LINE 0       COLUMNS 02- 81 
 COMMAND INPUT ===>                                            SCROLL ===> CSR 
********************************* TOP OF DATA **********************************
TO OPEN FILES                                                                   
TO READ FILE1                                                                   
WS-INFILE1-STATUS: 00                                                           
TO READ FILE2                                                                   
******************************** BOTTOM OF DATA ********************************


INFILE2 information:
Code:
Data Set Name . . . . : CCC024.TEST.INFILE2                             
                                                                         
General Data                           Current Allocation               
 Management class . . : **None**        Allocated tracks  . : 5         
 Storage class  . . . : **None**        Allocated extents . : 1         
  Volume serial . . . : VPWRKH                                           
  Device type . . . . : 3390                                             
 Data class . . . . . : **None**       Current Utilization               
  Organization  . . . : PS              Used tracks . . . . : 1         
  Record format . . . : FB              Used extents  . . . : 1         
  Record length . . . : 10                                               
  Block size  . . . . : 50                                               
  1st extent tracks . : 5                                               
  Secondary tracks  . : 15                                               
  Data set name type  :                 SMS Compressible  :   NO         
                                                                         
  Creation date . . . : 2008/11/05      Referenced date . . : 2008/11/05
  Expiration date . . : ***None***                                       
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Wed Nov 05, 2008 11:35 am
Reply with quote

Hello,

I believe you'll need an explicit END-READ here. Or else the statements which follow will be interpreted as part of the AT END clause.
Code:
READ INFILE2 AT END DISPLAY 'INFILE2 IS END'
Back to top
View user's profile Send private message
Bharath Bhat

Active User


Joined: 20 Mar 2008
Posts: 283
Location: chennai

PostPosted: Wed Nov 05, 2008 11:53 am
Reply with quote

Quote:
I believe you'll need an explicit END-READ here.

Or a period after the AT END statement.
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Wed Nov 05, 2008 12:03 pm
Reply with quote

Quote:
Or a period after the AT END statement.

Bharath Bhat,

Nope. Period'll bring an end to the preceding IF FILE-OK also.
Back to top
View user's profile Send private message
Lord.of.Wind

New User


Joined: 17 Nov 2005
Posts: 60

PostPosted: Wed Nov 05, 2008 12:11 pm
Reply with quote

You are very right and thank your very much!
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2481
Location: @my desk

PostPosted: Wed Nov 05, 2008 12:15 pm
Reply with quote

Quote:
You are very right and thank your very much!

You're welcome icon_smile.gif
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts Reading dataset in Python - New Line ... All Other Mainframe Topics 22
No new posts Find the size of a PS file before rea... COBOL Programming 13
No new posts Rexx program reading a DSN then write... CLIST & REXX 4
No new posts Reading subsequent rows in a query. DB2 12
No new posts COBOL reading from SYSIN COBOL Programming 1
Search our Forums:

Back to Top