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

Informix 15 compatibility mode

  • 1.  Informix 15 compatibility mode

    Posted 20 days ago

    After upgrading from 14 to 15 the server is in Compatibility mode. If there is no plan to use larger tables, chunks, and page sizes would it be OK just to keep it in  Compatibility mode indefinitely? Or are there some other 15 features missing in this mode, like will we still be seeing " WARNING: Next backup of DBspace rootdbs must be level-0 backup"?

    Thanks in advance,

    -S



    ------------------------------
    Snorri Bergmann
    ------------------------------


  • 2.  RE: Informix 15 compatibility mode

    Posted 20 days ago

    Hi Snorri,

    I think you correctly spotted it: you're not going to take advantage of the new 8-byte timestamps, with consequences for incremental backups.

    So the only "advantage" of, in fact the only reason to remain in "compatibility mode" is the ability to revert to where you came from (12.10 or 14.10).

    BR,
     Andreas



    ------------------------------
    Andreas Legner
    Informix Dev
    HCL Software
    ------------------------------



  • 3.  RE: Informix 15 compatibility mode

    Posted 20 days ago

    Andreas:

    You said " the only "advantage" of, in fact the only reason to remain in "compatibility mode" is the ability to revert to where you came from". There is one other, you do not have to recode and recompile existing code required by the change in the changes to the sqlca structure. For some that is going to be a tough nut due to lost source or 3rd party software.

    Art



    ------------------------------
    Art S. Kagel, President and Principal Consultant
    ASK Database Management Corp.
    www.askdbmgt.com
    ------------------------------



  • 4.  RE: Informix 15 compatibility mode

    Posted 20 days ago

    Thanks Andreas and Art.

    I have set the TABLE_SIZE to SMALL in onconfig. Am I correct to assume that 4.50 clients will continue to work without issues against 15 (in normal mode) as long as all tables remain SMALL?

    Best regards,

    -S



    ------------------------------
    Snorri Bergmann
    ------------------------------



  • 5.  RE: Informix 15 compatibility mode

    Posted 20 days ago

    Yes. I just tested that again today. 

    Art



    ------------------------------
    Art S. Kagel, President and Principal Consultant
    ASK Database Management Corp.
    www.askdbmgt.com
    ------------------------------



  • 6.  RE: Informix 15 compatibility mode

    Posted 20 days ago

    Yes. I just tested that again today. 

    Art



    ------------------------------
    Art S. Kagel, President and Principal Consultant
    ASK Database Management Corp.
    www.askdbmgt.com
    ------------------------------



  • 7.  RE: Informix 15 compatibility mode

    Posted 20 days ago

    About 6 months back I tried testing some programs that used the 4.50 csdk against a v15 informix that was not running in compatibility mode, but all the tables had been created as small tables.  This was before I had come across the TABLE_SIZE=SMALL onconfig setting.
    The one thing that couldn't run was with regard to sequences, the program couldn't select a  <sequence>.nextval', it would crash.

    Does the TABLE_SIZE onconfig option fix this?

     

    Regards,

      Bryce Stenberg.

     






  • 8.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    Bryce:

    No, the TABLE_SIZE parameter only controls the default sizing for new tables at create time. It has no effect beyond that.

    Here, I compiled my sqlstruct utility with CSDK 4.50 running against v15.0.1.0.3 in infrastructure v1:

    $ esql -V
    HCL Informix CSDK Version 4.50, HCL Informix-ESQL Version 4.50.FC13W1
    art@Gandolf:~/GoogleDrive/iiug/utils2_ak$ esql -o sqlstruct sqlstruct.ec getopt.c

    $ ./sqlstruct -d art -n fred
    > select yas.nextval;  
     
    typedef struct fred_s {
        int64_t nextval;
    } fred_t, *fred_tp;
     

    Works just fine.

    Art



    ------------------------------
    Art S. Kagel, President and Principal Consultant
    ASK Database Management Corp.
    www.askdbmgt.com
    ------------------------------



  • 9.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    Bryce:

    One thing, if you compiled the app with CSDK 4.xx not static (the default) but were running it local to the server using the v15.0 libraries, that would likely cause a crash.

    It would certainly refuse to run due to missing libraries as several were renamed with "15a" appended to the names they had under v4.xx.

    Art



    ------------------------------
    Art S. Kagel, President and Principal Consultant
    ASK Database Management Corp.
    www.askdbmgt.com
    ------------------------------



  • 10.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    Thanks first to Art for pointing out this oversight on my part!

    Regarding Bryce's comments, I think there are two points still to make:

    • tables newly created by pre-v15 clients will automatically become SMALL tables, regardless of TABLE_SIZE - this likely explains his experience in this regard.
    • sequences, on their face, behave the same: no problem when created by old clients, yet producing odd errors indeed when created by v15 client and then used (or dropped) by old ones.

    This latter problem, afaics, hadn't been brought to our attention yet, but should be fixed easily (why would a sequence have to be "LARGE"?)

     Andreas



    ------------------------------
    Andreas Legner
    Informix Dev
    HCL Software
    ------------------------------



  • 11.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    Andreas:

    Very strange. Testing sequences with both v15 and v4.50 CSDK compiles. Using a v4.50 compiled version of Jonathan's sqlcmd: in one database sequences return an error:

    SQL[10]: select yas.nextval;
    SQL -242: Could not open database table (art.yas).
    ISAM -21569: <<error message text not found>>
    SQLSTATE: IX000 at /dev/stdin:1

    In another it works just fine:

    SQL[16]:  select another.nextval;
    3
    SQL[17]: 
    And in a third database, some work and others error:
    SQL[18]: select tabname from systables where tabtype = 'Q';
    s_test
    for_faking_replcheck
    pm_row_id
    yas
    SQL[19]: select s_test.nextval;
    487
    SQL[20]: select for_faking_replcheck.nextvak;
    SQL -201: A syntax error has occurred.
    SQLSTATE: 42000 at /dev/stdin:4
    SQL[21]: select pm_row_id.nextval;
    548525
    SQL[22]: select yas.nextval;
    5
    SQL[23]: 
    Only the 'yas' sequence here was created after upgrading to infrastructure level 1, the others are legacies from v14.10 upgraded to v15.0.0.0 through to 15.0.1.0.3.
    Art


    ------------------------------
    Art S. Kagel, President and Principal Consultant
    ASK Database Management Corp.
    www.askdbmgt.com
    ------------------------------



  • 12.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    Oops ignore my last, there was just a typo in that select that failed. Dumb.



    ------------------------------
    Art S. Kagel, President and Principal Consultant
    ASK Database Management Corp.
    www.askdbmgt.com
    ------------------------------



  • 13.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    Art.

    If I change mode to native mode, all the tables will have the new limits?

    Thanks.

    Luis



    ------------------------------
    Luis Panozzo
    ------------------------------



  • 14.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    Only newly created tables (and not, for instance, newly created fragments for a pre-existing table).

    And only if not "TABLE_SIZE SMALL" was in effect one way or another ("CREATE SMALL TABLE ...", session env, onconfig).

    And only if created by a true v15 client.  So not if created, for instance, by your existing application that hasn't been recompiled using v15 csdk.

    Hope this makes sense!

     Andreas



    ------------------------------
    Andreas Legner
    Informix Dev
    HCL Software
    ------------------------------



  • 15.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    Luis:

    No, only LARGE tables which will be those created after upgrading the infrastructure level from 0 to 1, aka native mode can take advantage of the new per table limits. 

    All existing tables created under release 14.10 or earlier or under v15.0 in compatibility mode, as well as all catalog tables, will become SMALL tables (and the dbschema output will reflect that). New tables will be LARGE tables if you either include the LARGE keyword when creating them (CREATE LARGE TABLE... ) or by default if you set TABLE_SIZE to LARGE in your ONCONFIG file (the default in native mode) or if TABLE_SIZE is unset. If TABLE_SIZE is set to SMALL, new tables created without the LARGE keyword will be created as  SMALL tables.

    You cannot alter a table's "size" from SMALL to LARGE or from LARGE to SMALL, you must create a new table with the sizing you want and move the data.

    Art



    ------------------------------
    Art S. Kagel, President and Principal Consultant
    ASK Database Management Corp.
    www.askdbmgt.com
    ------------------------------



  • 16.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    We have currently a case open (TS021681890), where reverting from 15.0.1 did not work due to very first root-chunk only having 3000 pages and the second root-chunk has 5000 pages. And we needed to add a third root-chunk for Informix 15 Migration. However, this is an instance which has grown over years. But this might be the case in many installations as not everywhere there is the possibility to dbexport & dbimport to consolidate root-chunks, etc.

    Let me cite support: When there are chunk extended reserved pages that are not in chunk 1, the server only used the page offset, and assumed that is in chunk 1. Thus giving a warning of I/O bad request with page offset greater than the number of pages in chunk 1. This issue affects all reversion from 15.0.1 to any previous versions.

    The consequences were dire in our test. The DB did not come up in Informix 14 nor in Informix 15.

    Support told me that the case is already marked as a must fix for 15.0.1.6.

    Might be no problem if you have only one root-chunk. However, if you think you need the possibility to revert, i would test it prior to migration.



    ------------------------------
    Wilhelm Seyerl
    ------------------------------



  • 17.  RE: Informix 15 compatibility mode

    Posted 19 days ago

    We apologize for this defect. Andreas' fix is in review now and will be in 15.0.1.6, as you said.

    -jc



    ------------------------------
    John Lengyel
    ------------------------------