Cybersecurity
DevOps Cloud (ADM)
IT Operations Cloud
This article describes a possible reason for the run-time system error 9/107 and a potential work around.
COBOL programs were compiled using the CREATEXFD and CALLFH (ACUFH) directives as required for Database Connectors. An XFD file was generated. The database being accessed was Oracle 10g.The program received a 9/107 error on OPEN OUTPUT, but a table was created in the database. The Consolidated Trace Facility (CTF) log (rts32.textfile.PID.log) revealed the following generated SQL:
CREATE TABLE ... succeeds
ALTER TABLE MYTABLE ADD CONSTRAINT iMYTABLE_0 PRIMARY KEY () ... fails: ORA-00936: missing expression
Examining the COBOL program source revealed that the VAR-LENGTH XFD directive had been misplaced, causing the Compiler to generate an invalid XFD file. Note the difference in the position of the VAR-LENGTH directive in the examples below. Example 2 shows the correct location.
Example 1
03 MY-SERVICE REDEFINES MY-SERVICE-RE
$XFD VAR-LENGTH
PIC X(20) OCCURS 2 TIMES.
Example 2
$XFD VAR-LENGTH
03 MY-SERVICE REDEFINES MY-SERVICE-RE
PIC X(20) OCCURS 2 TIMES.
Repositioning the VAR-LENGTH directive to match Example 2 allowed the Compiler to generate a valid XFD file and the successful execution of the program.
Incident Number: 2285108