diff options
| author | Keith Wall <kwall@apache.org> | 2012-05-25 16:23:28 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2012-05-25 16:23:28 +0000 |
| commit | c2e4ca664d87709905f6ac5535ff8d06a9ead3b1 (patch) | |
| tree | 74c1f4308a8d23d6f1ce698c65ea4851da4a5812 /qpid/java/broker/src/main | |
| parent | 8f460e49c0c32fd773dd3d3fb8b73ea563527b5a (diff) | |
| download | qpid-python-c2e4ca664d87709905f6ac5535ff8d06a9ead3b1.tar.gz | |
QPID-4006: [Java Broker] BDB HA.
Close BDB environment in the event of unexpected exceptions during commit/begin tran.
Install BDB exception listener to log exception arising from its own threads.
Default BDB parameters for sensible defaults for standard Qpid use-cases.
Ensure that closeInternal always closes the environment.
Added MBean operation descriptions.
Work of Robbie Gemmell <robbie@apache.org> and myself.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1342712 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src/main')
3 files changed, 12 insertions, 14 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java index 09dc5a2473..a539743081 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java @@ -22,11 +22,9 @@ package org.apache.qpid.server.connection; import org.apache.log4j.Logger; -import org.apache.qpid.AMQException; import org.apache.qpid.common.Closeable; import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.server.protocol.AMQConnectionModel; -import org.apache.qpid.transport.TransportException; import java.util.ArrayList; import java.util.Collection; @@ -65,19 +63,15 @@ public class ConnectionRegistry implements IConnectionRegistry, Closeable } } - public void closeConnection(AMQConnectionModel connection, AMQConstant cause, String message) + private void closeConnection(AMQConnectionModel connection, AMQConstant cause, String message) { try { connection.close(cause, message); } - catch (TransportException e) + catch (Exception e) { - _logger.warn("Error closing connection:" + e.getMessage()); - } - catch (AMQException e) - { - _logger.warn("Error closing connection:" + e.getMessage()); + _logger.warn("Exception closing connection", e); } } diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java index 76d97e3ad1..82adcf4dde 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java @@ -37,8 +37,6 @@ public interface IConnectionRegistry public void close(String replyText) throws AMQException; - public void closeConnection(AMQConnectionModel connection, AMQConstant cause, String message); - public List<AMQConnectionModel> getConnections(); public void registerConnection(AMQConnectionModel connnection); diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java index c0a8f633fd..e12c6fa271 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java @@ -875,12 +875,18 @@ public class AMQProtocolEngine implements ServerProtocolEngine, Managable, AMQPr markChannelAwaitingCloseOk(channelId); closeSession(); - _stateManager.changeState(AMQState.CONNECTION_CLOSING); - writeFrame(e.getCloseFrame(channelId)); } finally { - closeProtocolSession(); + try + { + _stateManager.changeState(AMQState.CONNECTION_CLOSING); + writeFrame(e.getCloseFrame(channelId)); + } + finally + { + closeProtocolSession(); + } } |
