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]>

Reply via email to