Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

File Status 35 inspite of File being present

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> COBOL Programming
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    Post subject: File Status 35 inspite of File being present
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

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7236

PostPosted: Wed Apr 01, 2015 3:15 pm    Post subject: Reply to: Error of File Status 35 inspite of File being present
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    Post subject: Reply to: Error of File Status 35 inspite of File being present
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

DFSORT Moderator


Joined: 09 Mar 2011
Posts: 7236

PostPosted: Wed Apr 01, 2015 3:34 pm    Post subject: Reply to: Error of File Status 35 inspite of File being present
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    Post subject:
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    Post subject:
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: 7913
Location: Bellevue, IA

PostPosted: Wed Apr 01, 2015 4:36 pm    Post subject:
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    Post subject: Reply to: Error of File Status 35 inspite of File being present
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: 1219
Location: Israel

PostPosted: Tue Apr 21, 2015 2:38 pm    Post subject:
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    Post subject: Reply to: Error of File Status 35 inspite of File being present
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: 7913
Location: Bellevue, IA

PostPosted: Tue Apr 21, 2015 5:40 pm    Post subject:
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    IBMMAINFRAMES.com Support Forums -> COBOL Programming All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Add PD field from 2nd file to PD in 1st Sushant Garje DFSORT/ICETOOL 6 Thu Dec 01, 2016 4:32 pm
No new posts File Aid to File Manager conversion murali3955 IBM Tools 4 Thu Nov 24, 2016 3:41 pm
No new posts How to convert the VBM file to VB or... Sulabh Agrawal JCL & VSAM 4 Fri Nov 18, 2016 1:04 pm
No new posts CICS Roll back partially - Need to re... dwijadas CICS 4 Wed Nov 16, 2016 4:30 pm
No new posts Problem in writing Output file vickey_dw COBOL Programming 5 Mon Nov 14, 2016 11:14 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us