You create an application to capture transactions on your IBM Informix Server. Your application is built using the Informix CDC (Change Data Capture) API. You note that transaction data returned by the application lags significantly behind the actual data changes.
CDC replication is slow
The data recorded by a CDC application returns transactions after they enter the transaction log files and in the order they enter the files. The data will not be visible to the CDC application until it is flushed from the logical log buffer.
Note: You can see this behavior using the cdcapi.ec demonstration program found in the $INFORMIXDIR/demo/cdc directory with 11.7 and 12.1 engines.
Resolving the problem
Here are the five events that cause the current logical-log buffer to flush:
- The current logical-log buffer becomes full.
- A transaction is prepared or committed in a database with unbuffered logging.
- A nonlogging database session terminates.
- A checkpoint occurs.
- A page is modified that does not require a before-image in the physical log.