IBM Support

IT07378: WHEN USING CHANGE DATA CAPTURE (CDC) TO SNIFF LOGS, THERE ARE INCONSISTENCIES WHEN INSERTING AND OR UPDATING A PRIMARY KEY

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • When using Change Data Capture (CDC) to sniff logs, there
    appears to be inconsistencies when inserting and or updating a
    Primary Key that exist on fragmented tables.
    
    CDC behavior for                 Non-Fragmented table
    Fragmented table
    Insert               =>                    CDC_REC_INSERT
    CDC_RECUPDAFT ( This occurs after the first insert)
    PK UPDATE   =>                     CDC_REC_UPDBEF +
    CDC_REC_UPDAFT            CDC_REC_INSERT + CDC_REC_UPDBEF
    
    Example Non-Fragmented Table Record order appears as follows:
    
    Got Record type    CDC_REC_INSERT. Size =  113 LSN =
    205:0x176f0bc. TXID = 23    <<<< 1st Loop / Insert Statement
    Got Record type    CDC_REC_UPDBEF. Size =  113 LSN =
    205:0x176f1b0. TXID = 23  <<<< 1st Loop / Update Statement
    Got Record type    CDC_REC_UPDAFT. Size =  117 LSN =
    205:0x176f264. TXID = 23
    Got Record type    CDC_REC_UPDBEF. Size =  117 LSN =
    205:0x176f31c. TXID = 23  <<<< 1st Loop / Update Statement that
    updates a Primary Key
    Got Record type    CDC_REC_UPDAFT. Size =   96 LSN =
    205:0x176f3d4. TXID = 23
    Got Record type    CDC_REC_DELETE. Size =   96 LSN =
    205:0x176f4f4. TXID = 23  <<<< 1st Loop / Delete Statement
    Got Record type    CDC_REC_INSERT. Size =  113 LSN =
    205:0x176f5d4. TXID = 23  <<<< 2nd Loop / Insert Statement
    Got Record type    CDC_REC_UPDBEF. Size =  113 LSN =
    205:0x176f6c8. TXID = 23 <<<< 2nd Loop / Update Statement
    Got Record type    CDC_REC_UPDAFT. Size =  117 LSN =
    205:0x176f77c. TXID = 23
    Got Record type    CDC_REC_UPDBEF. Size =  117 LSN =
    205:0x1770050. TXID = 23 <<<< 2nd Loop / Update Statement  that
    updates a Primary Key
    Got Record type    CDC_REC_UPDAFT. Size =   96 LSN =
    205:0x1770108. TXID = 23
    Got Record type    CDC_REC_DELETE. Size =   96 LSN =
    205:0x1770228. TXID = 23 <<<< 2nd Loop / Delete Statement
    
    Example of Fragmented Table Record order appears as follows:
    
    Got Record type    CDC_REC_INSERT. Size =  113 LSN =
    205:0xd390bc. TXID = 23   <<<< 1st Loop / Insert Statement
    Got Record type    CDC_REC_UPDBEF. Size =  113 LSN =
    205:0xd391b0. TXID = 23  <<<< 1st Loop / Update Statement
    Got Record type    CDC_REC_UPDAFT. Size =  117 LSN =
    205:0xd39264. TXID = 23
    Got Record type    CDC_REC_INSERT. Size =   96 LSN =
    205:0xd39388. TXID = 23   <<<< 1st Loop / Update Statement  that
    updates a Primary Key
    Got Record type    CDC_REC_UPDBEF. Size =  117 LSN =
    205:0xd39428. TXID = 23
    Got Record type    CDC_REC_DELETE. Size =   96 LSN =
    205:0xd39560. TXID = 23  <<<< 1st Loop / Delete Statement
    Got Record type    CDC_REC_UPDAFT. Size =  113 LSN =
    205:0xd39640. TXID = 23  <<<< 2nd Loop / Insert Statement
    Got Record type    CDC_REC_UPDBEF. Size =  113 LSN =
    205:0xd39734. TXID = 23 <<<< 2nd Loop / Update Statement
    Got Record type    CDC_REC_UPDAFT. Size =  117 LSN =
    205:0xd397e8. TXID = 23
    Got Record type    CDC_REC_INSERT. Size =   96 LSN =
    205:0xd3a0bc. TXID = 23  <<<< 2nd Loop / Update Statement  that
    updates a Primary Key
    Got Record type    CDC_REC_UPDBEF. Size =  117 LSN =
    205:0xd3a15c. TXID = 23
    Got Record type    CDC_REC_DELETE. Size =   96 LSN =
    205:0xd3a294. TXID = 23  <<<< 2nd Loop / Delete Statement
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * Users of the log capture API and fragmented tables           *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * If a table is fragmented by expression such that an update   *
    * to a row leads to the row migrating between fragments, the   *
    * CDC log capture API may return an incorrect sequence of      *
    * records for the update.                                      *
    *                                                              *
    * Internally, an update to a row that results in fragment      *
    * migration is converted to an insert of the after image into  *
    * the new fragment followed by a delete of the before image    *
    * from the old fragment.  In this case the CDC log capture API *
    * may return an incorrect series of log records, as detailed   *
    * in the Error Description.  With this fix, an update          *
    * operation will always result in a CDC_REC_UPDBEF followed by *
    * a CDC_REC_UPDAFT, whether update is to a row in a fragmented *
    * table or in a non-fragmented tale.                           *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Update to IBM Informix Server 11.70xC9                       *
    ****************************************************************
    

Problem conclusion

  • Problem Fixed In IBM Informix Server 11.70xC9
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT07378

  • Reported component name

    INFORMIX SERVER

  • Reported component ID

    5725A3900

  • Reported release

    B70

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-02-26

  • Closed date

    2015-03-13

  • Last modified date

    2015-03-13

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

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

Fix information

  • Fixed component name

    INFORMIX SERVER

  • Fixed component ID

    5725A3900

Applicable component levels

  • RB70 PSY

       UP

  • RC10 PSY

       UP

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

Document Information

Modified date:
13 March 2015