Return-Path: Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: (qmail 87352 invoked from network); 1 Sep 2006 18:04:18 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 1 Sep 2006 18:04:18 -0000 Received: (qmail 83497 invoked by uid 500); 1 Sep 2006 18:04:14 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 83440 invoked by uid 500); 1 Sep 2006 18:04:14 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 83429 invoked by uid 500); 1 Sep 2006 18:04:14 -0000 Delivered-To: apmail-jakarta-tomcat-dev@jakarta.apache.org Received: (qmail 83426 invoked by uid 99); 1 Sep 2006 18:04:14 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Sep 2006 11:04:14 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Sep 2006 11:04:13 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 32A141A981A; Fri, 1 Sep 2006 11:03:52 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r439401 - /tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c Date: Fri, 01 Sep 2006 18:03:51 -0000 To: tomcat-dev@jakarta.apache.org From: mturk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060901180352.32A141A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: mturk Date: Fri Sep 1 11:03:51 2006 New Revision: 439401 URL: http://svn.apache.org/viewvc?rev=439401&view=rev Log: Add option to log the jvmRoute (real worker used in load balancer) and remove the GETTIMEOFDAY by using apr_time functions. Modified: tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c Modified: tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c?rev=439401&r1=439400&r2=439401&view=diff ============================================================================== --- tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c (original) +++ tomcat/connectors/trunk/jk/native/apache-2.0/mod_jk.c Fri Sep 1 11:03:51 2006 @@ -111,6 +111,7 @@ #define JK_NOTE_WORKER_NAME ("JK_WORKER_NAME") #define JK_NOTE_WORKER_TYPE ("JK_WORKER_TYPE") #define JK_NOTE_REQUEST_DURATION ("JK_REQUEST_DURATION") +#define JK_NOTE_WORKER_ROUTE ("JK_WORKER_ROUTE") #define JK_HANDLER ("jakarta-servlet") #define JK_MAGIC_TYPE ("application/x-jakarta-servlet") #define NULL_FOR_EMPTY(x) ((x && !strlen(x)) ? NULL : x) @@ -1126,6 +1127,11 @@ return apr_table_get(r->notes, JK_NOTE_WORKER_NAME); } +static const char *log_worker_route(request_rec * r, char *a) +{ + return apr_table_get(r->notes, JK_NOTE_WORKER_ROUTE); +} + static const char *log_request_duration(request_rec * r, char *a) { @@ -1236,6 +1242,7 @@ 'm', log_request_method}, { 'q', log_request_query}, { 'w', log_worker_name}, { + 'R', log_worker_route}, { '\0'} }; @@ -1886,9 +1893,7 @@ } if (worker) { -#ifndef NO_GETTIMEOFDAY - struct timeval tv_begin, tv_end; -#endif + apr_time_t request_begin; int is_error = HTTP_INTERNAL_SERVER_ERROR; int rc = JK_FALSE; apache_private_data_t private_data; @@ -1909,11 +1914,10 @@ s.pool = &private_data.p; apr_table_setn(r->notes, JK_NOTE_WORKER_TYPE, wc_get_name_for_type(worker->type, xconf->log)); -#ifndef NO_GETTIMEOFDAY + if (xconf->format != NULL) { - gettimeofday(&tv_begin, NULL); + request_begin = apr_time_now(); } -#endif if (init_ws_service(&private_data, &s, xconf)) { jk_endpoint_t *end = NULL; @@ -1962,22 +1966,20 @@ JK_TRACE_EXIT(xconf->log); return HTTP_INTERNAL_SERVER_ERROR; } -#ifndef NO_GETTIMEOFDAY if (xconf->format != NULL) { - char *duration = NULL; long micro, seconds; - gettimeofday(&tv_end, NULL); - if (tv_end.tv_usec < tv_begin.tv_usec) { - tv_end.tv_usec += 1000000; - tv_end.tv_sec--; - } - micro = tv_end.tv_usec - tv_begin.tv_usec; - seconds = tv_end.tv_sec - tv_begin.tv_sec; + char *duration = NULL; + apr_time_t rd = apr_time_now() - request_begin; + seconds = (long)apr_time_sec(rd); + micro = (long)(rd - apr_time_from_sec(seconds)); + duration = apr_psprintf(r->pool, "%.1ld.%.6ld", seconds, micro); apr_table_setn(r->notes, JK_NOTE_REQUEST_DURATION, duration); + if (s.jvm_route && *s.jvm_route) + apr_table_setn(r->notes, JK_NOTE_WORKER_ROUTE, s.jvm_route); + request_log_transaction(r, xconf); } -#endif jk_close_pool(&private_data.p); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org