From e0e7a17e803806ae55de8f01bbefbec753a6771b Mon Sep 17 00:00:00 2001 From: Yijun Xie <48257664+YijunXieMS@users.noreply.github.com> Date: Tue, 1 Jun 2021 10:33:24 -0700 Subject: [PATCH 1/2] Add connection timeout to 60 seconds. --- .../core/amqp/implementation/handler/ConnectionHandler.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/implementation/handler/ConnectionHandler.java b/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/implementation/handler/ConnectionHandler.java index ffe6b56d7dee..c50ced8c6e3f 100644 --- a/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/implementation/handler/ConnectionHandler.java +++ b/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/implementation/handler/ConnectionHandler.java @@ -113,6 +113,11 @@ public int getMaxFrameSize() { * @param transport Transport to add layers to. */ protected void addTransportLayers(Event event, TransportInternal transport) { + // default connection idle timeout is 0. + // Giving it a idle timeout will enable the client side to know broken connection faster. + // Refer to http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#doc-doc-idle-time-out + transport.setIdleTimeout(60_000); + final SslDomain sslDomain = Proton.sslDomain(); sslDomain.init(SslDomain.Mode.CLIENT); From c735346a28403d489388570cd7d920c4ce787e64 Mon Sep 17 00:00:00 2001 From: Yijun Xie <48257664+YijunXieMS@users.noreply.github.com> Date: Tue, 1 Jun 2021 12:12:56 -0700 Subject: [PATCH 2/2] Use constant CONNECTION_IDLE_TIMEOUT --- .../core/amqp/implementation/handler/ConnectionHandler.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/implementation/handler/ConnectionHandler.java b/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/implementation/handler/ConnectionHandler.java index c50ced8c6e3f..3e529e475a7d 100644 --- a/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/implementation/handler/ConnectionHandler.java +++ b/sdk/core/azure-core-amqp/src/main/java/com/azure/core/amqp/implementation/handler/ConnectionHandler.java @@ -42,6 +42,7 @@ public class ConnectionHandler extends Handler { static final Symbol USER_AGENT = Symbol.valueOf("user-agent"); static final int MAX_FRAME_SIZE = 65536; + static final int CONNECTION_IDLE_TIMEOUT = 60_000; // milliseconds private final Map connectionProperties; private final ConnectionOptions connectionOptions; @@ -116,7 +117,7 @@ protected void addTransportLayers(Event event, TransportInternal transport) { // default connection idle timeout is 0. // Giving it a idle timeout will enable the client side to know broken connection faster. // Refer to http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#doc-doc-idle-time-out - transport.setIdleTimeout(60_000); + transport.setIdleTimeout(CONNECTION_IDLE_TIMEOUT); final SslDomain sslDomain = Proton.sslDomain(); sslDomain.init(SslDomain.Mode.CLIENT);