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:38:55 UTC

svn commit: r609319 - in /tomcat/connectors/trunk/jk/native: apache-1.3/mod_jk.c apache-2.0/mod_jk.c iis/jk_isapi_plugin.c netscape/jk_nsapi_plugin.c

Author: rjung
Date: Sun Jan  6 06:38:54 2008
New Revision: 609319

URL: http://svn.apache.org/viewvc?rev=609319&view=rev
Log:
Move shm open to prepare automatic size
detection (wee need to read the worker
map before opening shm).
wc_open() needs to stay behind shm, because
it already uses the shm.

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

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=609319&r1=609318&r2=609319&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:38:54 2008
@@ -2640,6 +2640,20 @@
         }
     }
 
+    if ((jk_worker_file != NULL) &&
+        !jk_map_read_properties(jk_worker_properties, jk_worker_file, NULL,
+                                JK_MAP_HANDLE_DUPLICATES, conf->log)) {
+        jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
+                      "Error in reading worker properties from '%s'",
+                      jk_worker_file);
+    }
+
+    if (jk_map_resolve_references(jk_worker_properties, "worker.",
+                                  1, 1, conf->log) == JK_FALSE) {
+        jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
+                      "Error in resolving configuration references");
+    }
+
 #if !defined(WIN32) && !defined(NETWARE)
     if (!jk_shm_file) {
         jk_shm_file = ap_server_root_relative(p, JK_SHM_DEF_FILE);
@@ -2663,20 +2677,6 @@
     /* SREVILAK -- register cleanup handler to clear resources on restart,
      * to make sure log file gets closed in the parent process  */
     ap_register_cleanup(p, s, jk_server_cleanup, ap_null_cleanup);
-
-    if ((jk_worker_file != NULL) &&
-        !jk_map_read_properties(jk_worker_properties, jk_worker_file, NULL,
-                                JK_MAP_HANDLE_DUPLICATES, conf->log)) {
-        jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
-                      "Error in reading worker properties from '%s'",
-                      jk_worker_file);
-    }
-
-    if (jk_map_resolve_references(jk_worker_properties, "worker.",
-                                  1, 1, conf->log) == JK_FALSE) {
-        jk_error_exit(APLOG_MARK, APLOG_EMERG | APLOG_NOERRNO, s, p,
-                      "Error in resolving configuration references");
-    }
 
     /* we add the URI->WORKER MAP since workers using AJP14 will feed it */
     worker_env.uri_to_worker = conf->uw_map;

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=609319&r1=609318&r2=609319&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:38:54 2008
@@ -2747,24 +2747,6 @@
         jk_map_alloc(&jk_worker_properties);
     jk_map_put(jk_worker_properties, "ServerRoot", ap_server_root, NULL);
 
-#if !defined(WIN32) && !defined(NETWARE)
-    if (!jk_shm_file) {
-        jk_shm_file = ap_server_root_relative(pconf, JK_SHM_DEF_FILE);
-        if (jk_shm_file)
-            ap_log_error(APLOG_MARK, APLOG_WARNING, 0, s,
-                         "No JkShmFile defined in httpd.conf. "
-                         "Using default %s", jk_shm_file);
-    }
-#endif
-    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);
-    }
-    else
-        jk_log(conf->log, JK_LOG_ERROR,
-               "Initializing shm:%s errno=%d. Load balancing workers will not function properly.",
-               jk_shm_name(), rc);
-
     /* Set default connection cache size for multi-threaded MPMs */
     if (ap_mpm_query(AP_MPMQ_IS_THREADED, &is_threaded) == APR_SUCCESS &&
         is_threaded != AP_MPMQ_NOT_SUPPORTED) {
@@ -2792,6 +2774,24 @@
                      "Error in resolving configuration references");
         return JK_FALSE;
     }
+
+#if !defined(WIN32) && !defined(NETWARE)
+    if (!jk_shm_file) {
+        jk_shm_file = ap_server_root_relative(pconf, JK_SHM_DEF_FILE);
+        if (jk_shm_file)
+            ap_log_error(APLOG_MARK, APLOG_WARNING, 0, s,
+                         "No JkShmFile defined in httpd.conf. "
+                         "Using default %s", jk_shm_file);
+    }
+#endif
+    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);
+    }
+    else
+        jk_log(conf->log, JK_LOG_ERROR,
+               "Initializing shm:%s errno=%d. Load balancing workers will not function properly.",
+               jk_shm_name(), rc);
 
     /* we add the URI->WORKER MAP since workers using AJP14
        will feed it */

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=609319&r1=609318&r2=609319&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:38:54 2008
@@ -1656,7 +1656,6 @@
 {
     char shm_name[MAX_PATH];
     int rc = JK_FALSE;
-    int rv;
 
     if (!jk_open_file_logger(&logger, log_file, log_level)) {
         logger = NULL;
@@ -1672,14 +1671,6 @@
                 shm_name[i] = '_';
         }
     }
-    /*
-     * Create named shared memory for each server
-     */
-    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.",
-               jk_shm_name(), rv);
-    }
 
     jk_set_worker_def_cache_size(DEFAULT_WORKER_THREADS);
 
@@ -1761,11 +1752,20 @@
         if (jk_map_alloc(&workers_map)) {
             if (jk_map_read_properties(workers_map, worker_file, NULL,
                                        JK_MAP_HANDLE_DUPLICATES, logger)) {
+                int rv;
+
                 /* we add the URI->WORKER MAP since workers using AJP14 will feed it */
 
                 if (jk_map_resolve_references(workers_map, "worker.", 1, 1, logger) == JK_FALSE) {
                     jk_log(logger, JK_LOG_ERROR, "Error in resolving configuration references");
                 }
+                /*
+                 * Create named shared memory for each server
+                 */
+                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.",
+                           jk_shm_name(), rv);
 
                 worker_env.uri_to_worker = uw_map;
                 worker_env.server_name = serverName;
@@ -1774,10 +1774,9 @@
                     rc = JK_TRUE;
                 }
             }
-            else {
+            else
                 jk_log(logger, JK_LOG_EMERG,
                        "Unable to read worker file %s.", worker_file);
-            }
             if (rc != JK_TRUE) {
                 jk_map_free(&workers_map);
                 workers_map = NULL;

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=609319&r1=609318&r2=609319&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:38:54 2008
@@ -233,7 +233,6 @@
     char *reject_unsafe = pblock_findval(REJECT_UNSAFE_TAG, pb);
 
     int rc = REQ_ABORTED;
-    int rv;
 
     if (!worker_prp_file) {
         worker_prp_file = JK_WORKER_FILE_DEF;
@@ -269,14 +268,10 @@
         logger = NULL;
     }
     
-    if ((rv = jk_shm_open(shm_file, JK_SHM_DEF_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);
-    }
     if (jk_map_alloc(&init_map)) {
         if (jk_map_read_properties(init_map, worker_prp_file, NULL,
                                    JK_MAP_HANDLE_DUPLICATES, logger)) {
+            int rv;
             int sleep_cnt;
             SYS_THREAD s;
 
@@ -286,6 +281,11 @@
 
             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_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);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org