DBD::Informix4 (0.23) problem
Posted in 2000
Topics: Installation, Setup & Upgrades, Connectivity: ESQL/C, 4GL & Embedded SQL
Yes, I know it's old and yes I do have a current version of Online on another system currently under development. Nevertheless, I have an urgent requirement to get this working. I am using a Siemens Nixdorf RM600-220 platform running SINIX-Y 4.52 with Informix SE 4.10U. I have Perl 5 installed and also the WN web server. Having installed DBD::Informix4, I am having a problem with the Informix library includes. In the LIBS section of Makefile.PL there is an include for the library '-lsql4'. I don't seem to have this, but have substituted '-lfesql' instead. This compiles ok. Running the test, however, initially gives a core dump for segmentation error. I found this was because the test database did not exist. If I create the test database manually, then the test connects ok, creates the xx table and populates it, but then crashes with the same segmentation error when trying to execute sel() to fetch the rows. Can anyone offer any advice as to how I might be able to get this work ? Maybe I need the missing library or bottom line, find another method. However, I do need to accomplish a working html interface to this database. Someone has mentioned PHP, but I am not familiar with that at all. Any help whatsover would be much appreciated. Many Thanks in advance.
On Fri, 8 Sep 2000, Dircon wrote: >Yes, I know it's old and yes I do have a current version of Online on >another system currently under development. Nevertheless, I have an urgent >requirement to get this working. I am using a Siemens Nixdorf RM600-220 >platform running SINIX-Y 4.52 with Informix SE 4.10U. Since you're aware that 4.10 is no longer supported by Informix and an upgrade to at least 5.10 is strongly recommended, not least because of Y2K troubles, I won't chastise you further... Note, too, that the Sinix ports of that era were done by Siemens and not by Informix. This means that there could be changes made by Siemens which I have no knowledge of. I do not posess any 4.1x versions of either the servers or ESQL/C, so I can't even verify what happened on non-Siemens machines -- at least, not without going to a lot of trouble to get a copy of the software recovered from some offsite archive in Kansas (I'm in California). All of this makes it rather difficult to help very much! >I have Perl 5 5.000 or 5.6.0 or somewhere in between? >installed and also the WN web server. Having installed DBD::Informix4, Which version of DBI are you using? Be aware that DBD::Informix4 0.23 was released somewhere around September 1997 - not later than January 1998. All sorts of things have changed since then. >I am having a problem with the Informix library includes. In the LIBS >section of Makefile.PL there is an include for the library '-lsql4'. I >don't seem to have this, but have substituted '-lfesql' instead. OK. DBD::Informix4 does not use the ESQL/C compiler; it uses reverse engineered C code that might have been generated by the ESQL/C compiler. It does need an ESQL/C library. IIRC, libfesql.a is part of I4GL rather than ESQL/C (I do have 4.16 I4GL available and it definitely has libfesql.a as one file; what I don't have is 4.12 ESQL/C to check that libfesql.a is not part of that). So, it would appear that you are having to use the I4GL library as a surrogate for the ESQL/C library. >This compiles ok. Running the test, however, initially gives a core >dump for segmentation error. I found this was because the test >database did not exist. If I create the test database manually, then >the test connects ok, creates the xx table and populates it, but then >crashes with the same segmentation error when trying to execute sel() >to fetch the rows. Can anyone offer any advice as to how I might be >able to get this work ? This might be a problem with the code in DBD::Informix4 or it might be a problem with the 4.10 version of the ESQL/C (surrogate) library, or almost anything else. It will be very difficult to track down. What does the stack trace from the core dump tell you about where the error occurred? >Maybe I need the missing library or bottom line, find another method. I'd strongly counsel updating to a supported database and ESQL/C; the closest version is 5.10. >However, I do need to accomplish a working html interface to this >database. Someone has mentioned PHP, but I am not familiar with that >at all. PHP does have Informix access, but I am 99% sure it won't work with any version of ESQL/C prior to 5.00, and 90% sure it prefers CSDK (ESQL/C 9.x) to ESQL/C 7.x. DBD::Informix 100% definitively does not support ESQL/C 4.x, so that's no help. Neither the Python nor the Tcl/Tk methods for accessing Informix support 4.x, AFAIK. >Any help whatsover would be much appreciated. This is going to be hard. How big is the 4.10 database? Why can't it be migrated to the new machine with the new database on it? You need an HTML interface to the DBMS; there's a lot of work to be done coding that regardless of what you use - DBD::Informix or PHP or anything else. You really are on a hiding to nothing here. Informix has not supported the 4.1x servers for about 5 years, maybe longer -- that's how far out of date your system is. I really think the fastest way to get things working is to upgrade the database. Otherwise, you are into debugging the DBD::Informix4 code. I don't think I'm doing Goran Thyni <goran@bildbasen.kiruna.se> an injustice when I say DBD::Informix4 was not guaranteed to work completely even in 1997. If the failure is during the test phase of the installation, then it is a little more surprising -- I did once get it to compile and install without major problems, but it was a long time ago. -- Yours, Jonathan Leffler (Jonathan.Leffler@Informix.com) #include <disclaimer.h> Guardian of DBD::Informix v1.00.PC1 -- http://www.perl.com/CPAN "I don't suffer from insanity; I enjoy every minute of it!"