From 43ed0241edeb21c7ca3c3f49c9b9110887514b2d Mon Sep 17 00:00:00 2001 From: jchipmunk Date: Sat, 9 Mar 2024 13:32:07 +0300 Subject: [PATCH] DBZ-7619 Metric ScnFreezeCount never increases --- .../LogMinerStreamingChangeEventSourceMetrics.java | 10 ++++++++++ .../processor/AbstractLogMinerEventProcessor.java | 7 ++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSourceMetrics.java b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSourceMetrics.java index 560b16a85..f9253f84a 100644 --- a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSourceMetrics.java +++ b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSourceMetrics.java @@ -541,6 +541,16 @@ public void incrementScnFreezeCount() { scnFreezeCount.incrementAndGet(); } + /** + * Sets the number of times the system change number is considered frozen and has not changed over several consecutive + * LogMiner query batches. + * + * @param scnFreezeCount number of times the system change number is considered frozen + */ + public void setScnFreezeCount(long scnFreezeCount) { + this.scnFreezeCount.set(scnFreezeCount); + } + /** * Sets the duration of the last LogMiner query execution. * diff --git a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/processor/AbstractLogMinerEventProcessor.java b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/processor/AbstractLogMinerEventProcessor.java index df025dd6c..12678f4d2 100644 --- a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/processor/AbstractLogMinerEventProcessor.java +++ b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/processor/AbstractLogMinerEventProcessor.java @@ -1177,9 +1177,11 @@ protected void warnPotentiallyStuckScn(Scn previousOffsetScn, Map previousOffsetScn, previousOffsetCommitScns); metrics.incrementScnFreezeCount(); + counters.stuckCount = 0; } } else { + metrics.setScnFreezeCount(0); counters.stuckCount = 0; } } @@ -1674,8 +1676,8 @@ private Scn getLastScnToAbandonFallbackByTransactionChangeTime(Duration retentio * Wrapper for all counter variables * */ - protected class Counters { - public int stuckCount; + protected static class Counters { + public int stuckCount; // it will be reset after 25 mining session iterations or if offset SCN changes public int dmlCount; public int ddlCount; public int insertCount; @@ -1687,7 +1689,6 @@ protected class Counters { public long rows; public void reset() { - stuckCount = 0; dmlCount = 0; ddlCount = 0; insertCount = 0;