From 4f3f5b6fb45b3f2f150c8534bc87e50b56ed71ee Mon Sep 17 00:00:00 2001 From: Alex Rudyy Date: Fri, 5 Dec 2014 09:33:27 +0000 Subject: QPID-6257: Introduce operational log for connection being dropped by the clients or due to network issue and change the log level for SenderExceptions into INFO/DEBUG git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1643208 13f79535-47bb-0310-9956-ffa450edef68 --- .../server/protocol/v0_10/ServerConnection.java | 2 +- .../server/protocol/v0_8/AMQProtocolEngine.java | 85 ++++++++++++++-------- .../protocol/v0_8/InternalTestProtocolSession.java | 2 +- .../qpid/server/protocol/v0_8/MaxChannelsTest.java | 2 +- 4 files changed, 56 insertions(+), 35 deletions(-) (limited to 'qpid/java/broker-plugins') diff --git a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java index bc463ef59e..8567be37f0 100644 --- a/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java +++ b/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java @@ -174,7 +174,7 @@ public class ServerConnection extends Connection implements AMQConnectionModel task : _taskList) - { - task.performAction(this); - } - - synchronized (this) - { - _closed = true; - notifyAll(); - } - getEventLogger().message(_logSubject, ConnectionMessages.CLOSE()); - } - } } else { @@ -823,7 +809,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, @Override public Object run() { - closeSession(); + closeSession(connectionDropped); return null; } }); @@ -831,6 +817,41 @@ public class AMQProtocolEngine implements ServerProtocolEngine, } } + private void finishClose(boolean connectionDropped) + { + if (!_closed) + { + + try + { + if (_virtualHost != null) + { + _virtualHost.getConnectionRegistry().deregisterConnection(this); + } + closeAllChannels(); + } + finally + { + try + { + for (Action task : _taskList) + { + task.performAction(this); + } + } + finally + { + synchronized (this) + { + _closed = true; + notifyAll(); + } + getEventLogger().message(_logSubject, connectionDropped ? ConnectionMessages.DROPPED_CONNECTION() : ConnectionMessages.CLOSE()); + } + } + } + } + private void awaitClosed() { synchronized(this) @@ -898,7 +919,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, try { markChannelAwaitingCloseOk(channelId); - closeSession(); + closeSession(false); } finally { @@ -1126,7 +1147,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, { try { - closeSession(); + closeSession(true); } finally { @@ -1561,7 +1582,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, } try { - closeSession(); + closeSession(false); } catch (Exception e) { @@ -1588,7 +1609,7 @@ public class AMQProtocolEngine implements ServerProtocolEngine, try { - closeSession(); + closeSession(false); } catch (Exception e) { diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java index c01a349509..7407890b58 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java @@ -231,7 +231,7 @@ public class InternalTestProtocolSession extends AMQProtocolEngine implements Pr //Simulate the Client responding with a CloseOK // should really update the StateManger but we don't have access here // changeState(AMQState.CONNECTION_CLOSED); - ((AMQChannel)session).getConnection().closeSession(); + ((AMQChannel)session).getConnection().closeSession(false); } diff --git a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java index 107e64bee5..c6f7defe56 100644 --- a/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java +++ b/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java @@ -62,7 +62,7 @@ public class MaxChannelsTest extends QpidTestCase try { _session.getVirtualHost().close(); - _session.closeSession(); + _session.closeSession(false); } finally { -- cgit v1.2.1