IBM Support

IT00258: ONLINE-CDC WILL GENERATE PARTIAL RECORDS IF YOUR TABLE HAS A LAR GE ROW SIZE. ONLINE-CDC LIMITS IFX_LO_READ() TO ONLY FETCH 32000

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as documentation error.

Error description

  • If your row size is over 32000 bytes. ONLINE-CDC will split the
    CDC record being return, limiting ifx_lo_read() to fetch only
    32000 bytes and the application developer must recognize that
    this is a partial record and fetch the rest of the record with
    another call to ifx_lo_read().
    
    This behavior is not documented and appears to be a design issue
    with the Informix implementation of the CDC API.
    The only way a developer would know to do this is to reference
    the example provided in the cdcapi.ec
    

Local fix

  • Review cdcapi.ec and when a partial record is retrieved you must
    retrieve the rest of the record with another call to
    ifx_lo_read()
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Users of the Informix log capture API (CDC)                  *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See Error Description                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Refer to the cdcapi.ec sample program in the                 *
    * $INFORMIXDIR/demo/cdc directory.  Informix versions          *
    * 12.10.xC4 and later also remove an internal constraint that  *
    * in this case limited the amount of data returned in a single *
    * read call to approximately 32 KB.                            *
    ****************************************************************
    

Problem conclusion

  • Your application cannot depend on a specific number of records
    being returned by smart large object read calls. The number of
    CDC records that are returned in a read call is not predictable
    and might not be an integral number. If a read call returns only
    part of a CDC record, the next read call
    returns more data for that record. Your application must merge
    the parts of the record that are returned in multiple read
    calls. The Change Data Capture sample program provides examples
    of merging parts of records.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT00258

  • Reported component name

    INFORMIX SERVER

  • Reported component ID

    5725A3900

  • Reported release

    C10

  • Status

    CLOSED DOC

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-03-12

  • Closed date

    2014-11-07

  • Last modified date

    2014-11-07

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

Applicable component levels

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSGU8G","label":"Informix Servers"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"C10","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
07 November 2014