You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2002/05/14 19:04:09 UTC
cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_endpoint.h
costin 02/05/14 10:04:09
Modified: jk/native2/include jk_endpoint.h
Log:
The 'stats' we collect are now part of the endpoint - this is the best way to
avoid threading issues. Using the worker is dangerous - there are many
threads accessing the worker at the same time. Atomic operations may help,
but they are not very portable and do have performance impact ( this
is happening in the critical loop ).
The downside of using the endpoint is that we'll have to agregate
the data from all endpoints to get per/worker info.
The data is in a struct that'll be in the scoreboard.
Removed unused fields ( will be added in a later version, when we start
adding new APIs ).
Revision Changes Path
1.13 +25 -9 jakarta-tomcat-connectors/jk/native2/include/jk_endpoint.h
Index: jk_endpoint.h
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_endpoint.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- jk_endpoint.h 3 May 2002 17:36:46 -0000 1.12
+++ jk_endpoint.h 14 May 2002 17:04:09 -0000 1.13
@@ -61,7 +61,7 @@
* Author: Gal Shachor <sh...@il.ibm.com>
* Author: Dan Milstein <da...@shore.net>
* Author: Henri Gomez <hg...@slib.fr>
- * Version: $Revision: 1.12 $
+ * Version: $Revision: 1.13 $
***************************************************************************/
#ifndef JK_ENDPOINT_H
@@ -80,10 +80,12 @@
#endif /* __cplusplus */
struct jk_endpoint;
+struct jk_stat;
struct jk_ws_service;
struct jk_logger;
struct jk_map;
typedef struct jk_endpoint jk_endpoint_t;
+typedef struct jk_stat jk_stat_t;
/* XXX replace worker with channel, endpoints are specific to channels not workers */
@@ -151,8 +153,6 @@
*/
struct jk_pool *cPool;
- int proto; /* PROTOCOL USED AJP13/AJP14 */
-
int sd;
int reuse;
@@ -170,20 +170,36 @@
struct jk_msg *post;
struct jk_msg *request; /* original request storage */
- int uploadfd; /* future persistant storage id */
int recoverable; /* if exchange could be conducted on
another TC ??? */
/* For redirecting endpoints like lb */
jk_endpoint_t *realEndpoint;
- /* Ajp14-specific field, negotiate protocol features.
- XXX Replace it with a name/value set */
- unsigned long negociation;
- unsigned long negociated;
-
char *servletContainerName;
+
+ /* The struct will be created in shm if available
+ */
+ struct jk_stat *stats;
+
};
+
+/** Statistics collected per endpoint
+ */
+struct jk_stat {
+ /* Number of requests served by this worker and the number of errors */
+ int reqCnt;
+ int errCnt;
+
+ /* Total time ( for average - divide by reqCnt ) and maxTime */
+ long totalTime;
+ long maxTime;
+
+ /* Active request
+ */
+ char active[128];
+};
+
#ifdef __cplusplus
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>