You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2008/01/06 15:50:34 UTC
svn commit: r609322 - in /tomcat/connectors/trunk/jk:
native/apache-1.3/mod_jk.c native/apache-2.0/mod_jk.c
native/iis/jk_isapi_plugin.c native/netscape/jk_nsapi_plugin.c
xdocs/miscellaneous/changelog.xml xdocs/reference/apache.xml
xdocs/reference/iis.xml
Author: rjung
Date: Sun Jan 6 06:50:20 2008
New Revision: 609322
URL: http://svn.apache.org/viewvc?rev=609322&view=rev
Log:
Automatically determine shm size for all web servers.
Modified:
tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c
tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c
tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c
tomcat/connectors/trunk/jk/native/netscape/jk_nsapi_plugin.c
tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
tomcat/connectors/trunk/jk/xdocs/reference/apache.xml
tomcat/connectors/trunk/jk/xdocs/reference/iis.xml
Modified: tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c?rev=609322&r1=609321&r2=609322&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c (original)
+++ tomcat/connectors/trunk/jk/native/apache-1.3/mod_jk.c Sun Jan 6 06:50:20 2008
@@ -220,7 +220,7 @@
static table *jk_log_fds = NULL;
static jk_worker_env_t worker_env;
static char *jk_shm_file = NULL;
-static size_t jk_shm_size = JK_SHM_DEF_SIZE;
+static size_t jk_shm_size = 0;
/*
* Worker stuff
*/
@@ -2669,6 +2669,14 @@
}
#endif
+ if (jk_shm_size == 0)
+ jk_shm_size = jk_shm_calculate_size(jk_worker_properties, conf->log);
+ else {
+ jk_log(conf->log, JK_LOG_INFO,
+ "The optimal shared memory size can now be determined automatically.");
+ jk_log(conf->log, JK_LOG_INFO,
+ "You can remove the JkShmSize directive if you want to use the optimal size.");
+ }
if ((rc = jk_shm_open(jk_shm_file, jk_shm_size, conf->log)) != 0)
jk_log(conf->log, JK_LOG_ERROR,
"Initializing shm:%s errno=%d. Load balancing workers will not function properly.",
Modified: tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c?rev=609322&r1=609321&r2=609322&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c (original)
+++ tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c Sun Jan 6 06:50:20 2008
@@ -231,7 +231,7 @@
static jk_worker_env_t worker_env;
static apr_global_mutex_t *jk_log_lock = NULL;
static char *jk_shm_file = NULL;
-static size_t jk_shm_size = JK_SHM_DEF_SIZE;
+static size_t jk_shm_size = 0;
/*
* Worker stuff
*/
@@ -2784,6 +2784,14 @@
"Using default %s", jk_shm_file);
}
#endif
+ if (jk_shm_size == 0)
+ jk_shm_size = jk_shm_calculate_size(jk_worker_properties, conf->log);
+ else {
+ jk_log(conf->log, JK_LOG_INFO,
+ "The optimal shared memory size can now be determined automatically.");
+ jk_log(conf->log, JK_LOG_INFO,
+ "You can remove the JkShmSize directive if you want to use the optimal size.");
+ }
if ((rc = jk_shm_open(jk_shm_file, jk_shm_size, conf->log)) == 0) {
apr_pool_cleanup_register(pconf, conf->log, jk_cleanup_shmem,
jk_cleanup_shmem);
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=609322&r1=609321&r2=609322&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c (original)
+++ tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c Sun Jan 6 06:50:20 2008
@@ -193,7 +193,7 @@
static char worker_mount_file[MAX_PATH * 2] = {0};
static int worker_mount_reload = JK_URIMAP_DEF_RELOAD;
static char rewrite_rule_file[MAX_PATH * 2] = {0};
-static int shm_config_size = JK_SHM_DEF_SIZE;
+static size_t shm_config_size = 0;
static int strip_session = 0;
static DWORD auth_notification_flags = 0;
static int use_auth_notification_flags = 1;
@@ -1762,6 +1762,14 @@
/*
* Create named shared memory for each server
*/
+ if (shm_config_size == 0)
+ shm_config_size = jk_shm_calculate_size(workers_map, logger);
+ else {
+ jk_log(logger, JK_LOG_INFO,
+ "The optimal shared memory size can now be determined automatically.");
+ jk_log(logger, JK_LOG_INFO,
+ "You can remove the JkShmSize directive if you want to use the optimal size.");
+ }
if ((rv = jk_shm_open(shm_name, shm_config_size, logger)) != 0)
jk_log(logger, JK_LOG_ERROR,
"Initializing shm:%s errno=%d. Load balancing workers will not function properly.",
@@ -1867,7 +1875,7 @@
ok = JK_FALSE;
}
}
- shm_config_size = get_config_int(src, SHM_SIZE_TAG, JK_SHM_DEF_SIZE);
+ shm_config_size = (size_t) get_config_int(src, SHM_SIZE_TAG, 0);
worker_mount_reload = get_config_int(src, WORKER_MOUNT_RELOAD_TAG, JK_URIMAP_DEF_RELOAD);
strip_session = get_config_bool(src, STRIP_SESSION_TAG, JK_FALSE);
use_auth_notification_flags = get_config_int(src, AUTH_COMPLETE_TAG, 1);
Modified: tomcat/connectors/trunk/jk/native/netscape/jk_nsapi_plugin.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/netscape/jk_nsapi_plugin.c?rev=609322&r1=609321&r2=609322&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/netscape/jk_nsapi_plugin.c (original)
+++ tomcat/connectors/trunk/jk/native/netscape/jk_nsapi_plugin.c Sun Jan 6 06:50:20 2008
@@ -59,6 +59,7 @@
static jk_worker_env_t worker_env;
static jk_map_t *init_map = NULL;
static jk_uri_worker_map_t *uw_map = NULL;
+static size_t jk_shm_size = 0;
#ifdef NETWARE
int (*PR_IsSocketSecure) (SYS_NETFD * csd); /* pointer to PR_IsSocketSecure function */
@@ -282,11 +283,13 @@
if (reject_unsafe) {
jk_map_add(init_map, "worker." REJECT_UNSAFE_TAG, reject_unsafe);
}
- if ((rv = jk_shm_open(shm_file, JK_SHM_DEF_SIZE, logger)) != 0) {
+
+ jk_shm_size = jk_shm_calculate_size(init_map, logger);
+ if ((rv = jk_shm_open(shm_file, jk_shm_size, logger)) != 0)
jk_log(logger, JK_LOG_ERROR,
"Initializing shm:%s errno=%d. Load balancing workers will not function properly.",
jk_shm_name(), rv);
- }
+
s = systhread_start(SYSTHREAD_DEFAULT_PRIORITY,
0, init_workers_on_other_threads, init_map);
for (sleep_cnt = 0; sleep_cnt < 60; sleep_cnt++) {
Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?rev=609322&r1=609321&r2=609322&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Sun Jan 6 06:50:20 2008
@@ -44,6 +44,9 @@
<subsection name="Native">
<changelog>
<update>
+ SHM: Automatically determine shm size for all web servers. (rjung)
+ </update>
+ <update>
SHM: Make open/attach logging consistent for all web servers. (rjung)
</update>
<update>
Modified: tomcat/connectors/trunk/jk/xdocs/reference/apache.xml
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/reference/apache.xml?rev=609322&r1=609321&r2=609322&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/reference/apache.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/reference/apache.xml Sun Jan 6 06:50:20 2008
@@ -108,6 +108,9 @@
<br/>
The default value depends on the platform. It is usually less than 64KB.
</p></attribute>
+<p>Starting with version 1.2.27 the size of the shared memory is determined
+automatically, even for large numbers of workers. This attribute is not
+needed any longer.</p>
<attribute name="JkMountFile" required="false"><p>
File containing multiple mappings from a context to a Tomcat worker.
It is usually called uriworkermap.properties.
Modified: tomcat/connectors/trunk/jk/xdocs/reference/iis.xml
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/reference/iis.xml?rev=609322&r1=609321&r2=609322&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/reference/iis.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/reference/iis.xml Sun Jan 6 06:50:20 2008
@@ -98,6 +98,9 @@
(Set this value only if you have <b>more</b> then <b>64</b> workers)
</p>
<p>This directive has been added in version 1.2.20</p>
+<p>Starting with version 1.2.27 the size of the shared memory is determined
+automatically, even for large numbers of workers. This attribute is not
+needed any longer.</p>
</attribute>
<attribute name="worker_mount_reload" required="false"><p>
A DWORD value specifying the time in seconds upon which the
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org