summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/main
diff options
context:
space:
mode:
authorKeith Wall <kwall@apache.org>2012-05-25 16:23:28 +0000
committerKeith Wall <kwall@apache.org>2012-05-25 16:23:28 +0000
commitc2e4ca664d87709905f6ac5535ff8d06a9ead3b1 (patch)
tree74c1f4308a8d23d6f1ce698c65ea4851da4a5812 /qpid/java/broker/src/main
parent8f460e49c0c32fd773dd3d3fb8b73ea563527b5a (diff)
downloadqpid-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')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/connection/ConnectionRegistry.java12
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/connection/IConnectionRegistry.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQProtocolEngine.java12
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();
+ }
}