Strange problem in Ifx ESQL/C program
Posted in 1999
Topics: Error Codes & Troubleshooting, Connectivity: ESQL/C, 4GL & Embedded SQL, Platform-Specific Issues
Hi, Versions : HP-UX 10.20 Informix Dynamic Server Version 7.30.UC7X8 INFORMIX-ESQL Version 9.15.UC2 On the 1st fetch from a cursor, error -461 occurs. Here are the relevant lines from the log file: Informix fetch for sd_rec record statement failed, sqlcode =\\ -461, error code= Cisam error=0. finderr 461 shows : -461 File open error. This statement transfers a value between a file and a BYTE or TEXT column, or the statement attempts to drop a database when a required file is not available. Because the locator structure field loc_loctype was set to LOCFNAME, the database server tried to open the file using the pathname in loc_fname and the flags in loc_oflags. An operating-system error was returned. Check the accompanying ISAM error code for more information and look for operating-system messages. Typical causes include lack of disk space, file permission problems, and limits on the number of open files. However, the table from which the fetch is being done has not BYTE or TEXT columns. Neither is the locator structure used. We also checked for the "Typical causes" mentioned above, but they seem to be ok - (not sure). This is happening on a client's production machine where the program is deployed. We are unable to replicate it on our development machine. Thanks in advance Vasudev
RVASUDEV wrote: > > Hi, > > Versions : > > HP-UX 10.20 > Informix Dynamic Server Version 7.30.UC7X8 > INFORMIX-ESQL Version 9.15.UC2 > > On the 1st fetch from a cursor, error -461 occurs. Here are the relevant > lines from the log file: > > Informix fetch for sd_rec record statement failed, sqlcode =\\ > -461, error code= Cisam error=0. > > finderr 461 shows : > > -461 File open error. > > > > This statement transfers a value between a file and a BYTE or TEXT > > column, or the statement attempts to drop a database when a required file > > is not available. Because the locator structure field loc_loctype was set > > to LOCFNAME, the database server tried to open the file using the pathname > > in loc_fname and the flags in loc_oflags. An operating-system error was > > returned. Check the accompanying ISAM error code for more information and > > look for operating-system messages. Typical causes include lack of disk > > space, file permission problems, and limits on the number of open files. > > > However, the table from which the fetch is being done has not BYTE or > TEXT columns. Neither is the locator structure used. > > We also checked for the "Typical causes" mentioned above, but they > seem to be ok - (not sure). > > This is happening on a client's production machine where the program > is deployed. We are unable to replicate it on our development machine. This is a spurious error which occurs when the message files are the wrong version. It would appear that you installed ESQL 9.15 before IDS 7.30 so that IDS has overwritten the ESQL message files with earlier versions. Reinstall ESQL/C and the problem will disappear. OH! It also occurs sometimes when an executable compiled with a much earlier version of the ESQL/C compiler (especially versions before 7.12 such as 6.00 or 7.10) is executed under the runtime environment installed with a newer version. This is for the same reason. Make sure the offending application is recompiled and linked with the 9.15 compiler. Art S. Kagel