diff --git a/src/main/java/com/xydl/cac/iec/IecClient.java b/src/main/java/com/xydl/cac/iec/IecClient.java index ebb4a8b..d393a5d 100644 --- a/src/main/java/com/xydl/cac/iec/IecClient.java +++ b/src/main/java/com/xydl/cac/iec/IecClient.java @@ -66,6 +66,7 @@ public class IecClient implements ClientEventListener { public void disconnect() { try { clientAssociation.disconnect(); + clientAssociation = null; } catch (Exception ignore) { } } diff --git a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java index 0b3b2b1..31b4898 100644 --- a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java +++ b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java @@ -71,10 +71,9 @@ public class RealTimeDataService { iedRepository.save(ied); clientMap.put(ied.getId(), iecClient); } catch (Exception ex) { - ied.setStart(Constants.FALSE); - iedRepository.save(ied); String err = "61850订阅异常, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort(); log.error(err, ex); + this.stopCollect(iedId); throw new BusinessException(err); } finally { inDoing = false;