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]

Reply via email to