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

PL/I read error for HFS files


IBM Mainframe Forums -> PL/I & Assembler
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Joe Kirsch

New User


Joined: 27 Sep 2018
Posts: 4
Location: USA

PostPosted: Fri Sep 28, 2018 9:13 pm
Reply with quote

We have a project to move data sets off of mainframe storage to NAS cloud storage on a Linux box and then we will access the data sets via NFS mounted file systems. This part is not a problem. The records are 112 bytes in length and all of them have an x’15’ at the end of them indicating a line feed character. The problem is the PL/I program that reads the NFS mounted HFS file is done with a READ FILE(somedd) SET($ptr) statement. It does not treat the records, 112 bytes in length, as individual records. It seems to return a block that is roughly 4K in size and each subsequent read returns the same first record 36 times.
If we change the read statement to READ FILE(somedd) INTO(some_area) it works great. Has anyone run into this issue using SET or am I missing something very simple. Any help would be appreciated. Thanks in advance.
Back to top
View user's profile Send private message
sergeyken

Senior Member


Joined: 29 Apr 2008
Posts: 2024
Location: USA

PostPosted: Sat Sep 29, 2018 9:08 pm
Reply with quote

1) Reading records in PL/I is fully based on underlaying zOS I/O instruments, also known as MVS I/O Macros. Splitting input data by records depends exclusively on parameters RECFM, and LRECL/BLKSIZE; it has nothing to do with any "linefeed characters" used in other systems.
2) The way of splitting input data by records cannot depend in any manner on PL/I READ statement options INTO(area)/SET(pointer), which in turn is implemented via zOS macro DCB parameter MACRF.

You need to present the exact part of code, and exact characteristics of all involved datasets, JCL statements, and PL/I statements. Theoretical discussions usually do not help in such cases.
Back to top
View user's profile Send private message
Joe Kirsch

New User


Joined: 27 Sep 2018
Posts: 4
Location: USA

PostPosted: Tue Oct 02, 2018 12:35 am
Reply with quote

Here is the JCL that created a 100 record, 50 bytes in length, z/FS file. This was created in a z/OS 1.13 HFS system. I am guessing it is a BUG in PL/I, V3R9, but can't tell for sure. If someone can try it on their system and let me know if it works that wold be great. Just looking for an answer as to why it does not work for me. We don't want to compile programs just to get this to work.
Code:
//*********************************************************************
//STEP01 EXEC PGM=IKJEFT01
//*********************************************************************
//INMVS    DD DSN=SYJEK.TESTFILE,DISP=SHR
//OUTHFS   DD FILEDATA=TEXT,
//            PATH='/u/syncsort/syncsort/sshfsj6/testfile',
//            PATHMODE=(SIRWXU,SIRGRP,SIXGRP,SIWOTH,SIXOTH),
//            PATHOPTS=(ORDWR,OCREAT)
//SYSTSPRT DD SYSOUT=*
//SYSTSIN  DD *
OCOPY INDD(INMVS) OUTDD(OUTHFS) TEXT PATHOPTS(USE)

Here are the first 22 records of the HFS file.

Code:
 BROWSE    /u/syncsort/syncsort/sshfsj6/testfile      Line 00000000 Col 001 050
 Command ===>                                                  Scroll ===> CSR
********************************* Top of Data **********************************
00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100
00002AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00200
00003AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00300
00004AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00400
00005AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00500
00006AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00600
00007AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00700
00008AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00800
00009AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00900
00010AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01000
00011AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01100
00012AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01200
00013AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01300
00014AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01400
00015AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01500
00016AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01600
00017AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01700
00018AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01800
00019AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01900
00020AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02000
00021AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02100
00022AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02200

Here is the code that reads the file with SET pointer.
Code:
READHFS:PROC OPTIONS(MAIN) REORDER;
        DCL INNFILE  FILE RECORD INPUT;
        DCL SYSPRINT FILE PRINT EXTERNAL;
        DCL NO                    CHAR(01)  INIT('0');
        DCL YES                   CHAR(01)  INIT('1');
        DCL INN_FILE              CHAR(50)  INIT(' ') BASED($INN);
        DCL WORK_FLD1             CHAR(50)  INIT(' ') BASED($INN);
        DCL WORK_FLD2             CHAR(50)  INIT(' ');
        DCL EOF_INNFILE           CHAR(01)  INIT('0');
        DCL INNFILE_CNT           FIXED BIN(31) INIT(0);
        DCL $INN                  POINTER;
        ON ENDFILE(INNFILE) EOF_INNFILE = YES;
        OPEN  FILE(INNFILE),FILE(SYSPRINT);
        READ  FILE(INNFILE) SET($INN);
        DO WHILE(EOF_INNFILE = NO);
          WORK_FLD2 = WORK_FLD1;
          INNFILE_CNT = INNFILE_CNT + 1;
          PUT SKIP FILE(SYSPRINT) DATA(WORK_FLD2);
          READ  FILE(INNFILE) SET($INN);
        END;
        PUT SKIP FILE(SYSPRINT) EDIT
            ('NUMBER OF INNFILE RECORDS READ = ')         (A(33))
            (INNFILE_CNT)                                 (F(07));
END READHFS;

Here is the output from the file after the READ SET. As you can see it prints the first record many times before it prints the next record. It looks like it does not point at the next record.
Code:
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
WORK_FLD2='AAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100 00082AAAAAAAAAA';
NUMBER OF INNFILE RECORDS READ =     100

Here is the program that does a READ INTO.
Code:
READHFS:PROC OPTIONS(MAIN) REORDER;
        DCL INNFILE  FILE RECORD INPUT;
        DCL SYSPRINT FILE PRINT EXTERNAL;
        DCL NO                    CHAR(01)  INIT('0');
        DCL YES                   CHAR(01)  INIT('1');
        DCL INN_FILE              CHAR(50)  INIT(' ');
        DCL EOF_INNFILE           CHAR(01)  INIT('0');
        DCL INNFILE_CNT           FIXED BIN(31) INIT(0);
        ON ENDFILE(INNFILE) EOF_INNFILE = YES;
        OPEN  FILE(INNFILE),FILE(SYSPRINT);
        READ  FILE(INNFILE) INTO(INN_FILE);
        DO WHILE(EOF_INNFILE = NO);
          INNFILE_CNT = INNFILE_CNT + 1;
          PUT SKIP FILE(SYSPRINT) DATA(INN_FILE);
          READ  FILE(INNFILE) INTO(INN_FILE);
        END;
        PUT SKIP FILE(SYSPRINT) EDIT
            ('NUMBER OF INNFILE RECORDS READ = ')         (A(33))
            (INNFILE_CNT)                                 (F(07));
END READHFS;

Here is the output from the READ INTO. As you can see it does return the correct results. And yes the X'15' end of line character is required in the TEXT file.
Code:
INN_FILE='00001AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00100';
INN_FILE='00002AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00200';
INN_FILE='00003AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00300';
INN_FILE='00004AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00400';
INN_FILE='00005AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00500';
INN_FILE='00006AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00600';
INN_FILE='00007AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00700';
INN_FILE='00008AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00800';
INN_FILE='00009AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA00900';
INN_FILE='00010AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01000';
INN_FILE='00011AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01100';
INN_FILE='00012AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01200';
INN_FILE='00013AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01300';
INN_FILE='00014AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01400';
INN_FILE='00015AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01500';
INN_FILE='00016AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01600';
INN_FILE='00017AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01700';
INN_FILE='00018AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01800';
INN_FILE='00019AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA01900';
INN_FILE='00020AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02000';
INN_FILE='00021AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02100';
INN_FILE='00022AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02200';
INN_FILE='00023AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02300';
INN_FILE='00024AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02400';
INN_FILE='00025AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02500';
INN_FILE='00026AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02600';
INN_FILE='00027AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02700';
INN_FILE='00028AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02800';
INN_FILE='00029AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA02900';
INN_FILE='00030AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03000';
INN_FILE='00031AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03100';
INN_FILE='00032AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03200';
INN_FILE='00033AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03300';
INN_FILE='00034AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03400';
INN_FILE='00035AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03500';
INN_FILE='00036AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03600';
INN_FILE='00037AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03700';
INN_FILE='00038AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03800';
INN_FILE='00039AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA03900';
INN_FILE='00040AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04000';
INN_FILE='00041AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04100';
INN_FILE='00042AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04200';
INN_FILE='00043AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04300';
INN_FILE='00044AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04400';
INN_FILE='00045AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04500';
INN_FILE='00046AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04600';
INN_FILE='00047AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04700';
INN_FILE='00048AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04800';
INN_FILE='00049AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA04900';
INN_FILE='00050AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05000';
INN_FILE='00051AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05100';
INN_FILE='00052AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05200';
INN_FILE='00053AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05300';
INN_FILE='00054AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05400';
INN_FILE='00055AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05500';
INN_FILE='00056AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05600';
INN_FILE='00057AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05700';
INN_FILE='00058AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05800';
INN_FILE='00059AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA05900';
INN_FILE='00060AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06000';
INN_FILE='00061AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06100';
INN_FILE='00062AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06200';
INN_FILE='00063AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06300';
INN_FILE='00064AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06400';
INN_FILE='00065AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06500';
INN_FILE='00066AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06600';
INN_FILE='00067AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06700';
INN_FILE='00068AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06800';
INN_FILE='00069AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA06900';
INN_FILE='00070AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07000';
INN_FILE='00071AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07100';
INN_FILE='00072AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07200';
INN_FILE='00073AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07300';
INN_FILE='00074AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07400';
INN_FILE='00075AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07500';
INN_FILE='00076AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07600';
INN_FILE='00077AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07700';
INN_FILE='00078AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07800';
INN_FILE='00079AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA07900';
INN_FILE='00080AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08000';
INN_FILE='00081AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08100';
INN_FILE='00082AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08200';
INN_FILE='00083AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08300';
INN_FILE='00084AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08400';
INN_FILE='00085AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08500';
INN_FILE='00086AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08600';
INN_FILE='00087AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08700';
INN_FILE='00088AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08800';
INN_FILE='00089AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA08900';
INN_FILE='00090AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09000';
INN_FILE='00091AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09100';
INN_FILE='00092AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09200';
INN_FILE='00093AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09300';
INN_FILE='00094AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09400';
INN_FILE='00095AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09500';
INN_FILE='00096AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09600';
INN_FILE='00097AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09700';
INN_FILE='00098AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09800';
INN_FILE='00099AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09900';
INN_FILE='00100AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA10000';
NUMBER OF INNFILE RECORDS READ =     100

This is the JCL that was used to run the above programs.
Code:
//*********************************************************************
//STEP02 EXEC PGM=READHFS
//*********************************************************************
//STEPLIB  DD DSN=SYJEK.LOADLIB,DISP=SHR
//         DD DSN=SYS2.CEE.SCEERUN,DISP=SHR
//         DD DSN=SYS2.CEE.SCEERUN2,DISP=SHR
//*********************************************************************
//SYSOUT   DD SYSOUT=*
//CEEDUMP  DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//INNFILE  DD FILEDATA=TEXT,
//            PATH='//u/syncsort/syncsort/sshfsj6/testfile',
//            DSNTYPE=HFS,
//            PATHOPTS=(ORDONLY) ,
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


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

PostPosted: Tue Oct 02, 2018 1:30 am
Reply with quote

Looking at the Enterprise PL/I Programming Guide manual at www.ibm.com/support/knowledgecenter/en/SSY2V3_5.1.0/com.ibm.ent.pl1.zos.doc/pg.pdf on page 263 (Table 18 Statements and options allowed for creating and accessing consecutive data sets), declaring a file as SEQUENTIAL INPUT does not allow for the SET option. If you use SEQUENTIAL INPUT BUFFERED you can use the SET option but not for just SEQUENTIAL INPUT.
Back to top
View user's profile Send private message
prino

Senior Member


Joined: 07 Feb 2009
Posts: 1306
Location: Vilnius, Lithuania

PostPosted: Tue Oct 02, 2018 1:40 am
Reply with quote

Joe Kirsch wrote:
Here is the JCL that created a 100 record, 50 bytes in length, z/FS file. This was created in a z/OS 1.13 HFS system. I am guessing it is a BUG in PL/I, V3R9, but can't tell for sure.


Enterprise PL/I V3.9 is no longer supported, and if your problem was really caused by a bug in the compiler, it would have been found, and corrected, years ago!
Back to top
View user's profile Send private message
Joe Kirsch

New User


Joined: 27 Sep 2018
Posts: 4
Location: USA

PostPosted: Tue Oct 02, 2018 8:13 pm
Reply with quote

I guess I am not very sharp because I don't understand the responses. So far you have told me that the version is not supported and that if it’s not SEQUENTIAL INPUT BUFFERED it will not work and so on. I have used SEQUENTIAL INPUT BUFFERED and that does not work either. Guess what, IBM only finds bugs that people discover by running code. If you tell me that IBM would have known about and fixed this years ago I would agree except if no one is doing what I am doing they would not know about it. The read set returns records just not correctly so can anyone tell me what is wrong in the code. Please don’t come back with answers that make no sense. A simple explanation would be great why move mode works and locate mode does not work with HFS files…..Thanks in advance.
Back to top
View user's profile Send private message
Joe Kirsch

New User


Joined: 27 Sep 2018
Posts: 4
Location: USA

PostPosted: Tue Oct 02, 2018 9:27 pm
Reply with quote

Another tid-bit of information......I took the same code and compiled it using PL/I 2.3, I know it is old, and guess what......it works like a charm. I will say that IBM has an error in one of their LE modules for PL/I. Maybe someone can tell me if there are any APAR's that may fit the description of my error....Thanks....
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 -> PL/I & Assembler

 


Similar Topics
Topic Forum Replies
No new posts Compare 2 files and retrive records f... DFSORT/ICETOOL 3
No new posts Compare 2 files(F1 & F2) and writ... JCL & VSAM 8
No new posts Error to read log with rexx CLIST & REXX 11
No new posts Error when install DB2 DB2 2
No new posts Write line by line from two files DFSORT/ICETOOL 7
Search our Forums:

Back to Top