Author: mturk Date: Thu Oct 2 01:33:24 2008 New Revision: 701032 URL: http://svn.apache.org/viewvc?rev=701032&view=rev Log: Remove AUTOMATIC_POOL_SIZE. This would only make things more complicated not knowing the default size in advance. Further more it detects XP as PWS and doesn't take into account multiple worker processes for IIS 6+
Modified: tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c Modified: tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c?rev=701032&r1=701031&r2=701032&view=diff ============================================================================== --- tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c (original) +++ tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c Thu Oct 2 01:33:24 2008 @@ -57,12 +57,6 @@ #define HAS_CHUNKING "-NO_CHUNKING" #endif -#ifdef AUTOMATIC_POOL_SIZE -#define HAS_AUTO_POOL "-AUTO_POOL" -#else -#define HAS_AUTO_POOL "-NO_AUTO_POOL" -#endif - #ifdef CONFIGURABLE_ERROR_PAGE #define HAS_ERROR_PAGE "-ERROR_PAGE" #else @@ -73,13 +67,11 @@ #define SHM_DEF_NAME "JKISAPISHMEM" #define DEFAULT_WORKER_NAME ("ajp13") -#ifndef AUTOMATIC_POOL_SIZE /* * This is default value found inside httpd.conf * for MaxClients */ #define DEFAULT_WORKER_THREADS 250 -#endif /* * We use special headers to pass values from the filter to the @@ -328,12 +320,6 @@ static int read_registry_init_data(void); -#ifdef AUTOMATIC_POOL_SIZE -static int read_registry_pool_thread_limit(size_t *pool_threads); - -static int determine_iis_thread_count(); - -#endif static int get_config_parameter(LPVOID src, const char *tag, char *val, DWORD sz); @@ -2079,113 +2065,10 @@ return 0; } -#ifdef AUTOMATIC_POOL_SIZE -static int read_registry_pool_thread_limit(size_t *pool_threads) -{ -#define IIS_PARAMETERS_LOCATION ("SYSTEM\\CurrentControlSet\\Services\\InetInfo\\Parameters") -#define IIS_MAX_POOL_THREADS_KEY ("PoolThreadLimit") - - HKEY hkey; - int rc = JK_FALSE; - DWORD regPtl; - - JK_TRACE_ENTER(logger); - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, "Checking registry for PoolThreadLimit override." ); - } - rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, - IIS_PARAMETERS_LOCATION, (DWORD) 0, KEY_READ, &hkey); - - if (ERROR_SUCCESS != rc) { - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, "Unable to open registry for reading." ); - } - JK_TRACE_EXIT(logger); - return JK_FALSE; - } - - if (get_registry_config_number(hkey, IIS_MAX_POOL_THREADS_KEY, ®Ptl )) { - (*pool_threads) = (unsigned)regPtl; - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, "PoolThreadLimit override of %d located in registry.", - (*pool_threads) ); - } - rc = JK_TRUE; - } else { - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, "PoolThreadLimit setting not found in registry." ); - } - rc = JK_FALSE; - } - - RegCloseKey( hkey ); - - JK_TRACE_EXIT(logger); - return rc; -} - -static int determine_iis_thread_count() -{ -#define CACHE_SIZE_WORKSTATION 10 - OSVERSIONINFOEX verinfo; - size_t cache_size; - - JK_TRACE_ENTER(logger); - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, "Attempting to set connection_pool_size to suit current OS settings." ); - } - - /* Check the type of OS we're using */ - ZeroMemory(&verinfo, sizeof(OSVERSIONINFOEX)); - verinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); - if (GetVersionEx((LPOSVERSIONINFO)(&verinfo))) { - /* For Server OSes, determine PoolThreadLimit */ - if (verinfo.wProductType == VER_NT_DOMAIN_CONTROLLER || verinfo.wProductType == VER_NT_SERVER) { - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, "Current OS detected as Server OS - will try to detect PoolThreadLimit" ); - } - - /* Check in the registry first for an override */ - if (!read_registry_pool_thread_limit( &cache_size )) { - /* Otherwise, Calculate default cache size as 2*MB RAM, capped at 256 */ - MEMORYSTATUS memstat; - GlobalMemoryStatus(&memstat); - cache_size = 2 * memstat.dwTotalPhys / (1024*1024); - if (cache_size > 256 ) - cache_size = 256; - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, "PoolThreadLimit not in registry - " - "calculating default connection_pool_size of MIN(2*MB,256) as %u", - cache_size ); - } - } - } else { - /* We have a Workstation/Pro version running PWS */ - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, "Current OS is a Workstation/Pro - " - "using PWS connection_pool_size of %d", - CACHE_SIZE_WORKSTATION ); - } - cache_size = CACHE_SIZE_WORKSTATION; - } - } else { - /* Assume Workstation - something is probably wrong here */ - jk_log(logger, JK_LOG_WARNING, "Unable to detect current OS - assuming Workstation/Pro - " - "using PWS connection_pool_size of %d", CACHE_SIZE_WORKSTATION ); - cache_size = CACHE_SIZE_WORKSTATION; - } - JK_TRACE_EXIT(logger); - return (int)cache_size; -} -#endif - static int init_jk(char *serverName) { char shm_name[MAX_PATH]; int rc = JK_FALSE; -#ifdef AUTOMATIC_POOL_SIZE - int def_cache_size; -#endif if (!jk_open_file_logger(&logger, log_file, log_level)) { logger = NULL; @@ -2205,18 +2088,7 @@ } } -#ifdef AUTOMATIC_POOL_SIZE - def_cache_size = determine_iis_thread_count(); - if (JK_IS_DEBUG_LEVEL(logger)) { - jk_log(logger, JK_LOG_DEBUG, "Setting default connection_pool_size to %d", - def_cache_size ); - } - jk_set_worker_def_cache_size(def_cache_size); - jk_log(logger, JK_LOG_INFO, "Using a default of %d connections per pool", - def_cache_size); -#else jk_set_worker_def_cache_size(DEFAULT_WORKER_THREADS); -#endif /* Logging the initialization type: registry or properties file in virtual dir */ @@ -2256,6 +2128,8 @@ jk_log(logger, JK_LOG_DEBUG, "Using query header %s.", QUERY_HEADER_NAME); jk_log(logger, JK_LOG_DEBUG, "Using worker header %s.", WORKER_HEADER_NAME); jk_log(logger, JK_LOG_DEBUG, "Using translate header %s.", TOMCAT_TRANSLATE_HEADER_NAME); + jk_log(logger, JK_LOG_DEBUG, "Using a default of %d connections per pool.", + DEFAULT_WORKER_THREADS); } if (rewrite_rule_file[0] && jk_map_alloc(&rewrite_map)) { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]