* Console: Put all socket handlers in same thread pool,

set min/max threads and idle timeout
This commit is contained in:
zzz
2011-01-19 20:16:18 +00:00
parent 653abbcc7e
commit da2f4cb915

View File

@ -24,6 +24,7 @@ import org.mortbay.http.DigestAuthenticator;
import org.mortbay.http.HashUserRealm; import org.mortbay.http.HashUserRealm;
import org.mortbay.http.NCSARequestLog; import org.mortbay.http.NCSARequestLog;
import org.mortbay.http.SecurityConstraint; import org.mortbay.http.SecurityConstraint;
import org.mortbay.http.SocketListener;
import org.mortbay.http.SslListener; import org.mortbay.http.SslListener;
import org.mortbay.http.handler.SecurityHandler; import org.mortbay.http.handler.SecurityHandler;
import org.mortbay.jetty.Server; import org.mortbay.jetty.Server;
@ -184,11 +185,21 @@ public class RouterConsoleRunner {
while (tok.hasMoreTokens()) { while (tok.hasMoreTokens()) {
String host = tok.nextToken().trim(); String host = tok.nextToken().trim();
try { try {
if (host.indexOf(":") >= 0) // IPV6 - requires patched Jetty 5 //if (host.indexOf(":") >= 0) // IPV6 - requires patched Jetty 5
_server.addListener('[' + host + "]:" + _listenPort); // _server.addListener('[' + host + "]:" + _listenPort);
else //else
_server.addListener(host + ':' + _listenPort); // _server.addListener(host + ':' + _listenPort);
Integer lport = Integer.parseInt(_listenPort);
InetAddrPort iap = new InetAddrPort(host, lport);
SocketListener lsnr = new SocketListener(iap);
lsnr.setMinThreads(1); // default 2
lsnr.setMaxThreads(24); // default 256
lsnr.setMaxIdleTimeMs(90*1000); // default 10 sec
lsnr.setName("ConsoleSocket"); // all with same name will use the same thread pool
_server.addListener(lsnr);
boundAddresses++; boundAddresses++;
} catch (NumberFormatException nfe) {
System.err.println("Unable to bind routerconsole to " + host + " port " + _listenPort + ' ' + nfe);
} catch (IOException ioe) { // this doesn't seem to work, exceptions don't happen until start() below } catch (IOException ioe) { // this doesn't seem to work, exceptions don't happen until start() below
System.err.println("Unable to bind routerconsole to " + host + " port " + _listenPort + ' ' + ioe); System.err.println("Unable to bind routerconsole to " + host + " port " + _listenPort + ' ' + ioe);
} }
@ -220,6 +231,10 @@ public class RouterConsoleRunner {
ssll.setPassword(ctx.getProperty(PROP_KEYSTORE_PASSWORD, DEFAULT_KEYSTORE_PASSWORD)); ssll.setPassword(ctx.getProperty(PROP_KEYSTORE_PASSWORD, DEFAULT_KEYSTORE_PASSWORD));
// the X.509 cert password (if not present, verifyKeyStore() returned false) // the X.509 cert password (if not present, verifyKeyStore() returned false)
ssll.setKeyPassword(ctx.getProperty(PROP_KEY_PASSWORD, "thisWontWork")); ssll.setKeyPassword(ctx.getProperty(PROP_KEY_PASSWORD, "thisWontWork"));
ssll.setMinThreads(1); // default 2
ssll.setMaxThreads(24); // default 256
ssll.setMaxIdleTimeMs(90*1000); // default 10 sec
ssll.setName("ConsoleSocket"); // all with same name will use the same thread pool
_server.addListener(ssll); _server.addListener(ssll);
boundAddresses++; boundAddresses++;
} catch (Exception e) { // probably no exceptions at this point } catch (Exception e) { // probably no exceptions at this point