Author: mturk
Date: Tue Oct 7 01:42:30 2008
New Revision: 702387
URL: http://svn.apache.org/viewvc?rev=702387&view=rev
Log:
Add connection_acquire_timeout directive. It helps diferentiating the timeout
for obtaining cache endpoint and retry on the obtained worker connection
Modified:
tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
tomcat/connectors/trunk/jk/native/common/jk_util.c
tomcat/connectors/trunk/jk/native/common/jk_util.h
tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
tomcat/connectors/trunk/jk/xdocs/reference/workers.xml
Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c?rev=702387&r1=702386&r2=702387&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c Tue Oct 7
01:42:30 2008
@@ -2454,8 +2454,8 @@
}
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
- "setting connection pool size to %u with min %u",
- p->ep_cache_sz, p->ep_mincache_sz);
+ "setting connection pool size to %u with min %u and acquire
timeout %d",
+ p->ep_cache_sz, p->ep_mincache_sz, p->cache_acquire_timeout);
for (i = 0; i < p->ep_cache_sz; i++) {
p->ep_cache[i] = (ajp_endpoint_t *)calloc(1, sizeof(ajp_endpoint_t));
if (!p->ep_cache[i]) {
@@ -2557,8 +2557,9 @@
p->retry_interval =
jk_get_worker_retry_interval(props, p->name,
- JK_SLEEP_DEF);
-
+ JK_SLEEP_DEF);
+ p->cache_acquire_timeout = jk_get_worker_cache_acquire_timeout(props,
+ p->name, p->retries * p->retry_interval);
p->http_status_fail_num = jk_get_worker_fail_on_status(props, p->name,
&p->http_status_fail[0],
JK_MAX_HTTP_STATUS_FAILS);
@@ -2819,8 +2820,8 @@
int retry = 0;
*je = NULL;
- /* Obtain current time only if needed */
- while (retry < aw->retries) {
+ /* Loop until cache_acquire_timeout interval elapses */
+ while ((retry * JK_SLEEP_DEF) < aw->cache_acquire_timeout) {
JK_ENTER_CS(&aw->cs, rc);
if (rc) {
@@ -2853,8 +2854,8 @@
*je = &ae->endpoint;
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
- "acquired connection pool slot=%u",
- slot);
+ "acquired connection pool slot=%u after %d
retries",
+ slot, retry);
JK_TRACE_EXIT(l);
return JK_TRUE;
}
@@ -2864,8 +2865,8 @@
jk_log(l, JK_LOG_DEBUG,
"could not get free endpoint for worker %s"
" (retry %d, sleeping for %d ms)",
- aw->name, retry, aw->retry_interval);
- jk_sleep(aw->retry_interval);
+ aw->name, retry, JK_SLEEP_DEF);
+ jk_sleep(JK_SLEEP_DEF);
}
}
else {
Modified: tomcat/connectors/trunk/jk/native/common/jk_util.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_util.c?rev=702387&r1=702386&r2=702387&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_util.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_util.c Tue Oct 7 01:42:30 2008
@@ -52,6 +52,7 @@
#define CACHE_OF_WORKER_MIN ("connection_pool_minsize")
#define CACHE_TIMEOUT_DEPRECATED ("cache_timeout")
#define CACHE_TIMEOUT_OF_WORKER ("connection_pool_timeout")
+#define CACHE_ACQUIRE_OF_WORKER ("connection_acquire_timeout")
#define RECOVERY_OPTS_OF_WORKER ("recovery_options")
#define CONNECT_TIMEOUT_OF_WORKER ("connect_timeout")
#define PREPOST_TIMEOUT_OF_WORKER ("prepost_timeout")
@@ -173,6 +174,7 @@
CACHE_OF_WORKER_MIN,
CACHE_TIMEOUT_DEPRECATED,
CACHE_TIMEOUT_OF_WORKER,
+ CACHE_ACQUIRE_OF_WORKER,
RECOVERY_OPTS_OF_WORKER,
CONNECT_TIMEOUT_OF_WORKER,
PREPOST_TIMEOUT_OF_WORKER,
@@ -262,6 +264,7 @@
CACHE_OF_WORKER_MIN,
CACHE_TIMEOUT_DEPRECATED,
CACHE_TIMEOUT_OF_WORKER,
+ CACHE_ACQUIRE_OF_WORKER,
RECOVERY_OPTS_OF_WORKER,
CONNECT_TIMEOUT_OF_WORKER,
PREPOST_TIMEOUT_OF_WORKER,
@@ -931,6 +934,18 @@
return jk_map_get_int(m, buf, def);
}
+int jk_get_worker_cache_acquire_timeout(jk_map_t *m, const char *wname, int
def)
+{
+ char buf[1024];
+
+ if (!m || !wname) {
+ return -1;
+ }
+
+ MAKE_WORKER_PARAM(CACHE_ACQUIRE_OF_WORKER);
+ return jk_map_get_int(m, buf, def);
+}
+
int jk_get_worker_socket_timeout(jk_map_t *m, const char *wname, int def)
{
char buf[1024];
Modified: tomcat/connectors/trunk/jk/native/common/jk_util.h
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_util.h?rev=702387&r1=702386&r2=702387&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_util.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_util.h Tue Oct 7 01:42:30 2008
@@ -70,6 +70,8 @@
int jk_get_worker_cache_size_min(jk_map_t *m, const char *wname, int def);
+int jk_get_worker_cache_acquire_timeout(jk_map_t *m, const char *wname, int
def);
+
int jk_get_worker_socket_timeout(jk_map_t *m, const char *wname, int def);
int jk_get_worker_socket_buffer(jk_map_t *m, const char *wname, int def);
Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?rev=702387&r1=702386&r2=702387&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Tue Oct 7
01:42:30 2008
@@ -44,6 +44,10 @@
<subsection name="Native">
<changelog>
<update>
+ Added connection_acquire_timeout directive for setting the
+ absolute timeout the worker will wait for a free endpoint. (mturk)
+ </update>
+ <update>
Status: Allow showing only a single member for a load balancer. (rjung)
</update>
<update>
Modified: tomcat/connectors/trunk/jk/xdocs/reference/workers.xml
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/reference/workers.xml?rev=702387&r1=702386&r2=702387&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/reference/workers.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/reference/workers.xml Tue Oct 7 01:42:30
2008
@@ -356,6 +356,16 @@
</p>
</directive>
+<directive name="connection_acquire_timeout" default="retries*retry_interval"
required="false">
+Timeout the worker will wait for a free socket in cache before giving up.
+<p>
+Its default value is <b>retries * retry_interval</b>.
+</p>
+<p>
+This feature has been added in <b>jk 1.2.27</b>.
+</p>
+</directive>
+
<directive name="lbfactor" default="1" required="false">
Only used for a member worker of a load balancer.
<p>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]