Author: rjung
Date: Sun Aug 27 14:47:48 2006
New Revision: 437464
URL: http://svn.apache.org/viewvc?rev=437464&view=rev
Log:
Add Apache notes with load balancer results.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c
tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h
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=437464&r1=437463&r2=437464&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.c Sun Aug 27 14:47:48
2006
@@ -599,7 +599,9 @@
{
lb_endpoint_t *p;
int attempt = 1;
+ worker_record_t *prec = NULL;
int num_of_workers;
+ int first = 1;
int rc = -1;
char *sessionid = NULL;
@@ -648,6 +650,7 @@
int retry = 0;
int retry_wait = JK_LB_MIN_RETRY_WAIT;
s->jvm_route = rec->r;
+ prec = rec;
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
@@ -821,6 +824,40 @@
jk_log(l, JK_LOG_DEBUG,
"recoverable error... will try to recover on other
worker");
}
+ if (first == 1 && s->add_log_items) {
+ first = 0;
+ const char **log_names = jk_pool_alloc(s->pool, sizeof(char *)
* JK_LB_NOTES_COUNT);
+ const char **log_values = jk_pool_alloc(s->pool, sizeof(char
*) * JK_LB_NOTES_COUNT);
+ char *buf = jk_pool_alloc(s->pool, sizeof(char *) *
JK_LB_NOTES_COUNT * JK_LB_MAX_SZ);;
+ if (log_names && log_values && buf) {
+ log_names[0] = JK_NOTE_LB_FIRST_NAME;
+ log_values[0] = prec->s->name;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT64_T_FMT,
prec->s->lb_value);
+ log_names[1] = JK_NOTE_LB_FIRST_VALUE;
+ log_values[1] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT64_T_FMT,
prec->s->elected);
+ log_names[2] = JK_NOTE_LB_FIRST_ACCESSED;
+ log_values[2] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT64_T_FMT,
prec->s->readed);
+ log_names[3] = JK_NOTE_LB_FIRST_READ;
+ log_values[3] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT64_T_FMT,
prec->s->transferred);
+ log_names[4] = JK_NOTE_LB_FIRST_TRANSFERRED;
+ log_values[4] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT32_T_FMT,
prec->s->errors);
+ log_names[5] = JK_NOTE_LB_FIRST_ERRORS;
+ log_values[5] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%d", prec->s->busy);
+ log_names[6] = JK_NOTE_LB_FIRST_BUSY;
+ log_values[6] = buf;
+ s->add_log_items(s, log_names, log_values,
JK_LB_NOTES_COUNT);
+ }
+ }
}
else {
/* NULL record, no more workers left ... */
@@ -837,6 +874,39 @@
/* Set error to Timeout */
*is_error = JK_HTTP_SERVER_BUSY;
rc = JK_FALSE;
+ }
+ if (prec && s->add_log_items) {
+ const char **log_names = jk_pool_alloc(s->pool, sizeof(char *) *
JK_LB_NOTES_COUNT);
+ const char **log_values = jk_pool_alloc(s->pool, sizeof(char *) *
JK_LB_NOTES_COUNT);
+ char *buf = jk_pool_alloc(s->pool, sizeof(char *) * JK_LB_NOTES_COUNT
* JK_LB_MAX_SZ);;
+ if (log_names && log_values && buf) {
+ log_names[0] = JK_NOTE_LB_LAST_NAME;
+ log_values[0] = prec->s->name;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT64_T_FMT,
prec->s->lb_value);
+ log_names[1] = JK_NOTE_LB_LAST_VALUE;
+ log_values[1] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT64_T_FMT, prec->s->elected);
+ log_names[2] = JK_NOTE_LB_LAST_ACCESSED;
+ log_values[2] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT64_T_FMT, prec->s->readed);
+ log_names[3] = JK_NOTE_LB_LAST_READ;
+ log_values[3] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT64_T_FMT,
prec->s->transferred);
+ log_names[4] = JK_NOTE_LB_LAST_TRANSFERRED;
+ log_values[4] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%" JK_UINT32_T_FMT, prec->s->errors);
+ log_names[5] = JK_NOTE_LB_LAST_ERRORS;
+ log_values[5] = buf;
+ buf += JK_LB_MAX_SZ;
+ snprintf(buf, JK_LB_MAX_SZ, "%d", prec->s->busy);
+ log_names[6] = JK_NOTE_LB_LAST_BUSY;
+ log_values[6] = buf;
+ s->add_log_items(s, log_names, log_values, JK_LB_NOTES_COUNT);
+ }
}
JK_TRACE_EXIT(l);
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?rev=437464&r1=437463&r2=437464&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_lb_worker.h Sun Aug 27 14:47:48
2006
@@ -53,6 +53,23 @@
#define JK_LB_LOCK_TEXT_PESSIMISTIC ("Pessimistic")
#define JK_LB_LOCK_TEXT_DEF (JK_LB_LOCK_TEXT_OPTIMISTIC)
+#define JK_LB_MAX_SZ (21)
+#define JK_LB_NOTES_COUNT (7)
+#define JK_NOTE_LB_FIRST_NAME ("JK_LB_FIRST_NAME")
+#define JK_NOTE_LB_FIRST_VALUE ("JK_LB_FIRST_VALUE")
+#define JK_NOTE_LB_FIRST_ACCESSED ("JK_LB_FIRST_ACCESSED")
+#define JK_NOTE_LB_FIRST_READ ("JK_LB_FIRST_READ")
+#define JK_NOTE_LB_FIRST_TRANSFERRED ("JK_LB_FIRST_TRANSFERRED")
+#define JK_NOTE_LB_FIRST_ERRORS ("JK_LB_FIRST_ERRORS")
+#define JK_NOTE_LB_FIRST_BUSY ("JK_LB_FIRST_BUSY")
+#define JK_NOTE_LB_LAST_NAME ("JK_LB_LAST_NAME")
+#define JK_NOTE_LB_LAST_VALUE ("JK_LB_LAST_VALUE")
+#define JK_NOTE_LB_LAST_ACCESSED ("JK_LB_LAST_ACCESSED")
+#define JK_NOTE_LB_LAST_READ ("JK_LB_LAST_READ")
+#define JK_NOTE_LB_LAST_TRANSFERRED ("JK_LB_LAST_TRANSFERRED")
+#define JK_NOTE_LB_LAST_ERRORS ("JK_LB_LAST_ERRORS")
+#define JK_NOTE_LB_LAST_BUSY ("JK_LB_LAST_BUSY")
+
/* Minimal time in ms to wait between get_endpoint retries for balanced
workers */
#define JK_LB_MIN_RETRY_WAIT (25)
/* Maximal time in ms to wait between get_endpoint retries for balanced
workers */
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]