Author: rjung
Date: Tue Mar 10 00:15:48 2009
New Revision: 751917
URL: http://svn.apache.org/viewvc?rev=751917&view=rev
Log:
Use new attribute error_escalation_time to decide,
whether an unspecified local error should be
escalated to a global error. Decision is based on
how long we already have a local error.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c?rev=751917&r1=751916&r2=751917&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Tue Mar 10 00:15:48
2009
@@ -1341,15 +1341,17 @@
* Service failed !!!
* Time for fault tolerance (if possible)...
*/
+ time_t now = time(NULL);
rec->s->errors++;
- if (rec->s->busy) {
- rec->s->state = JK_LB_STATE_OK;
- }
- else {
+ if (rec->s->busy == 0 ||
+ (rec->s->error_time > 0 &&
+ (int)difftime(now, rec->s->error_time) >=
p->worker->error_escalation_time)) {
rec->s->state = JK_LB_STATE_ERROR;
}
p->states[rec->i] = JK_LB_STATE_ERROR;
- rec->s->error_time = time(NULL);
+ if (rec->s->error_time == 0) {
+ rec->s->error_time = now;
+ }
rc = JK_FALSE;
}
if (p->worker->lblock == JK_LB_LOCK_PESSIMISTIC)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]