hasLogSwitchOccurred() does not detect all sequence change if we have more than one pulling thread. This is causing some missing SCN dml being returned from the logming, query, and caused data lost.
the getCurrentRedoLogSequences() only return the first sequence# from the query.
For our case, we have 2 threads and 2 sequences number. please see the screen shot attached.
After we changed the code (if -> while), we get the correct list of sequence, and you can see the log is showing
and our missing data issue is fixed.