Informix

Informix

Connect with Db2, Informix, Netezza, open source, and other data experts to gain value from your data, share insights, and solve problems.

 View Only
Expand all | Collapse all

DBD::Informix - Cannot unset AutoCommit for unlogged databases

  • 1.  DBD::Informix - Cannot unset AutoCommit for unlogged databases

    Posted Thu October 09, 2025 10:28 AM

    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
    ------------------------------


  • 2.  RE: DBD::Informix - Cannot unset AutoCommit for unlogged databases

    Posted Fri October 10, 2025 01:05 AM

    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
    ------------------------------



  • 3.  RE: DBD::Informix - Cannot unset AutoCommit for unlogged databases

    Posted Fri October 10, 2025 06:50 AM

    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
    ------------------------------