From 8058d6e8ebfcd5030e003c257aad0494a4bae3c4 Mon Sep 17 00:00:00 2001 From: Alvaro Vega Date: Fri, 27 Sep 2024 11:11:34 +0200 Subject: [PATCH] check if connected --- .../cygnus/backends/arcgis/restutils/ArcgisFeatureTable.java | 4 ++++ .../iot/cygnus/sinks/NGSIArcgisFeatureTableSink.java | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/restutils/ArcgisFeatureTable.java b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/restutils/ArcgisFeatureTable.java index 239654631..f029a2268 100644 --- a/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/restutils/ArcgisFeatureTable.java +++ b/cygnus-common/src/main/java/com/telefonica/iot/cygnus/backends/arcgis/restutils/ArcgisFeatureTable.java @@ -24,6 +24,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; +import java.net.SocketException; import com.telefonica.iot.cygnus.backends.arcgis.exceptions.ArcgisException; import com.telefonica.iot.cygnus.backends.arcgis.model.Credential; @@ -593,6 +594,9 @@ private void setError(Exception e) { this.errorCode = agsEx.getCode(); } else { if (e != null && e.getCause() != null) { + if (e.getCause() instanceof SocketException) { + connected = false; + } LOGGER.error("Error Cause: " + e.getCause().getMessage()); } LOGGER.error("Error Message: " + e.getMessage()); diff --git a/cygnus-ngsi/src/main/java/com/telefonica/iot/cygnus/sinks/NGSIArcgisFeatureTableSink.java b/cygnus-ngsi/src/main/java/com/telefonica/iot/cygnus/sinks/NGSIArcgisFeatureTableSink.java index 1121e124c..34ef2d456 100644 --- a/cygnus-ngsi/src/main/java/com/telefonica/iot/cygnus/sinks/NGSIArcgisFeatureTableSink.java +++ b/cygnus-ngsi/src/main/java/com/telefonica/iot/cygnus/sinks/NGSIArcgisFeatureTableSink.java @@ -166,7 +166,8 @@ protected int featuresBatched() { */ protected ArcgisFeatureTable getPersistenceBackend(String featureServiceUrl) throws CygnusRuntimeError { - if (arcgisPersistenceBackend.containsKey(featureServiceUrl)) { + if (arcgisPersistenceBackend.containsKey(featureServiceUrl) && + arcgisPersistenceBackend.get(featureServiceUrl).connected() ){ LOGGER.debug("Using persistenceBackend which contains key for Feature table: " + featureServiceUrl); return arcgisPersistenceBackend.get(featureServiceUrl); } else {