Bugs in INFORMIX 4.0 SE, 4GL (?)
Posted in 1992
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL, Server Administration
The following is provided FYI: We recently ported a running application from a Sun 3 with 4.0 OS using Informix 2.1 with 4GL and ESQL/C to a Sparc 2 with 4.1 OS using Informix 4.0 using SE, 4GL, and ESQL/C. The system is networked with IP/TCP to many other hosts composed of SGI 4D, Sun 3, Sun 4, Sparc 1, and Sparc 2 systems. The IRIS systems will use either iris-ansi-net or xterm. The Sun systems will use either sunview or xterm. The users sometimes will set TERM on login to vt100 rather than take the default emulation. Problem #1: The application is normally run with the operators logged into the Sun from another system over the net from one of the other hosts. The terminal emulation is either iris-ansi-net, xterm, or vt100. The problem noted is when the user is logged in from an IRIS using xterm (from a Sun with xterm there is no problem). The application uses the RUN command to execute a C program in the following manner: LET cmd = "pgm ", arg1 CLIPPED, arg2 CLIPPED RUN cmd RETURNING status When logged in from an IRIS using the xterm emulation the application seems to run fine but it is noticed that the C program executes too quickly. When we exit from the application we notice that the user's shell shows an error, "pgm not found". The application does not check the RUN status itself, only the returned variable 'status' which we find is set to 0 indicating no problem. When I run the application with the debugger while logged in to the Sun from the same SGI system using the same terminal emulation there is no problem. This more or less confirms that the problem is with Informix and not anything else. I modified the application as follows: LET cmd = "/fullpath/pgm ", arg1 CLIPPED, arg2 CLIPPED RUN cmd CLIPPED RETURNING status The new program now works fine on an SGI using xterm. This confirms my suspicion that the PATH is not being passed from parent to child when using the RUN command, and only when logged in over the net from an SGI system. Problem #2: The errorlog command in Informix 4.0 does not trim trailing blanks from the variable passed before writing the variable contents to the error log as it used to with Informix 2.1. With the variable defined as a CHAR(512), each line in the error log file is now 512 bytes long even though the error message itself may be NULL. By modifying the CALL statement to CLIP the message, the problem is resolved: CALL errorlog(msg CLIPPED) If anyone knows what I'm doing wrong here with either of these problems, please let me know. Thanks. ------------------------------------------------------------------------------ John R. Carter, Sr. Programmer/Analyst - Informix DBA Computer Sciences Corporation jcarter@nas.nasa.gov Numerical Aerodynamic Simulation 415/604-3662 NASA Ames Research Center, Moffett Field, CA 94035-1000 M/S 258-6 ------------------------------------------------------------------------------