Author: orudyy
Date: Fri Dec 5 09:33:27 2014
New Revision: 1643208
URL: http://svn.apache.org/viewvc?rev=1643208&view=rev
Log:
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
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java?rev=1643208&r1=1643207&r2=1643208&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/ConnectionMessages.java
Fri Dec 5 09:33:27 2014
@@ -45,6 +45,7 @@ public class ConnectionMessages
public static final String CONNECTION_LOG_HIERARCHY =
DEFAULT_LOG_HIERARCHY_PREFIX + "connection";
public static final String OPEN_LOG_HIERARCHY =
DEFAULT_LOG_HIERARCHY_PREFIX + "connection.open";
+ public static final String DROPPED_CONNECTION_LOG_HIERARCHY =
DEFAULT_LOG_HIERARCHY_PREFIX + "connection.dropped_connection";
public static final String IDLE_CLOSE_LOG_HIERARCHY =
DEFAULT_LOG_HIERARCHY_PREFIX + "connection.idle_close";
public static final String CLOSE_LOG_HIERARCHY =
DEFAULT_LOG_HIERARCHY_PREFIX + "connection.close";
@@ -52,6 +53,7 @@ public class ConnectionMessages
{
Logger.getLogger(CONNECTION_LOG_HIERARCHY);
Logger.getLogger(OPEN_LOG_HIERARCHY);
+ Logger.getLogger(DROPPED_CONNECTION_LOG_HIERARCHY);
Logger.getLogger(IDLE_CLOSE_LOG_HIERARCHY);
Logger.getLogger(CLOSE_LOG_HIERARCHY);
@@ -142,6 +144,33 @@ public class ConnectionMessages
}
};
}
+
+ /**
+ * Log a Connection message of the Format:
+ * <pre>CON-1004 : Connection dropped</pre>
+ * Optional values are contained in [square brackets] and are numbered
+ * sequentially in the method call.
+ *
+ */
+ public static LogMessage DROPPED_CONNECTION()
+ {
+ String rawMessage = _messages.getString("DROPPED_CONNECTION");
+
+ final String message = rawMessage;
+
+ return new LogMessage()
+ {
+ public String toString()
+ {
+ return message;
+ }
+
+ public String getLogHierarchy()
+ {
+ return DROPPED_CONNECTION_LOG_HIERARCHY;
+ }
+ };
+ }
/**
* Log a Connection message of the Format:
Modified:
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties?rev=1643208&r1=1643207&r2=1643208&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
(original)
+++
qpid/trunk/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Connection_logmessages.properties
Fri Dec 5 09:33:27 2014
@@ -24,3 +24,4 @@
OPEN = CON-1001 : Open[ : Client ID : {0}][ : Protocol Version : {1}][ :
Client Version : {2}][ : Client Product : {3}]
CLOSE = CON-1002 : Close
IDLE_CLOSE = CON-1003 : Closed due to inactivity
+DROPPED_CONNECTION = CON-1004 : Connection dropped
\ No newline at end of file
Modified:
qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java?rev=1643208&r1=1643207&r2=1643208&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
(original)
+++
qpid/trunk/qpid/java/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerConnection.java
Fri Dec 5 09:33:27 2014
@@ -174,7 +174,7 @@ public class ServerConnection extends Co
{
if(_logClosed.compareAndSet(false, true))
{
- getEventLogger().message(this, ConnectionMessages.CLOSE());
+ getEventLogger().message(this, isConnectionLost() ?
ConnectionMessages.DROPPED_CONNECTION() : ConnectionMessages.CLOSE());
}
}
Modified:
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java?rev=1643208&r1=1643207&r2=1643208&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
(original)
+++
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
Fri Dec 5 09:33:27 2014
@@ -86,6 +86,7 @@ import org.apache.qpid.server.util.Conne
import org.apache.qpid.server.util.ServerScopedRuntimeException;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
import org.apache.qpid.transport.Sender;
+import org.apache.qpid.transport.SenderClosedException;
import org.apache.qpid.transport.SenderException;
import org.apache.qpid.transport.TransportException;
import org.apache.qpid.transport.network.NetworkConnection;
@@ -331,6 +332,16 @@ public class AMQProtocolEngine implement
_logger.error("Unexpected protocol version", e);
closeProtocolSession();
}
+ catch (SenderClosedException e)
+ {
+ _logger.debug("Sender was closed abruptly, closing
network.", e);
+ closeProtocolSession();
+ }
+ catch (SenderException e)
+ {
+ _logger.info("Unexpected exception on send, closing
network.", e);
+ closeProtocolSession();
+ }
catch (TransportException e)
{
_logger.error("Unexpected transport exception", e);
@@ -766,7 +777,7 @@ public class AMQProtocolEngine implement
}
}
- public void closeSession()
+ public void closeSession(final boolean connectionDropped)
{
if(runningAsSubject())
@@ -782,34 +793,9 @@ public class AMQProtocolEngine implement
finally
{
_receivedLock.unlock();
+ finishClose(connectionDropped);
}
- if (!_closed)
- {
- if (_virtualHost != null)
- {
-
_virtualHost.getConnectionRegistry().deregisterConnection(this);
- }
-
- try
- {
- closeAllChannels();
- }
- finally
- {
- for (Action<? super AMQProtocolEngine> task :
_taskList)
- {
- task.performAction(this);
- }
-
- synchronized (this)
- {
- _closed = true;
- notifyAll();
- }
- getEventLogger().message(_logSubject,
ConnectionMessages.CLOSE());
- }
- }
}
else
{
@@ -823,7 +809,7 @@ public class AMQProtocolEngine implement
@Override
public Object run()
{
- closeSession();
+ closeSession(connectionDropped);
return null;
}
});
@@ -831,6 +817,41 @@ public class AMQProtocolEngine implement
}
}
+ private void finishClose(boolean connectionDropped)
+ {
+ if (!_closed)
+ {
+
+ try
+ {
+ if (_virtualHost != null)
+ {
+
_virtualHost.getConnectionRegistry().deregisterConnection(this);
+ }
+ closeAllChannels();
+ }
+ finally
+ {
+ try
+ {
+ for (Action<? super AMQProtocolEngine> 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 implement
try
{
markChannelAwaitingCloseOk(channelId);
- closeSession();
+ closeSession(false);
}
finally
{
@@ -1126,7 +1147,7 @@ public class AMQProtocolEngine implement
{
try
{
- closeSession();
+ closeSession(true);
}
finally
{
@@ -1561,7 +1582,7 @@ public class AMQProtocolEngine implement
}
try
{
- closeSession();
+ closeSession(false);
}
catch (Exception e)
{
@@ -1588,7 +1609,7 @@ public class AMQProtocolEngine implement
try
{
- closeSession();
+ closeSession(false);
}
catch (Exception e)
{
Modified:
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java?rev=1643208&r1=1643207&r2=1643208&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
(original)
+++
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/InternalTestProtocolSession.java
Fri Dec 5 09:33:27 2014
@@ -231,7 +231,7 @@ public class InternalTestProtocolSession
//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);
}
Modified:
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java?rev=1643208&r1=1643207&r2=1643208&view=diff
==============================================================================
---
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java
(original)
+++
qpid/trunk/qpid/java/broker-plugins/amqp-0-8-protocol/src/test/java/org/apache/qpid/server/protocol/v0_8/MaxChannelsTest.java
Fri Dec 5 09:33:27 2014
@@ -62,7 +62,7 @@ public class MaxChannelsTest extends Qpi
try
{
_session.getVirtualHost().close();
- _session.closeSession();
+ _session.closeSession(false);
}
finally
{
Modified:
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java?rev=1643208&r1=1643207&r2=1643208&view=diff
==============================================================================
---
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
(original)
+++
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Connection.java
Fri Dec 5 09:33:27 2014
@@ -730,6 +730,11 @@ public class Connection extends Connecti
return connectionLost.get();
}
+ protected boolean isConnectionLost()
+ {
+ return connectionLost.get();
+ }
+
protected Collection<Session> getChannels()
{
return new ArrayList<>(channels.values());
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]