diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/common/TcpClient.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/common/TcpClient.java index 4619f550e7..0bcea69076 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/common/TcpClient.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/common/TcpClient.java @@ -60,7 +60,7 @@ @Slf4j public abstract class TcpClient implements Closeable { - protected static transient int CLIENTNO = 0; + protected static int CLIENTNO = 0; static { try { @@ -123,12 +123,15 @@ public void initChannel(SocketChannel ch) { @Override public void close() { try { + + goodbye(); + channel.disconnect().sync(); - workers.shutdownGracefully(); + workers.shutdownGracefully().sync(); if (heartTask != null) { heartTask.cancel(false); } - goodbye(); + } catch (Exception e) { Thread.currentThread().interrupt(); log.warn("close tcp client failed.|remote address={}", channel.remoteAddress(), e); diff --git a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java index 836ad00dc5..585a58b878 100644 --- a/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java +++ b/eventmesh-sdks/eventmesh-sdk-java/src/main/java/org/apache/eventmesh/client/tcp/impl/cloudevent/CloudEventTCPSubClient.java @@ -135,7 +135,6 @@ public void registerBusiHandler(ReceiveMsgHook<CloudEvent> handler) throws Event @Override public void close() { try { - goodbye(); super.close(); } catch (Exception ex) { log.error("exception occurred when close", ex);