Skip to content

IBM i Data Replication

Overview

Starting with version 3.0.0, InfoConnect Hub now supports seamless IBM i data replication to any JDBC-compliant target database. The DB replication flow does not require any messaging or event middleware, and works directly with IBM i lightweight Change Data Capture (CDC) agent, InfoCDC. By streamlining the replication process, it simplifies system complexity and enhances usability for customers replicating IBM i tables to databases such as MySQL or Snowflake that don't have complex integration use cases and don't already have messaging or event infrastructure in place.

How does it work

Below is a high level replication flow

image

The Direct Repication extends InfoCDC and Data Queue Poller functionality, with added JDBC Sink capabilities, to achieve end to end data flow:

  1. Data Capture
    InfoCDC captures IBM i DB2 table changes and sends them to Replication Data Queues (DQ).

  2. Data Queue Polling
    InfoConnect Hub listens to Data Queues for new messages. When new change event arrives, the Hub converts it from internal fixed-position message format into JSON and determines the key values

  3. Direct Database Integration

    • The Hub checks if the target table already exists, and if needed will create a new one, according to InfoCDC table and key configuration.
    • The Hub performs UPSERT or DELETE operations directly on the target database via JDBC.
    • Operations are executed without routing messages to additional middleware (e.g., brokers or event platforms).

Configuration Example

{
    "pollerName": "db-poller",
    "dqName": "CDCDQ1581",
    "libraryName": "INFOCDCDEM",
    "sinkType": "JDBC",
    "sinkTypeProperties": {
        "jdbcProperties": {
            "driverClassName": "com.mysql.cj.jdbc.Driver",
            "maxPoolSize": 20,
            "minPoolSize": 3,
            "jdbcUrl": "jdbc:mysql://localhost:3306/testDB",
            "username": "GtflCbDpwstp9hDlUl2g3av81i38WCYnVtG452GN6gDjJTaWmmhgexwT/A==",
            "password": "fkzxAm+GBqLYDZTAMsSy1HG+Vi0I9CgDOBo18ADbuYbrJWJ3itFJsZzzqPtS/p0="
        }
    },
    "dqFormatFileName": "CDCFT1541",
    "dqFormatExceptionAction": "place back into queue",
    "dqFormatFileLibrary": "INFOCDCDEM",
    "threadCount": 20
}