diff --git a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSource.java b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSource.java index 21b0961a6..1b7cac79d 100644 --- a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSource.java +++ b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/LogMinerStreamingChangeEventSource.java @@ -208,10 +208,13 @@ public void commitOffset(Map offset) { } private boolean connectionProblem (Throwable e){ + if (e.getMessage() == null || e.getCause() == null) { + return false; + } return e.getMessage().startsWith("ORA-03135") || e.getMessage().startsWith("ORA-12543") || e.getCause() instanceof IOException || - (e.getCause() != null && e.getCause().getCause() instanceof NetException); + e.getCause().getCause() instanceof NetException; } } diff --git a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/TransactionalBuffer.java b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/TransactionalBuffer.java index d63c51ddc..fd960b402 100644 --- a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/TransactionalBuffer.java +++ b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/TransactionalBuffer.java @@ -178,7 +178,7 @@ private BigDecimal calculateSmallestScn() { .map(transaction -> transaction.firstScn) .min(BigDecimal::compareTo) .orElseThrow(() -> new DataException("Cannot calculate smallest SCN")); - metrics.ifPresent(m -> m.setOldestScn(scn == null ? null : scn.longValue())); + metrics.ifPresent(m -> m.setOldestScn(scn == null ? -1 : scn.longValue())); return scn; } diff --git a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/TransactionalBufferMetrics.java b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/TransactionalBufferMetrics.java index db37b14be..8dfc8c778 100644 --- a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/TransactionalBufferMetrics.java +++ b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/TransactionalBufferMetrics.java @@ -152,7 +152,7 @@ public long getMinLagFromSource() { @Override public long getAverageLagFromSource() { - return totalLagsFromTheSource.get().toMillis()/capturedDmlCounter.get() == 0 ? 1 : capturedDmlCounter.get(); + return totalLagsFromTheSource.get().toMillis()/(capturedDmlCounter.get() == 0 ? 1 : capturedDmlCounter.get()); } @Override