DBD::Informix - Cannot unset AutoCommit for unlogged databases
Posted in 2025
Topics: Platform-Specific Issues
Hi, Trying to use DBD::Informix. Oracle Linux Server 8.10 Perl v5.26.3 DBI 1.641-4 DBD::Informix 2018.1031 CSDK 4.50.FC5 Informix Dynamic Server 11.70.FC5XE When I execute $dbh_bl->{AutoCommit} = 0; Perl aborts with the above message, DBD::Informix - Cannot unset AutoCommit for unlogged databases All our databases are logged, so I have no clue why the error occurs. ------------------------------ Sincerely, Dennis ------------------------------
Please show a complete reproduction script - it should be under 10 lines long. The connection string is very important. You could send it to my Gmail account - which is where DBD::Informix support is handled these days. It's slightly odd to be using CSDK 4.50 with IDS 11.70 (it goes with version 14.10 most naturally), but I don't think that's a contributing factor. The Informix environment would be useful. So would the result of running "SELECT * FROM sysmaster:sysdatabases" ------------------------------ Jonathan Leffler ------------------------------
Jonathan, I managed to figure out a cause, it is LD_LIBRARY_PATH that points to 4GL libs instead of CSDK ones. Please, why library location is not built into compiled Informix.so, as it stated in DBD::Informix's README? With Version 0.95 and above, the absolute pathnames of the Informix shared libraries will be built into your DBD::Informix library by default, which means that you do not need to worry about LD_LIBRARY_PATH, LD_RUN_PATH, SHLIB_PATH, or LIBPATH at runtime. Then I tried to build static module with DBD_INFORMIX_ESQLC_LINKAGE=-static That resulted in linkage errors, /bin/ld: /opt/informix/csdk/4.10.fc15/lib/libifasf.a(asfapi.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /bin/ld: /opt/informix/csdk/4.10.fc15/lib/libifasf.a(asfutil.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC <...> After that I added DBD_INFORMIX_DEBUG_GCC=-fPIC but with no success. ------------------------------ Sincerely, Dennis ------------------------------