diff --git a/symmetric/symmetric-ds/src/main/java/org/jumpmind/symmetric/route/DataGapDetector.java b/symmetric/symmetric-ds/src/main/java/org/jumpmind/symmetric/route/DataGapDetector.java index e81a647fea..d51ce33099 100644 --- a/symmetric/symmetric-ds/src/main/java/org/jumpmind/symmetric/route/DataGapDetector.java +++ b/symmetric/symmetric-ds/src/main/java/org/jumpmind/symmetric/route/DataGapDetector.java @@ -109,10 +109,13 @@ public Long extractData(ResultSet rs) throws SQLException, .findCreateTimeOfData( dataGap.getEndId() + 1); if (createTime != null && !dbDialect - .areDatabaseTransactionsPendingSince(createTime.getTime())) { - log.info("RouterSkippingDataIdsNoTransactions", - dataGap.getStartId(), dataGap.getEndId()); - dataService.updateDataGap(dataGap, DataGap.STATUS.SK); + .areDatabaseTransactionsPendingSince(createTime.getTime() + 5000)) { + if (dataService.countDataInRange(dataGap.getStartId() - 1, + dataGap.getEndId() + 1) == 0) { + log.info("RouterSkippingDataIdsNoTransactions", + dataGap.getStartId(), dataGap.getEndId()); + dataService.updateDataGap(dataGap, DataGap.STATUS.SK); + } } } else if (isDataGapExpired(dataGap.getEndId() + 1)) { log.info("RouterSkippingDataIdsGapExpired", diff --git a/symmetric/symmetric-ds/src/main/java/org/jumpmind/symmetric/route/DataRefGapDetector.java b/symmetric/symmetric-ds/src/main/java/org/jumpmind/symmetric/route/DataRefGapDetector.java index a21219dee2..105ac1d0db 100644 --- a/symmetric/symmetric-ds/src/main/java/org/jumpmind/symmetric/route/DataRefGapDetector.java +++ b/symmetric/symmetric-ds/src/main/java/org/jumpmind/symmetric/route/DataRefGapDetector.java @@ -80,9 +80,13 @@ public Long extractData(ResultSet rs) throws SQLException, DataAccessException { } else { if (dataService.countDataInRange(lastDataId, dataId) == 0) { if (dbDialect.supportsTransactionViews()) { - if (!dbDialect.areDatabaseTransactionsPendingSince(dataService.findCreateTimeOfData(dataId).getTime())) { - log.info("RouterSkippingDataIdsNoTransactions", lastDataId, dataId); - lastDataId = dataId; + if (!dbDialect + .areDatabaseTransactionsPendingSince(dataService + .findCreateTimeOfData(dataId).getTime() + 5000)) { + if (dataService.countDataInRange(lastDataId, dataId) == 0) { + log.info("RouterSkippingDataIdsNoTransactions", lastDataId, dataId); + lastDataId = dataId; + } } } else if (isDataGapExpired(dataId)) { log.info("RouterSkippingDataIdsGapExpired", lastDataId,