Author: bsnyder
Date: Tue Jun 30 17:52:12 2009
New Revision: 789851
URL: http://svn.apache.org/viewvc?rev=789851&view=rev
Log:
Added a better exception and error message for exceeding the maximumConnections
- AMQ-1928
Added:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/ExceededMaximumConnectionsException.java
(with props)
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java
Added:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/ExceededMaximumConnectionsException.java
URL:
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/ExceededMaximumConnectionsException.java?rev=789851&view=auto
==============================================================================
---
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/ExceededMaximumConnectionsException.java
(added)
+++
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/ExceededMaximumConnectionsException.java
Tue Jun 30 17:52:12 2009
@@ -0,0 +1,22 @@
+package org.apache.activemq.transport.tcp;
+
+/**
+ * Thrown to indicate that the {...@link
TcpTransportServer#maximumConnections}
+ * property has been exceeded.
+ *
+ * @see {...@link TcpTransportServer#maximumConnections}
+ * @author bsnyder
+ *
+ */
+public class ExceededMaximumConnectionsException extends Exception {
+
+ /**
+ * Default serial version id for serialization
+ */
+ private static final long serialVersionUID = -1166885550766355524L;
+
+ public ExceededMaximumConnectionsException(String message) {
+ super(message);
+ }
+
+}
Propchange:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/ExceededMaximumConnectionsException.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/ExceededMaximumConnectionsException.java
------------------------------------------------------------------------------
svn:keywords = Id Revision
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java
URL:
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java?rev=789851&r1=789850&r2=789851&view=diff
==============================================================================
---
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java
(original)
+++
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/tcp/TcpTransportServer.java
Tue Jun 30 17:52:12 2009
@@ -394,34 +394,38 @@
protected final void handleSocket(Socket socket) {
try {
if (this.currentTransportCount >= this.maximumConnections) {
+ throw new ExceededMaximumConnectionsException("Exceeded the
maximum " +
+ "number of allowed client connections. See the
'maximumConnections' " +
+ "property on the TCP transport configuration URI in the
ActiveMQ " +
+ "configuration file (e.g., activemq.xml)");
- }else {
- HashMap<String, Object> options = new HashMap<String, Object>();
- options.put("maxInactivityDuration", Long
- .valueOf(maxInactivityDuration));
- options.put("maxInactivityDurationInitalDelay", Long
- .valueOf(maxInactivityDurationInitalDelay));
- options.put("minmumWireFormatVersion", Integer
- .valueOf(minmumWireFormatVersion));
- options.put("trace", Boolean.valueOf(trace));
- options.put("soTimeout", Integer.valueOf(soTimeout));
- options.put("socketBufferSize", Integer.valueOf(socketBufferSize));
- options.put("connectionTimeout",
Integer.valueOf(connectionTimeout));
- options.put("logWriterName", logWriterName);
- options
- .put("dynamicManagement", Boolean
- .valueOf(dynamicManagement));
- options.put("startLogging", Boolean.valueOf(startLogging));
-
- options.putAll(transportOptions);
- WireFormat format = wireFormatFactory.createWireFormat();
- Transport transport = createTransport(socket, format);
- if (transport instanceof ServiceSupport) {
- ((ServiceSupport) transport).addServiceListener(this);
- }
- Transport configuredTransport = transportFactory.serverConfigure(
- transport, format, options);
- getAcceptListener().onAccept(configuredTransport);
+ } else {
+ HashMap<String, Object> options = new HashMap<String,
Object>();
+ options.put("maxInactivityDuration",
Long.valueOf(maxInactivityDuration));
+ options.put("maxInactivityDurationInitalDelay",
+ Long.valueOf(maxInactivityDurationInitalDelay));
+ options.put("minmumWireFormatVersion",
+ Integer.valueOf(minmumWireFormatVersion));
+ options.put("trace", Boolean.valueOf(trace));
+ options.put("soTimeout", Integer.valueOf(soTimeout));
+ options.put("socketBufferSize",
Integer.valueOf(socketBufferSize));
+ options.put("connectionTimeout",
Integer.valueOf(connectionTimeout));
+ options.put("logWriterName", logWriterName);
+ options.put("dynamicManagement",
Boolean.valueOf(dynamicManagement));
+ options.put("startLogging", Boolean.valueOf(startLogging));
+ options.putAll(transportOptions);
+
+ WireFormat format = wireFormatFactory.createWireFormat();
+ Transport transport = createTransport(socket, format);
+
+ if (transport instanceof ServiceSupport) {
+ ((ServiceSupport) transport).addServiceListener(this);
+ }
+
+ Transport configuredTransport =
+ transportFactory.serverConfigure( transport, format,
options);
+
+ getAcceptListener().onAccept(configuredTransport);
}
} catch (SocketTimeoutException ste) {
// expect this to happen
@@ -482,4 +486,4 @@
public void stopped(Service service) {
this.currentTransportCount--;
}
-}
\ No newline at end of file
+}