Author: rjung
Date: Sun Jun 24 07:56:17 2007
New Revision: 550241
URL: http://svn.apache.org/viewvc?view=rev&rev=550241
Log:
Renamed runtime states. No new states have been added to code.
All states have a major state (OK or ERR) and a substate.
Changed the name N/A to OK/IDLE.
Also added docs about the meaning of the states to the status worker
page in the reference guide.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h
tomcat/connectors/trunk/jk/native/common/jk_status.c
tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
tomcat/connectors/trunk/jk/xdocs/reference/status.xml
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?view=diff&rev=550241&r1=550240&r2=550241
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Sun Jun 24 07:56:17
2007
@@ -60,7 +60,7 @@
};
static const char *lb_state_type[] = {
- JK_LB_STATE_TEXT_NA,
+ JK_LB_STATE_TEXT_IDLE,
JK_LB_STATE_TEXT_OK,
JK_LB_STATE_TEXT_RECOVER,
JK_LB_STATE_TEXT_BUSY,
@@ -190,8 +190,8 @@
{
if (!v)
return JK_LB_STATE_DEF;
- else if (*v == 'n' || *v == 'N' || *v == '0')
- return JK_LB_STATE_NA;
+ else if (*v == 'i' || *v == 'I' || *v == 'n' || *v == 'N' || *v == '0')
+ return JK_LB_STATE_IDLE;
else if (*v == 'o' || *v == 'O' || *v == '1')
return JK_LB_STATE_OK;
else if (*v == 'r' || *v == 'R' || *v == '2')
@@ -454,7 +454,7 @@
non_error++;
if (w->s->state == JK_LB_STATE_OK &&
w->s->elected == w->s->elected_snapshot)
- w->s->state = JK_LB_STATE_NA;
+ w->s->state = JK_LB_STATE_IDLE;
}
w->s->elected_snapshot = w->s->elected;
}
@@ -1258,7 +1258,7 @@
strncpy(p->lb_workers[i].s->redirect, s, JK_SHM_STR_SIZ);
p->lb_workers[i].s->lb_value = 0;
- p->lb_workers[i].s->state = JK_LB_STATE_NA;
+ p->lb_workers[i].s->state = JK_LB_STATE_IDLE;
p->lb_workers[i].s->error_time = 0;
p->lb_workers[i].s->activation =
jk_get_worker_activation(props, worker_names[i]);
Modified: tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h?view=diff&rev=550241&r1=550240&r2=550241
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h Sun Jun 24 07:56:17
2007
@@ -57,23 +57,23 @@
#define JK_LB_LOCK_TEXT_OPTIMISTIC ("Optimistic")
#define JK_LB_LOCK_TEXT_PESSIMISTIC ("Pessimistic")
#define JK_LB_LOCK_TEXT_DEF (JK_LB_LOCK_TEXT_OPTIMISTIC)
-#define JK_LB_STATE_NA (0)
+#define JK_LB_STATE_IDLE (0)
#define JK_LB_STATE_OK (1)
#define JK_LB_STATE_RECOVER (2)
#define JK_LB_STATE_BUSY (3)
#define JK_LB_STATE_ERROR (4)
#define JK_LB_STATE_FORCE (5)
#define JK_LB_STATE_PROBE (6)
-#define JK_LB_STATE_DEF (JK_LB_STATE_NA)
-#define JK_LB_STATE_TEXT_NA ("N/A")
+#define JK_LB_STATE_DEF (JK_LB_STATE_IDLE)
+#define JK_LB_STATE_TEXT_IDLE ("OK/IDLE")
#define JK_LB_STATE_TEXT_OK ("OK")
-#define JK_LB_STATE_TEXT_RECOVER ("REC")
-#define JK_LB_STATE_TEXT_BUSY ("BSY")
+#define JK_LB_STATE_TEXT_RECOVER ("ERR/REC")
+#define JK_LB_STATE_TEXT_BUSY ("OK/BUSY")
#define JK_LB_STATE_TEXT_ERROR ("ERR")
-#define JK_LB_STATE_TEXT_FORCE ("FRC")
-#define JK_LB_STATE_TEXT_PROBE ("PRB")
+#define JK_LB_STATE_TEXT_FORCE ("ERR/FRC")
+#define JK_LB_STATE_TEXT_PROBE ("ERR/PRB")
#define JK_LB_STATE_TEXT_MAX (JK_LB_STATE_PROBE)
-#define JK_LB_STATE_TEXT_DEF (JK_LB_STATE_TEXT_NA)
+#define JK_LB_STATE_TEXT_DEF (JK_LB_STATE_TEXT_IDLE)
#define JK_LB_ACTIVATION_ACTIVE (0)
#define JK_LB_ACTIVATION_DISABLED (1)
#define JK_LB_ACTIVATION_STOPPED (2)
Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_status.c?view=diff&rev=550241&r1=550240&r2=550241
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_status.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_status.c Sun Jun 24 07:56:17
2007
@@ -137,7 +137,7 @@
#define JK_STATUS_MASK_DISABLED 0x0000FF00
#define JK_STATUS_MASK_STOPPED 0x00FF0000
#define JK_STATUS_MASK_OK 0x00010101
-#define JK_STATUS_MASK_NA 0x00020202
+#define JK_STATUS_MASK_IDLE 0x00020202
#define JK_STATUS_MASK_BUSY 0x00040404
#define JK_STATUS_MASK_RECOVER 0x00080808
#define JK_STATUS_MASK_ERROR 0x00101010
@@ -201,7 +201,7 @@
#define JK_STATUS_SHOW_MEMBER_HEAD "<tr>" \
"<th> </th><th>Name</th><th>Type</th>" \
"<th>Host</th><th>Addr</th>" \
- "<th>Act</th><th>Stat</th>" \
+ "<th>Act</th><th>State</th>" \
"<th>D</th><th>F</th><th>M</th>" \
"<th>V</th><th>Acc</th>" \
"<th>Err</th><th>CE</th>" \
@@ -562,8 +562,8 @@
case JK_LB_STATE_OK:
mask &= JK_STATUS_MASK_OK;
break;
- case JK_LB_STATE_NA:
- mask &= JK_STATUS_MASK_NA;
+ case JK_LB_STATE_IDLE:
+ mask &= JK_STATUS_MASK_IDLE;
break;
case JK_LB_STATE_BUSY:
mask &= JK_STATUS_MASK_BUSY;
@@ -620,9 +620,11 @@
case 'O':
case 'o':
return JK_STATUS_MASK_OK;
+ case 'I':
+ case 'i':
case 'N':
case 'n':
- return JK_STATUS_MASK_NA;
+ return JK_STATUS_MASK_IDLE;
case 'B':
case 'b':
return JK_STATUS_MASK_BUSY;
@@ -2467,8 +2469,9 @@
"<tr><th>Addr</th><td>Backend Address info</td></tr>\n"
"<tr><th>Act</th><td>Worker activation configuration<br/>\n"
"ACT=Active, DIS=Disabled, STP=Stopped</td></tr>\n"
- "<tr><th>Stat</th><td>Worker error status<br/>\n"
- "OK=OK, N/A=Unknown, ERR=Error, BSY=Busy<br/>\n"
+ "<tr><th>State</th><td>Worker error status<br/>\n"
+ "OK=OK, ERR=Error with substates<br/>\n"
+ "IDLE=No requests handled, BUSY=All connections busy,<br/>\n"
"REC=Recovering, PRB=Probing, FRC=Forced Recovery</td></tr>\n"
"<tr><th>D</th><td>Worker distance</td></tr>\n"
"<tr><th>F</th><td>Load Balancer factor</td></tr>\n"
@@ -2850,7 +2853,7 @@
wr->s->recovery_errors = 0;
wr->s->readed = 0;
wr->s->transferred = 0;
- wr->s->state = JK_LB_STATE_NA;
+ wr->s->state = JK_LB_STATE_IDLE;
}
JK_TRACE_EXIT(l);
return JK_TRUE;
@@ -2871,7 +2874,7 @@
wr->s->recovery_errors = 0;
wr->s->readed = 0;
wr->s->transferred = 0;
- wr->s->state = JK_LB_STATE_NA;
+ wr->s->state = JK_LB_STATE_IDLE;
JK_TRACE_EXIT(l);
return JK_TRUE;
}
Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?view=diff&rev=550241&r1=550240&r2=550241
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Sun Jun 24
07:56:17 2007
@@ -28,6 +28,13 @@
<subsection name="Native">
<changelog>
<update>
+ Status worker: Renamed runtime states. All states have a major
+ state (OK or ERR) and a substate. Changed the name N/A to OK/IDLE.
+ Added docs about the meaning of the states to the status worker
+ page in the reference guide.
+ No new states have been added to code. (rjung)
+ </update>
+ <update>
Common: Add recovery options for recovering idempotent http methods
HEAD and GET. (rjung)
</update>
Modified: tomcat/connectors/trunk/jk/xdocs/reference/status.xml
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/reference/status.xml?view=diff&rev=550241&r1=550240&r2=550241
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/reference/status.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/reference/status.xml Sun Jun 24 07:56:17
2007
@@ -287,13 +287,40 @@
<p>
The categorization is based on the activation state of the workers (active,
disabled or stopped),
which is a pure configuration state, and the runtime state
-(OK, N/A, busy, recovering, probing, forced recovery, error)
+(OK or ERR with possible substates idle, busy, recovering, probing, and forced
recovery)
which only depends on the runtime situation.
</p>
<p>
+The runtime substates have the following meaning:
+<ul>
+<li>
+<b>OK (idle)</b>: This worker didn't receive any request since the last
balancer
+maintenance. By default balancer maintenance runs every 60 seconds. The
+worker should be OK, but since we didn't have to use it for some time, we
+can't be sure. This state has been called N/A before version 1.2.24.
+</li>
+<li>
+<b>OK (busy)</b>: All connections for this worker are in use for requests.
+</li>
+<li>
+<b>ERROR (recovering)</b>: The worker was in error state for some time and is
now
+marked for recovery. The next request suitable for thi worker will use it.
+</li>
+<li>
+<b>ERROR (probing)</b>: After setting the worker to recovering, we received a
request
+suitable for this worker. This request is now using the worker.
+</li>
+<li>
+<b>ERROR (forced recovery)</b>: The worker is in error, but we don't have an
alternative
+worker, so we keep using it.
+</li>
+</ul>
+</p>
+<p>
By default the status worker groups into "good" all members, that have
activation "active" and
-runtime state not equal to "error". The "bad" group consists of the members,
that have either activation
-"stopped", or are in runtime state "error".
+runtime state not equal to "error" with empty substate.
+The "bad" group consists of the members, that have either activation
+"stopped", or are in runtime state "error" with empty substate.
</p>
<p>
Workers that fit neither of the two groups, are considered to be "degraded".
@@ -302,11 +329,11 @@
You can define other rules for the grouping into good, bad and degraded.
The two attributes "good" and "bad" can be populated by a comma-separated list
ob single characters or
dot-separated pairs. Each character stands for the first character of one of
the possible states "active",
-"disabled", "stopped", "ok", "na", "busy", "recovering" and "error". The
additional states "probing"
+"disabled", "stopped", "ok", "idle", "busy", "recovering" and "error". The
additional states "probing"
and "forced recovery" are always rated equivalent to "recovering".
Comma-separated entries will be combined
with logical "or", if you combine a configuration and a runtime state with a
dot. the are combined with logical
-"and". So the default value for "good" is "a.o,a.n,a.b,a.r", for "bad" it is
"e,s".
+"and". So the default value for "good" is "a.o,a.i,a.b,a.r", for "bad" it is
"e,s".
</p>
<p>
The status worker first tries to match against the "bad" definitions, if this
doesn't succeed
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]