ODBC connect to Informix SE on LInux
Posted in 2006
Topics: Error Codes & Troubleshooting, Connectivity: ODBC / JDBC / .NET, Connectivity: ESQL/C, 4GL & Embedded SQL, Platform-Specific Issues
I have some VB programs running on Win98 that connect to a SCO 5.0.5 server running Informix SE 7.23.UC13. I'm using Informix connect version 2.90.TC4 on Win98 and connecting to the SE database server on SCO with ODBC. This setup works, but the problem I've having is if I try to connect to a Linux server. The only thing different from SCO to LInux is the SE version which is 7.25.UC4 on my Linux server. I don't have the source code for the VB programs running on Win98. I can log into the VB programs on Win98 and most of them work, but some appear to be executing 4ge programs on the database server. My 4GL programs are located on the database server on both SCO and Linux in /path/*.4ge. As a test I changed the 4ge program directory on SCO and then tried to run a VB program that wants to execute a 4ge program. This gave an error: An error has occurred in Module 'AR', function 'fnExecute4GE'. Error Code = -432 Error Desc: A message has been returned from the server: ksh: /wrong-path/4glprogram.4ge: not found This error was expected since I changed the directory name on the SCO server (the VB programs appear to have the path hard coded?) and it can't find the 4ge program. If I connect with the same VB program, same version of i-connect, the only thing different is going to Linux instead of SCO the VB program doesn't try to execute the 4ge program or it doesn't get that far in the function. Below is the error the VB program gives when the DSN is set to connect to the database on the Linux server. An error has occurred in Module 'AR', function 'fnExecute4GE'. Error Code = -432 Error Desc: Initialization Error: -10061 Connection Refused Connection String: ODBC;DSN=mydsn ;UID=howard;PWD=*******;DATABASE=/db/database;HOST=linuxserver;SERV=;PRO=; I get a error in function fnExecute4GE but why is the error different than on SCO. When connecting to Linux it doesn't even attempt to run the 4ge program because it doesn't matter if the path to the 4ge program is correct or not. On SCO it works, but If I change the path to the 4ge program then it gave the error of not being able to find the 4ge program. Any ideas? I don't know why the VB programs care if I connect to a database on Linux vs SCO, maybe the different SE versions is the problem? Maybe the 'Connection Refused' in the error message is a clue, but I don't know what connection is being refused since it lets me log in and I can run any of the VB programs that don't have a function that runs a 4ge program.
When making an ODBC connection to Informix SE does the SE engine use something like rsh to execute the 4ge programs? This is the only thing I can think of why it executes the 4ge program on SCO, but not Linux because there isn't permission on my Linux server to have commands remotely run? Except there isn't rsh permission on my SCO server either.
--When making an ODBC connection to Informix SE does the SE engine use
--something like rsh to execute the 4ge programs?
No.
one could have hidden this in some kind of spl function;
you may want to look at that;
dump the schema of the db and search for it;
dbschema -d <yourdb> somefile.sql
look for the 4ge and or SYSTEM in spl.....
Superboer.