mturk 2005/06/18 05:02:51
Modified: jni/native/src network.c
Log:
Add transport metricks when compiled with TRACE support.
Revision Changes Path
1.31 +94 -3 jakarta-tomcat-connectors/jni/native/src/network.c
Index: network.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jni/native/src/network.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -r1.30 -r1.31
--- network.c 18 Jun 2005 08:03:21 -0000 1.30
+++ network.c 18 Jun 2005 12:02:51 -0000 1.31
@@ -27,6 +27,17 @@
static volatile apr_uint32_t sp_closed = 0;
static volatile apr_uint32_t sp_cleared = 0;
static volatile apr_uint32_t sp_accepted = 0;
+static volatile apr_uint32_t sp_max_send = 0;
+static volatile apr_uint32_t sp_min_send = 10000000;
+static volatile apr_uint32_t sp_num_send = 0;
+static volatile apr_off_t sp_tot_send = 0;
+static volatile apr_uint32_t sp_max_recv = 0;
+static volatile apr_uint32_t sp_min_recv = 10000000;
+static volatile apr_uint32_t sp_num_recv = 0;
+static volatile apr_off_t sp_tot_recv = 0;
+static volatile apr_uint32_t sp_err_recv = 0;
+static volatile apr_uint32_t sp_tmo_recv = 0;
+
/* Fake private pool struct to deal with APR private's socket
* struct not exposing function to access the pool.
*/
@@ -60,6 +71,16 @@
fprintf(stderr, "Sockets accepted : %d\n", sp_accepted);
fprintf(stderr, "Sockets closed : %d\n", sp_closed);
fprintf(stderr, "Sockets cleared : %d\n", sp_cleared);
+ fprintf(stderr, "Total send calls : %d\n", sp_num_send);
+ fprintf(stderr, "Minimum send lenght : %d\n", sp_min_send);
+ fprintf(stderr, "Maximum send lenght : %d\n", sp_max_send);
+ fprintf(stderr, "Average send lenght : %.2f\n",
(double)sp_tot_send/(double)sp_num_send);
+ fprintf(stderr, "Total recv calls : %d\n", sp_num_recv);
+ fprintf(stderr, "Minimum recv lenght : %d\n", sp_min_recv);
+ fprintf(stderr, "Maximum recv lenght : %d\n", sp_max_recv);
+ fprintf(stderr, "Average recv lenght : %.2f\n",
(double)sp_tot_recv/(double)sp_num_recv);
+ fprintf(stderr, "Receive timeouts : %d\n", sp_tmo_recv);
+ fprintf(stderr, "Receive errors : %d\n", sp_err_recv);
}
#endif
@@ -399,6 +420,12 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
+#ifdef TCN_DO_STATISTICS
+ sp_max_send = TCN_MAX(sp_max_send, nbytes);
+ sp_min_send = TCN_MIN(sp_min_send, nbytes);
+ sp_tot_send += nbytes;
+ sp_num_send++;
+#endif
if (tosend <= TCN_BUFFER_SZ) {
char sb[TCN_BUFFER_SZ];
@@ -438,6 +465,12 @@
UNREFERENCED(o);
TCN_ASSERT(sock != 0);
TCN_ASSERT(buf != NULL);
+#ifdef TCN_DO_STATISTICS
+ sp_max_send = TCN_MAX(sp_max_send, nbytes);
+ sp_min_send = TCN_MIN(sp_min_send, nbytes);
+ sp_tot_send += nbytes;
+ sp_num_send++;
+#endif
bytes = (char *)(*e)->GetDirectBufferAddress(e, buf);
ss = (*s->send)(s->opaque, bytes + offset, &nbytes);
@@ -544,6 +577,21 @@
(*e)->ReleaseByteArrayElements(e, buf, bytes,
nbytes ? 0 : JNI_ABORT);
}
+#ifdef TCN_DO_STATISTICS
+ if (ss == APR_SUCCESS) {
+ sp_max_recv = TCN_MAX(sp_max_recv, nbytes);
+ sp_min_recv = TCN_MIN(sp_min_recv, nbytes);
+ sp_tot_recv += nbytes;
+ sp_num_recv++;
+ }
+ else {
+ if (APR_STATUS_IS_ETIMEDOUT(ss) ||
+ APR_STATUS_IS_TIMEUP(ss))
+ sp_tmo_recv++;
+ else
+ sp_err_recv++;
+ }
+#endif
if (ss == APR_SUCCESS)
return (jint)nbytes;
else {
@@ -582,6 +630,21 @@
}
/* Resore the original timeout */
apr_socket_timeout_set(s->sock, t);
+#ifdef TCN_DO_STATISTICS
+ if (ss == APR_SUCCESS) {
+ sp_max_recv = TCN_MAX(sp_max_recv, nbytes);
+ sp_min_recv = TCN_MIN(sp_min_recv, nbytes);
+ sp_tot_recv += nbytes;
+ sp_num_recv++;
+ }
+ else {
+ if (APR_STATUS_IS_ETIMEDOUT(ss) ||
+ APR_STATUS_IS_TIMEUP(ss))
+ sp_tmo_recv++;
+ else
+ sp_err_recv++;
+ }
+#endif
cleanup:
if (ss == APR_SUCCESS)
return (jint)nbytes;
@@ -606,7 +669,21 @@
bytes = (char *)(*e)->GetDirectBufferAddress(e, buf);
TCN_ASSERT(bytes != NULL);
ss = (*s->recv)(s->opaque, bytes + offset, &nbytes);
-
+#ifdef TCN_DO_STATISTICS
+ if (ss == APR_SUCCESS) {
+ sp_max_recv = TCN_MAX(sp_max_recv, nbytes);
+ sp_min_recv = TCN_MIN(sp_min_recv, nbytes);
+ sp_tot_recv += nbytes;
+ sp_num_recv++;
+ }
+ else {
+ if (APR_STATUS_IS_ETIMEDOUT(ss) ||
+ APR_STATUS_IS_TIMEUP(ss))
+ sp_tmo_recv++;
+ else
+ sp_err_recv++;
+ }
+#endif
if (ss == APR_SUCCESS)
return (jint)nbytes;
else {
@@ -639,7 +716,21 @@
ss = (*s->recv)(s->opaque, bytes + offset, &nbytes);
/* Resore the original timeout */
apr_socket_timeout_set(s->sock, t);
-
+#ifdef TCN_DO_STATISTICS
+ if (ss == APR_SUCCESS) {
+ sp_max_recv = TCN_MAX(sp_max_recv, nbytes);
+ sp_min_recv = TCN_MIN(sp_min_recv, nbytes);
+ sp_tot_recv += nbytes;
+ sp_num_recv++;
+ }
+ else {
+ if (APR_STATUS_IS_ETIMEDOUT(ss) ||
+ APR_STATUS_IS_TIMEUP(ss))
+ sp_tmo_recv++;
+ else
+ sp_err_recv++;
+ }
+#endif
if (ss == APR_SUCCESS)
return (jint)nbytes;
else {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]