DBD::Informix
Posted in 2004
Topics: Installation, Setup & Upgrades, Connectivity: ESQL/C, 4GL & Embedded SQL, Security, Permissions & Auditing
"perl Makefile.PL" fails at esqltest. I get "Segmentation fault" when running it stand-alone for the command-line. Otherwise, no error message appears when run by Makefile.PL. So, I edited the code code to add print statements to show me where it goes wrong. In esqlc_v6.ec, it crashes on the second (concurrent) connection try, i.e., EXEC SQL CONNECT to :dbname AS :dbconn USER :dbuser USING :dbpass WITH CONCURRENT TRANSACTION (when a user and password are defined), and it crashes on EXEC SQL CONNECT TO :dbname AS :dbconn WITH CONCURRENT TRANSACTION (when no user/pass are defined). It passes (doesn't dump core) on another computer I installed DBD::INFORMIX on, and I poured over the environment as could find no significant differences. The machine that crashes has significantly less horsepower duall (500 MHz) and less RAM (512MB) and swap than the computer where it does work (dual 3GHz and 2GB). Any ideas about what I can do to get it to work? Mark
Mark J Fenbers wrote: > "perl Makefile.PL" fails at esqltest. > > I get "Segmentation fault" when running it stand-alone for the > command-line. Otherwise, no error message appears when run by > Makefile.PL. OK. That means your ESQL/C installation is dubious. Which other ESQL/C programs have you successfully compiled with it? Which version of which o/s are you using? Which version of Perl, DBI, DBD::Informix, ESQL/C (or CSDK), IDS (or other Informix DBMS) are you using? Of these, the o/s and the ESQL/C versions are currently critical; the C compiler that you're using might also be material... > So, I edited the code code to add print statements to show me where it > goes wrong. In esqlc_v6.ec, it crashes on the second (concurrent) > connection try, i.e., EXEC SQL CONNECT to :dbname AS :dbconn USER > :dbuser USING :dbpass WITH CONCURRENT TRANSACTION (when a user and > password are defined), and it crashes on EXEC SQL CONNECT TO :dbname AS > :dbconn WITH CONCURRENT TRANSACTION (when no user/pass are defined). > > It passes (doesn't dump core) on another computer I installed > DBD::INFORMIX on, and I poured over the environment as could find no > significant differences. The machine that crashes has significantly > less horsepower duall (500 MHz) and less RAM (512MB) and swap than the > computer where it does work (dual 3GHz and 2GB). The processor speed is almost entirely immaterial, and the memory is also likely to be immaterial - I develop DBD::Informix on a 333 MHz machine with (IIRC) 256 MB memory. > Any ideas about what I can do to get it to work? I've never heard of problems with ESQL/C crashing on variations of CONNECT. I've heard of all sorts of other problems, but not crashes. In the circumstances, we should start by analyzing the platform and CSDk versions. When that turns out to be immaterial or current, then we start really scratching our heads...but we also test with esqlbasic.ec (distributed with DBD::Informix) to see what goes. The primary advantage of that is that it is even simpler and hasn't got any Perl in it at all. We'll probably end up upgrading it to play with variants of CONNECT (it uses DATABASE statements so it can work unchanged with ESQL/C 5.x as well as later versions), but ... -- Jonathan Leffler #include <disclaimer.h> Email: jleffler@earthlink.net, jleffler@us.ibm.com Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/