costin 02/05/14 13:42:14 Modified: jk/native2/common jk_worker_status.c Log: Starting to add support for displaying info from shm. This brakes the encapsulation and is not extensible, but it's a start :-) Revision Changes Path 1.20 +47 -0 jakarta-tomcat-connectors/jk/native2/common/jk_worker_status.c Index: jk_worker_status.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_status.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- jk_worker_status.c 14 May 2002 17:25:24 -0000 1.19 +++ jk_worker_status.c 14 May 2002 20:42:14 -0000 1.20 @@ -73,6 +73,51 @@ #include "jk_env.h" #include "jk_requtil.h" #include "jk_registry.h" +#include "jk_endpoint.h" + +static void jk2_worker_status_displayScoreboardInfo(jk_env_t *env, jk_ws_service_t *s, + jk_workerEnv_t *wenv) +{ + jk_map_t *map=wenv->initData; + int i; + int j; + int needHeader=JK_TRUE; + + if( wenv->shm==NULL || wenv->shm->head==NULL) + return; + + s->jkprintf(env, s, "<h2>Scoreboard info</h2>\n"); + + s->jkprintf(env, s, "<table border>\n"); + + s->jkprintf(env, s, "<tr><td>Version</td><td>%d</td></tr>\n", wenv->shm->head->lbVer ); + s->jkprintf(env, s, "<tr><td>Slots</td><td>%d</td></tr>\n", wenv->shm->head->lastSlot ); + + for( i=1; i < wenv->shm->head->lastSlot; i++ ) { + jk_shm_slot_t *slot= wenv->shm->getSlot( env, wenv->shm, i ); + + if( slot==NULL ) continue; + + if( strncmp( slot->name, "epStat", 6 ) == 0 ) { + /* This is an endpoint slot */ + void *data=slot->data; + + s->jkprintf(env, s, "<tr><th colspan='2'>%s</th></tr>\n", slot->name ); + s->jkprintf(env, s, "<tr><td>StructCnt</td><td>%d</td>\n", slot->structCnt ); + s->jkprintf(env, s, "<tr><td>StructSize</td><td>%d</td>\n", slot->structSize ); + s->jkprintf(env, s, "<tr><th>Requests</th><th>Errors</th>\n" ); + + /* XXX Add info about number of slots */ + for( j=0; j<slot->structCnt ; j++ ) { + jk_stat_t *stat=(jk_stat_t *) ( data + j * sizeof( jk_stat_t )); + + s->jkprintf(env, s, "<tr><td>%d</td><td>%d</td></tr>\n", stat->reqCnt, stat->errCnt ); + } + + } + } + s->jkprintf(env, s, "</table>\n"); +} /** Use 'introspection' data to find what getters an type support, * and display the information in a table @@ -236,11 +281,13 @@ shm->head->lbVer++; } + s->jkprintf(env, s, "Status information for child %d", s->workerEnv->childId ); /* Body */ jk2_worker_status_displayRuntimeType(env, s, s->workerEnv, "ajp13" ); jk2_worker_status_displayRuntimeType(env, s, s->workerEnv, "endpoint" ); jk2_worker_status_displayRuntimeType(env, s, s->workerEnv, "uri" ); + jk2_worker_status_displayScoreboardInfo(env, s, s->workerEnv ); jk2_worker_status_displayConfigProperties(env, s, s->workerEnv ); jk2_worker_status_displayActiveProperties(env, s, s->workerEnv );
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>