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

File Status Error code 39 when Procesins VB Input file


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

New User


Joined: 19 Nov 2008
Posts: 92
Location: Spain

PostPosted: Wed Oct 27, 2021 4:05 pm
Reply with quote

Hi Everyone.

Long Story short, I need to process an XML File in a cobol Program, which i've been reading about I can perform using the XML PARSE utility from enterprise cobol 6.3.

I don't have much experience working with Variable Length files, but our best guess is that the input file could be of variable length. I have a sample file which i want to test, which has the following Info screen


Code:
    Data Set Name . . . . : TDES.XML.SPOT.TR                                 
                                                                         
General Data                           Current Allocation               
 Management class . . : **None**        Allocated blocks  . : 5         
 Storage class  . . . : **None**        Allocated extents . : 1         
  Volume serial . . . : ABCXYZ                                         
  Device type . . . . : 3390                                             
 Data class . . . . . : **None**                                         
  Organization  . . . : PS             Current Utilization               
  Record format . . . : VB              Used blocks . . . . : 1         
  Record length . . . : 10000           Used extents  . . . : 1         
  Block size  . . . . : 10004                                           
  1st extent blocks . : 5                                               
  Secondary blocks  . : 0              Dates                             
  Data set name type  :                 Creation date . . . : 2021/10/27
                                        Referenced date . . : 2021/10/27
                                        Expiration date . . : ***None***
  SMS Compressible  . : NO       


This is an extract of the cobol code i have implemented for this task
Code:

          *****************************************************************
           IDENTIFICATION DIVISION.                                         
           PROGRAM-ID.  XXXXXXXX.                                           
           AUTHOR.  XXXXXXXX.                                               
                                                                           
          ******************************************************************
          *            E N V I R O N M E N T       D I V I S I O N         *
          ******************************************************************
           ENVIRONMENT DIVISION.                                           
          *                                                                 
           CONFIGURATION SECTION.                                           
          *                                                                 
           SPECIAL-NAMES.                                                   
               DECIMAL-POINT IS COMMA.                                     
                                                                           
          ******************************************************************
          *    I N P U T - O U T P U T      S E C T I O N                  *
          ******************************************************************
           INPUT-OUTPUT SECTION.                                           
          *                                                                 
           FILE-CONTROL.                                                   
          **************************************************************** 
                                                                           
    DESODH     SELECT FENTRADA                                             
    DESODH         ASSIGN TO FENTRADA                                       
    DESODH         ORGANIZATION IS SEQUENTIAL                               
    DESODH         ACCESS MODE  IS SEQUENTIAL                               
    DESODH         FILE STATUS  IS FS-FENTRADA-XML.                         
                                                                           
                                                                           
          ******************************************************************
          *    D A T A     D I V I S I O N                                 *
          ******************************************************************
           DATA DIVISION.                                                   
          ******************************************************************
          *    FILE SECTION                                                *
          ******************************************************************
          *                                                                 
           FILE SECTION.                                                   
          *                                                                 
                                         
    DESODH FD  FENTRADA                                                     
    DESODH     LABEL RECORDS STANDARD                                       
    DESODH     RECORD IS VARYING FROM 1 TO 10000 DEPENDING ON W-REC-LENGTH 
    DESODH     RECORDING MODE IS V                                         
    DESODH     BLOCK CONTAINS 0 RECORDS.                                   
    DESODH 01  REG-FENTRADA.                                               
             02 PIC X OCCURS 1 TO 10000 DEPENDING ON W-REC-LENGTH.   
         
            WORKING-STORAGE SECTION.                                         
           *                                                                 
           ******************************************************************
           * DEFINICIÓN DEL FICHERO DE ENTRADA                              *
           ******************************************************************
            01  REG-ENTRADA             PIC X(1300).                         
           *                                                                 
           ******************************************************************
           * DEFINICIÓN DE LOS FICHEROS DE SALIDA                           *
           ******************************************************************
                COPY FMIF1113.                                               
           *                                                                 
           ******************************************************************
           * DEFINICIÓN DE VARIABLES WORKING                                *
           ******************************************************************
            01  W-VARIABLES-AUXILIARES.                                     
                                                                             
           ** VARIABLES A CAMBIAR EN CADA PROGRAMA:                         
                05 W-CONT-CAMPOS               PIC 9(03)  VALUE 46.         
           ** VARIABLES A CAMBIAR EN CADA PROGRAMA:                         
                05 W-SITUACION                 PIC 9(04)  VALUE ZEROS.       
                                                                             
                05 W-MENSAJE                   PIC X(100) VALUE SPACES.     
                05 W-STATUS                    PIC X(02)  VALUE SPACES.     
    ...................
           ******************************************************************
           *             P R O C E D U R E   D I V I S I O N                *
           ******************************************************************
            PROCEDURE DIVISION.                                             
                 PERFORM 1000-INICIO                                         
                 PERFORM 4000-PROCESO-XML UNTIL SI-FIN-PROCESO-XML           
                 PERFORM 3000-FINAL                                         
                 STOP RUN.                                                   
           ******************************************************************
           *  1000-INICIO.                                                  *
           ******************************************************************
            1000-INICIO.                                                     
                MOVE  1000                         TO W-SITUACION.           
     DESODH     PERFORM 1060-ABRIR-FICHERO-XML                               
               .                                                 
    DESODH******************************************************************
    DESODH*  1060-ABRIR-FICHERO-XML                                        *
    DESODH******************************************************************
    DESODH 1060-ABRIR-FICHERO-XML.                                         
    DESODH                                                                 
    DESODH     MOVE  1060                         TO W-SITUACION.           
    DESODH     SET NO-ERROR-LECTURA            TO TRUE                     
    DESODH     SET NO-FIN-FENTRADA             TO TRUE                     
    DESODH     SET NO-TAG-ENCONTRADO           TO TRUE                     
    DESODH     SET NO-ENCONTRADO-IDENTIFICADOR TO TRUE                     
    DESODH     SET NO-VERSION-INFORMATION      TO TRUE                     
    DESODH     SET NO-ENCODING-DECLARATION     TO TRUE                     
    DESODH     OPEN INPUT FENTRADA                                         
    DESODH                                                                 
    DESODH     IF  FS-FENTRADA-XML NOT = 00                                 
    DESODH        DISPLAY 'ERROR AL ABRIR FICHERO XML. FS: ' FS-FENTRADA-XML
    DESODH        MOVE 'ERROR OPEN FENTRADA '      TO W-MENSAJE             
    DESODH        MOVE FS-FENTRADA-XML             TO W-STATUS             
    DESODH        PERFORM PR-FIN-ERROR-LOGICO                               
    DESODH     END-IF.                                                     
    DESODH                                                                 
    DESODH     PERFORM 8000-LEER-FENTRADA                                   
   
    DESODH******************************************************************
    DESODH* 8000-LEER-FENTRADA                                             
    DESODH******************************************************************
    DESODH 8000-LEER-FENTRADA.                                             
    DESODH     MOVE 8000                         TO W-SITUACION             
                                                                           
    DESODH     READ FENTRADA                                               
    DESODH       AT END SET SI-FIN-PROCESO-XML TO TRUE                     
                                                                           
    DESODH     IF FS-FENTRADA-XML                NOT = 0                   
    DESODH        DISPLAY 'ERROR EN EL READ XML. FS: ' FS-FENTRADA-XML     
    DESODH        MOVE 'ERROR READ FENTRADA '          TO W-MENSAJE         
    DESODH        MOVE FS-FENTRADA-XML                 TO W-STATUS         
    DESODH        PERFORM PR-FIN-ERROR-LOGICO                               
    DESODH     END-IF                                                       
    DESODH     .     
...........................more code     




And this is the error I'm getting while opening the file. File status 39. A mismatch on lengths that I'm not sure where it is.

Code:
        ********************************* TOP OF DATA **********************************OF DATA **********************************
         IGZ0201W A file attribute mismatch was detected. File FENTRADA in program MIFD1113 had a record length of 10004 and     
                  the file specified in the ASSIGN clause had a record length of 10000.                                           
         ERROR AL ABRIR FICHERO XML. FS: 39                                                                                       
         ************************************************                                                                         
         *    PROGRAMA MIFD1113 ERROR EJECUCION         *                                                                         
         ************************************************                                                                         
         *  PARRAFO       : 1060                                                                                                 
         *  STATUS        : 39                                                                                                   
         *  NOMBRE RUT    :                                                                                                       
         *  MENSAJE       : ERROR OPEN FENTRADA                                                                                   
         *  CLAVE-ACCESO  :                                                                                                       
         ************************************************                                                                         
         CEE3250C The system or user abend U1777 R=NULL     was issued.                                                           
                  From compile unit BKCANCEL at entry point BKCANCEL at compile unit offset +000006D6 at entry offset +000006D6   
                   at address 000C30D6.                                                                                           
         <> LEAID ENTERED (LEVEL 02/26/2016 AT 17.55)                                                                             
         <> LEAID PROCESSING COMPLETE. RC=4                                                                                       
******************************** BOTTOM OF DATA ********************************


Finally, this is the JCL step used to run this program

Code:
//P010    EXEC TSOBATCH,COND=(4,LT)         
//FENTRADA DD  DSN=TDES.XML.SPOT.TR,DISP=SHR
//SYSPRINT DD  SYSOUT=*                     
//SYSTSIN  DD  *                           
               DSN SYSTEM (DBSD)           
               RUN PROG (MIFD1113)         
               END                         



Any feedback or help would be appreciate it.
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


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

PostPosted: Wed Oct 27, 2021 4:28 pm
Reply with quote

You need to allow for the 4 byte record descriptor word (RDW) which starts every variable length data set. Change 10000 in your program to 9996.
Back to top
View user's profile Send private message
ojdiaz

New User


Joined: 19 Nov 2008
Posts: 92
Location: Spain

PostPosted: Wed Oct 27, 2021 6:00 pm
Reply with quote

Robert Sample wrote:
You need to allow for the 4 byte record descriptor word (RDW) which starts every variable length data set. Change 10000 in your program to 9996.


Thanks a Lot Robert. It worked just fine. I'll need to check the documentation in depth but this fixes my current issue.

Cheers!
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 Removing date values lines/records fr... SYNCSORT 2
No new posts To re-format the file using SORT card DFSORT/ICETOOL 7
No new posts Read file names from existing file th... DFSORT/ICETOOL 6
No new posts Convert PS to TXT file using jcl JCL & VSAM 7
This topic is locked: you cannot edit posts or make replies. Sort to include records of file 2 int... Java & MQSeries 1
Search our Forums:

Back to Top