]> source.dussan.org Git - gitblit.git/commitdiff
GO NIO connector thread pool size setting
authorJames Moger <james.moger@gitblit.com>
Fri, 3 May 2013 23:15:05 +0000 (19:15 -0400)
committerJames Moger <james.moger@gitblit.com>
Fri, 3 May 2013 23:15:05 +0000 (19:15 -0400)
releases.moxie
src/main/distrib/data/gitblit.properties
src/main/java/com/gitblit/GitBlitServer.java

index ce717727a169949385cb120904037406c13b6322..7c0ec8f4896f99d29e5031fe66a1bc16c47f212e 100644 (file)
@@ -33,6 +33,7 @@ r17: {
         - Updated Japanese translation\r
         \r
     additions: \r
+        - Added GO http/https connector thread pool size setting
         - Added a server setting to force a particular translation/Locale for all sessions\r
         - Added smart Git Daemon serving.  If enabled, git:// access will be offered for any repository which permits anonymous access.  If the repository permits anonymous cloning, anonymous git:// clone will be permitted while anonmymous git:// pushes will be rejected.
         - Option to automatically tag branch tips on each push with an incremental revision number\r
@@ -81,6 +82,7 @@ r17: {
        - { name: 'git.daemonPort', defaultValue: 0 }\r
     - { name: 'git.defaultIncrementalPushTagPrefix', defaultValue: 'r' }\r
        - { name: 'web.forceDefaultLocale', defaultValue: ' ' }\r
+       - { name: 'server.nioThreadPoolSize', defaultValue: 50 }
 }\r
 \r
 #\r
index f47ad078efe6d0b0b066bcc031198ea399d3d22d..43185f57c677eb49acbef90756372982da32b167 100644 (file)
@@ -1250,6 +1250,13 @@ server.tempFolder = ${baseFolder}/temp
 # RESTART REQUIRED\r
 server.useNio = true\r
 \r
+# If using Jetty NIO connectors, specify the maximum number of concurrent
+# http/https worker threads to allow.
+#
+# SINCE 1.3.0
+# RESTART REQUIRED
+server.nioThreadPoolSize = 50
+
 # Context path for the GO application.  You might want to change the context\r
 # path if running Gitblit behind a proxy layer such as mod_proxy.\r
 #\r
index 79d3d6bd0b7b2686242d9912c22b9128781600f9..a41b8a2c0ab5bcef74e54151780e121480437beb 100644 (file)
@@ -203,7 +203,7 @@ public class GitBlitServer {
 \r
                // conditionally configure the http connector\r
                if (params.port > 0) {\r
-                       Connector httpConnector = createConnector(params.useNIO, params.port);\r
+                       Connector httpConnector = createConnector(params.useNIO, settings.getInteger(Keys.server.nioThreadPoolSize, 50), params.port);
                        String bindInterface = settings.getString(Keys.server.httpBindInterface, null);\r
                        if (!StringUtils.isEmpty(bindInterface)) {\r
                                logger.warn(MessageFormat.format("Binding connector on port {0,number,0} to {1}",\r
@@ -262,7 +262,7 @@ public class GitBlitServer {
 \r
                        if (serverKeyStore.exists()) {                  \r
                                Connector secureConnector = createSSLConnector(params.alias, serverKeyStore, serverTrustStore, params.storePassword,\r
-                                               caRevocationList, params.useNIO, params.securePort, params.requireClientCertificates);\r
+                                               caRevocationList, params.useNIO, settings.getInteger(Keys.server.nioThreadPoolSize, 50), params.securePort, params.requireClientCertificates);
                                String bindInterface = settings.getString(Keys.server.httpsBindInterface, null);\r
                                if (!StringUtils.isEmpty(bindInterface)) {\r
                                        logger.warn(MessageFormat.format(\r
@@ -410,15 +410,16 @@ public class GitBlitServer {
         * \r
         * @param useNIO\r
         * @param port\r
+        * @param maxThreads
         * @return an http connector\r
         */\r
-       private Connector createConnector(boolean useNIO, int port) {\r
+       private Connector createConnector(boolean useNIO, int port, int maxThreads) {
                Connector connector;\r
                if (useNIO) {\r
                        logger.info("Setting up NIO SelectChannelConnector on port " + port);\r
                        SelectChannelConnector nioconn = new SelectChannelConnector();\r
                        nioconn.setSoLingerTime(-1);\r
-                       nioconn.setThreadPool(new QueuedThreadPool(20));\r
+                       nioconn.setThreadPool(new QueuedThreadPool(maxThreads));
                        connector = nioconn;\r
                } else {\r
                        logger.info("Setting up SocketConnector on port " + port);\r
@@ -443,12 +444,13 @@ public class GitBlitServer {
         * @param storePassword\r
         * @param caRevocationList\r
         * @param useNIO\r
+        * @param nioThreadPoolSize
         * @param port\r
         * @param requireClientCertificates\r
         * @return an https connector\r
         */\r
        private Connector createSSLConnector(String certAlias, File keyStore, File clientTrustStore,\r
-                       String storePassword, File caRevocationList, boolean useNIO, int port, \r
+                       String storePassword, File caRevocationList, boolean useNIO,  int nioThreadPoolSize, int port,
                        boolean requireClientCertificates) {\r
                GitblitSslContextFactory factory = new GitblitSslContextFactory(certAlias,\r
                                keyStore, clientTrustStore, storePassword, caRevocationList);\r
@@ -462,7 +464,7 @@ public class GitBlitServer {
                        } else {\r
                                factory.setWantClientAuth(true);\r
                        }\r
-                       ssl.setThreadPool(new QueuedThreadPool(20));\r
+                       ssl.setThreadPool(new QueuedThreadPool(nioThreadPoolSize));
                        connector = ssl;\r
                } else {\r
                        logger.info("Setting up NIO SslSocketConnector on port " + port);\r