david li, September 21, 2018 - 1:35 am UTC
thanks for your explaination!
how can I understand about "the transaction is empty" here?
an empty transaction is a transaction that hasn't do anything since it connects or a transaction that does not do any DML (possiblely run select query)?
so SKIPEMPTYTRANS also has the risk of losing data possiblely,right? though it's a empty transaction in the first 4 hours, but it may update data in the fifth hour, so that mean the updates will be skipped
September 27, 2018 - 4:27 pm UTC
Please remember that Oracle GoldenGate only processes committed transactions.
If you are sitting idle for 4 hours, and not committed a transaction; then nothing is lost.
If you are sitting idle for 4 hours, and then commit after the 5th hour, the transaction would be captured, shipped, and applied.
This parameter is used to help identify psudo long running transactions and identify if the transaction has done nothing.
david li, September 28, 2018 - 1:30 am UTC
thanks for your reply!
I am still confused that how does goldengate know it's a empty session or not?
for example, there are two transactions:
1. idle for 4 hours, then update and commit at fifth hour
2. idle all the time (empty transaction)
goldengate reads log from the begining to end,and it need to make decision to decide it's a empty transaction or not at the fourth hour(let's assume the skipemptytransaciton=4 hours here), right? but how does goldengate know to skip or not? because two transactions are the same for goldengate at this moment.