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

File Status 35 inspite of File being present


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Sunithap.84

New User


Joined: 01 Apr 2015
Posts: 6
Location: India

PostPosted: Wed Apr 01, 2015 3:07 pm
Reply with quote

Hi

I am trying to code a very simple cobol program which reads records from a sequential file and writes into working-storage variable. The sequential file that i have created has 2 records. Inspite of mentioning the file in DD name of JCL and also invoking it in cobol, im getting File Status 35 error. Please help.

Code:

IDENTIFICATION DIVISION.                               
PROGRAM-ID. READSQ.                                   
                                                       
ENVIRONMENT DIVISION.                                 
INPUT-OUTPUT SECTION.                                 
FILE-CONTROL.                                         
    SELECT STUDENT ASSIGN TO INFILE                   
    ORGANIZATION IS SEQUENTIAL                         
    FILE STATUS IS WS-FS01.                           
                                                       
DATA DIVISION.                                         
FILE SECTION.                                         
FD STUDENT                                             
    RECORDING MODE IS F                               
    RECORD CONTAINS 80 CHARACTERS.                     
 01 STUDENT-FILE.                       
     05 STUDENT-ID    PIC 9(5).         
     05 STUDENT-NAME  PIC X(20).         
     05 FILLER        PIC X(55).         
*                                       
 WORKING-STORAGE SECTION.               
 01 WS-STUDENT.                         
     05 WS-STUDENT-ID PIC 9(5).         
     05 WS-NAME       PIC X(20).         
     05 FILLER        PIC X(55).         
*                                       
 77 WS-EOF            PIC X(1) VALUE 'N'.
 77 WS-FS01           PIC 9(02).         
 77 N                 PIC 9(01) VALUE 2.                         
                                                       
PROCEDURE DIVISION.                                   
    DISPLAY 'PROGRAM STARTS'.                         
    OPEN INPUT STUDENT.                               
    DISPLAY ' FILE STATUS AFTER OPEN IS: ', WS-FS01.   
    DISPLAY 'FILE OPEN'.                                                 
    PERFORM READ-PARA N TIMES.                       
     DISPLAY 'SUCCESSFUL READ'.                       
     CLOSE STUDENT.                                   
     STOP RUN.                                       
*                                                     
 READ-PARA.                                           
     DISPLAY 'FILE READ'.                             
     READ STUDENT INTO WS-STUDENT.                     
     DISPLAY ' FILE STATUS AFTER READ IS: ', WS-FS01.   
     DISPLAY 'STUDENT ID=', WS-STUDENT-ID.             
     DISPLAY 'STUDENT NAME=', WS-NAME.                 


JCL

Code:

//ATSUNPA2 JOB (123),'SEQ READ',                               
//         CLASS=A,MSGCLASS=A,                                 
//         MSGLEVEL=(1,1),                                     
//         NOTIFY=&SYSUID,REGION=0M                           
//*                                                           
//PROC   JCLLIB ORDER=(SYS1.ADCOB.SIGYPROC)                   
//*                                                           
//COBOL EXEC IGYWCLG                                           
//*                                                           
//COBOL.SYSIN DD DSN=ATXSCLM.ATSUNPA.COB.TEST(READSQ),DISP=SHR
//*                                                           
//INFILE DD DSN=ATXSCLM.ATSUNPA.STUDENT,DISP=SHR         
//*                                                           
//SYSPRINT DD SYSOUT=*                                         
//SYSOUT DD SYSOUT=*                                           


File
Code:

VIEW       ATXSCLM.ATSUNPA.STUDENT                         Columns 00001 00072
Command ===>                                                  Scroll ===> CSR 
****** ***************************** Top of Data ******************************
000100 12345ABCDE                                                             
000200 67890YYYYY                                                             
****** **************************** Bottom of Data ****************************
                                                                               


File Layout

Code:

                             Data Set Information                             
Command ===>                                                                   
                                                                               
Data Set Name . . . . : ATXSCLM.ATSUNPA.STUDENT                               
                                                                               
General Data                           Current Allocation                     
 Management class . . : UM2B5ND         Allocated blocks  . : 39               
 Storage class  . . . : SNMN            Allocated extents . : 1               
  Volume serial . . . : TSO010                                                 
  Device type . . . . : 3390                                                   
 Data class . . . . . : **None**                                               
  Organization  . . . : PS             Current Utilization                     
  Record format . . . : FB              Used blocks . . . . : 1               
  Record length . . . : 80              Used extents  . . . : 1               
  Block size  . . . . : 800                                                   
  1st extent blocks . : 39                                                     
  Secondary blocks  . : 10             Dates                                   
  Data set name type  :                 Creation date . . . : 2015/03/31       
  SMS Compressible. . : NO              Referenced date . . : 2015/04/01       
                                        Expiration date . . : ***None***       
                                                                               



Sysout
Code:
*********************************
PROGRAM STARTS                   
 FILE STATUS AFTER OPEN IS: 35   
FILE OPEN                         
FILE READ                         
 FILE STATUS AFTER READ IS: 47   
STUDENT ID=                       
STUDENT NAME=                     
FILE READ                         
 FILE STATUS AFTER READ IS: 47   
STUDENT ID=                       
STUDENT NAME=                     
SUCCESSFUL READ                   
********************************



Please help me with it...
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Wed Apr 01, 2015 3:15 pm
Reply with quote

You need to look the second spool dataset for your JOB. It will show you where you have put INFILE, which is not where you think you have put it. You will need to use an override for the stepname in the PROC to get it where you want.

And you don't write to WORKING-STORAGE. You only WRITE records, and those records will be associated with a file.
Back to top
View user's profile Send private message
Sunithap.84

New User


Joined: 01 Apr 2015
Posts: 6
Location: India

PostPosted: Wed Apr 01, 2015 3:23 pm
Reply with quote

Expansion of Job along with Proc

Code:
   
1 //ATSUNPA2 JOB (123),'SEQ READ',                                     
  //         CLASS=A,MSGCLASS=A,                                       
  //         MSGLEVEL=(1,1),                                           
  //         NOTIFY=&SYSUID,REGION=0M                                   
  //*                                                                   
  IEFC653I SUBSTITUTION JCL - (123),'SEQ READ',CLASS=A,MSGCLASS=A,MSGLEV
2 //PROC   JCLLIB ORDER=(SYS1.ADCOB.SIGYPROC)                           
  //*                                                                   
3 //COBOL EXEC IGYWCLG                                                 
4 XXIGYWCLG PROC LNGPRFX='SYS1.ADCOB',                                 
  XX             LIBPRFX='SYS1',GOPGM=GO                               
  XX*IGYWCLG PROC LNGPRFX='IGY.V5R1M0',    MACB900                     
  XX*             LIBPRFX='CEE',GOPGM=GO   MACB900                     
  XX*                                                                   
   XX*  COMPILE, LINK EDIT AND RUN A COBOL PROGRAM                       
    XX*                                                                   
    XX*  PARAMETER  DEFAULT VALUE    USAGE                               
    XX*   LNGPRFX   IGY.V5R1M0       PREFIX FOR LANGUAGE DATA SET NAMES   
    XX*   LIBPRFX   CEE              PREFIX FOR LIBRARY DATA SET NAMES   
    XX*   GOPGM     GO               MEMBER NAME FOR LOAD MODULE         
    XX*                                                                   
    XX*  CALLER MUST SUPPLY //COBOL.SYSIN DD ...                         
    XX*                                                                   
    XX*  CALLER MUST ALSO SUPPLY //COBOL.SYSLIB DD ... for COPY statements
    XX*                                                                   
  5 XXCOBOL  EXEC PGM=IGYCRCTL,REGION=0M                                 
  6 XXSTEPLIB  DD  DSNAME=&LNGPRFX..SIGYCOMP,DISP=SHR                     
    IEFC653I SUBSTITUTION JCL - DSNAME=SYS1.ADCOB.SIGYCOMP,DISP=SHR       
  7 XX         DD  DSNAME=&LIBPRFX..SCEERUN,DISP=SHR                     
    IEFC653I SUBSTITUTION JCL - DSNAME=SYS1.SCEERUN,DISP=SHR             
  8 XX         DD  DSNAME=&LIBPRFX..SCEERUN2,DISP=SHR                     
    IEFC653I SUBSTITUTION JCL - DSNAME=SYS1.SCEERUN2,DISP=SHR             
  9 //SYSPRINT DD SYSOUT=*                                               
    X/SYSPRINT DD  SYSOUT=*                                               
 10 XXSYSLIN   DD  DSNAME=&&LOADSET,UNIT=SYSALLDA,                       
    XX             DISP=(MOD,PASS),SPACE=(CYL,(1,1))                     
 11 XXSYSUT1   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 12 XXSYSUT2   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 13 XXSYSUT3   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 14 XXSYSUT4   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 15 XXSYSUT5   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 16 XXSYSUT6   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 17 XXSYSUT7   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 18 XXSYSUT8   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 19 XXSYSUT9   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 20 XXSYSUT10  DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 21 XXSYSUT11  DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 22 XXSYSUT12  DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 23 XXSYSUT13  DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 24 XXSYSUT14  DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 25 XXSYSUT15  DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 26 XXSYSMDECK DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 27 //COBOL.SYSIN DD DSN=ATXSCLM.ATSUNPA.COB.TEST(READSQ),DISP=SHR       
 28 //INFILE DD DSN=ATXSCLM.ATSUNPA.STUDENT,DISP=SHR                     
 29 //SYSOUT DD SYSOUT=*                                                 
 30 XXLKED   EXEC PGM=IEWBLINK,COND=(8,LT,COBOL),REGION=0M               
 31 XXSYSLIB   DD  DSNAME=&LIBPRFX..SCEELKED,DISP=SHR                     
    IEFC653I SUBSTITUTION JCL - DSNAME=SYS1.SCEELKED,DISP=SHR             
 32 XX         DD  DSNAME=&LIBPRFX..SCEELKEX,DISP=SHR                     
    IEFC653I SUBSTITUTION JCL - DSNAME=SYS1.SCEELKEX,DISP=SHR             
 33 XXSYSPRINT DD  SYSOUT=*                                               
 34 XXSYSLIN   DD  DSNAME=&&LOADSET,DISP=(OLD,DELETE)                     
 35 XX         DD  DDNAME=SYSIN                                           
 36 XXSYSLMOD  DD  DSNAME=&&GOSET(&GOPGM),SPACE=(CYL,(1,1,1)),           
    XX             UNIT=SYSALLDA,DISP=(MOD,PASS),DSNTYPE=LIBRARY         
    IEFC653I SUBSTITUTION JCL - DSNAME=&&GOSET(GO),SPACE=(CYL,(1,1,1)),UNI
    DSNTYPE=LIBRARY                                                       
 37 XXSYSUT1   DD  UNIT=SYSALLDA,SPACE=(CYL,(1,1))                       
 38 XXGO     EXEC PGM=*.LKED.SYSLMOD,COND=((8,LT,COBOL),(4,LT,LKED)),     
    XX             REGION=0M                                             
 39 XXSTEPLIB  DD  DSNAME=&LIBPRFX..SCEERUN,DISP=SHR                     
    IEFC653I SUBSTITUTION JCL - DSNAME=SYS1.SCEERUN,DISP=SHR             
 40 XX         DD  DSNAME=&LIBPRFX..SCEERUN2,DISP=SHR                     
    IEFC653I SUBSTITUTION JCL - DSNAME=SYS1.SCEERUN2,DISP=SHR             
 41 XXSYSPRINT DD  SYSOUT=*                                               
 42 XXCEEDUMP  DD  SYSOUT=*                                               
 43 XXSYSUDUMP DD  SYSOUT=*                                               
    //*                                                                   
    //*                                                                   
    //*                                                                   
    //*************************************************                   
************************** BOTTOM OF DATA ********************************


My dataset is on the 28th line.
Please help me where I need to override..
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Wed Apr 01, 2015 3:34 pm
Reply with quote

It is currently going into the COBOL step, which is the compile.

It needs to be in the GO step, which is the run.
Code:

//GO.INFILE ...
//GO.SYSOUT ...
Back to top
View user's profile Send private message
Sunithap.84

New User


Joined: 01 Apr 2015
Posts: 6
Location: India

PostPosted: Wed Apr 01, 2015 3:57 pm
Reply with quote

Thanks so much Bill...It worked!!
icon_smile.gif
Back to top
View user's profile Send private message
Sunithap.84

New User


Joined: 01 Apr 2015
Posts: 6
Location: India

PostPosted: Wed Apr 01, 2015 3:59 pm
Reply with quote

But i have a doubt in this proc...The load lib is not being created right ? It is a temp dataset..
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Wed Apr 01, 2015 4:36 pm
Reply with quote

If the load library was not being created, your program would not execute. HOWEVER, it is a temporary data set and hence is deleted at the end of the job.
Back to top
View user's profile Send private message
Sunithap.84

New User


Joined: 01 Apr 2015
Posts: 6
Location: India

PostPosted: Tue Apr 21, 2015 12:51 pm
Reply with quote

Hi

For the same job/proc that i have pasted above, i need to include my sub-program..I have compiled my sub-program separately. Now, i need to run my main-program. Im getting return-code 8 while doing this.

Job
Code:

//ABCDE JOB (123),'MAINSUB',                                     
//         CLASS=A,MSGCLASS=A,                                     
//         MSGLEVEL=(1,1),                                         
//         NOTIFY=&SYSUID,REGION=0M                                 
//*                                                                 
//PROC   JCLLIB ORDER=(SYS1.ADCOB.SIGYPROC)                         
//*                                                                 
//COBOL EXEC IGYWCLG                                               
//*                                                                 
//COBOL.SYSIN DD DSN=ATXSCLM.ATSUNPA.COB.TEST(MAINSUB),DISP=SHR     
//LKED.SYSIN DD DSN=ATXSCLM.ATSUNPA.COB.TEST(SUBPGM),DISP=SHR       
//*                                                                 
//SYSPRINT DD SYSOUT=*                                             
//SYSOUT DD SYSOUT=*                                               


Proc IGYWCLG is same as the earlier one pasted.

Sysprint of LKED is showing error -
Code:

IEW2322I 1220  1          IDENTIFICATION DIVISION.               
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD IDENTIFI      .   
IEW2322I 1220  2          PROGRAM-ID. SUBPGM.                     
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD PROGRAM-   .     
IEW2322I 1220  3         *                                       
IEW2332E 1223 CONTROL STATEMENT SYNTAX ERROR NEAR '*'.           
IEW2322I 1220  4          DATA DIVISION.                         
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD DATA.             
IEW2322I 1220  5          LINKAGE SECTION.                       
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD LINKAGE.         
IEW2322I 1220  6         *                                       
IEW2332E 1223 CONTROL STATEMENT SYNTAX ERROR NEAR '*'.           
IEW2322I 1220  7          01 LS-SUM-FIELDS.                       
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD 01.               
IEW2322I 1220  8             05 LS-A PIC 9(2).                   
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD 05.               
IEW2322I 1220  9             05 LS-B PIC 9(2).                   
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD 05.               
IEW2322I 1220  10             05 LS-SUM PIC 9(3).                 
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD 05.               
IEW2322I 1220  11         *                                       
IEW2332E 1223 CONTROL STATEMENT SYNTAX ERROR NEAR '*'.           
IEW2322I 1220  12          PROCEDURE DIVISION USING LS-SUM-FIELDS.
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD PROCEDUR .       
IEW2322I 1220  13              COMPUTE LS-SUM = LS-A + LS-B.     
IEW2328E 1531 INVALID CONTROL STATEMENT KEYWORD COMPUTE.         


The compilation of this sub-pgm was successful.

Please help me with this.
Back to top
View user's profile Send private message
Marso

REXX Moderator


Joined: 13 Mar 2006
Posts: 1353
Location: Israel

PostPosted: Tue Apr 21, 2015 2:38 pm
Reply with quote

Why don't you use the standard compilation processes that must be in place at your site ?
Back to top
View user's profile Send private message
Sunithap.84

New User


Joined: 01 Apr 2015
Posts: 6
Location: India

PostPosted: Tue Apr 21, 2015 2:43 pm
Reply with quote

Marso: Standard compilation job is not available at our site for Cobol. That is the whole issue we are facing.
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8696
Location: Dubuque, Iowa, USA

PostPosted: Tue Apr 21, 2015 5:40 pm
Reply with quote

This is a forum for professionals. You need to move to Beginner's and Students Forum because the problems you are posting here are beginner problems and you're not going to get a lot of support for them here.

When using a subprogram, you MUST compile it into a load library. That load library has to be available when you link edit / bind your program (via your compile JCL) if the subprogram is statically called, or the load library has to be available at execution time (via the STEPLIB DD statement) if the subprogram is dynamically called.

It appears that you are attempting to statically link your subprogram into your main program load module. To do this, you need //LKED.SUBLIB DD DISP=SHR,DSN=<load.library.name> in your compile JCL. LKED.SYSIN should have
Code:
  INCLUDE SUBLIB(SUBPGM)
  ENTRY READSQ
  NAME READSQ(R)
Putting the source code for the subprogram into your LKED.SYSIN does not work, as you found out.
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 How to split large record length file... DFSORT/ICETOOL 8
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
No new posts SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts Access to non cataloged VSAM file JCL & VSAM 18
No new posts Need help for File Aid JCL to extract... Compuware & Other Tools 23
Search our Forums:

Back to Top