What I ran into
I ran into a situation where replication just wouldn’t move forward, and the Change Selector refused to process data. The root cause was not obvious at first.
It turned out the journal receiver being used was partial or damaged.
What actually happens
On IBM i, the Change Selector depends on complete journal receivers to read transactions.
If a receiver is:
- Partial
- Incomplete
- Or restored from another system
then CDC cannot trust it.
Result:
- Change Selector cannot start from that receiver
- It cannot continue reading
- Replication appears “stuck” even though everything else looks fine
Why this matters
CDC is strict about data integrity.
It does not try to “guess” missing changes or work with incomplete logs.
If a receiver is partial:
- CDC will refuse to process it entirely
- This is by design to avoid corrupt or inconsistent replication
So even if most of the data is there, CDC will not proceed.
What actually fixes it
The resolution is not a quick patch. It requires resetting state correctly:
- Resync the affected tables
- Then cold start the Change Selector
Using options like:
This allows CDC to restart from a clean, valid point instead of relying on a broken receiver.
What changed for me
I used to think journal issues would show up as clear errors.
This made me realize:
- Sometimes CDC just stops progressing
- And the issue is deep in how logs were handled or restored
Also, moving or restoring journal receivers between systems is risky if not done correctly.
Takeaway
If the Change Selector is not progressing and nothing else looks wrong:
- Check the journal receiver state
- Make sure it is complete and valid
CDC will always choose data correctness over partial progress.
Have you ever had a Change Selector stop silently and later found it was due to journal receiver issues?
------------------------------
Adhitya Maya
*Precisely Software Inc.
------------------------------