costin      02/05/14 10:21:09

  Modified:    jk/native2/common jk_worker_ajp13.c
  Log:
  - remove the stat info ( moved to endpoint )
  
  - increment the counters after the request, for each endpoint. That's very trade
  safe, as an endpoint can't be used in 2 threads.
  
  - various cosmetic changes ( removed duplicated pool, init, destroy in worker.h )
  
  - added 'introspection' info about the supported attributes and multi-value 
attributes.
  
  Revision  Changes    Path
  1.19      +43 -31    jakarta-tomcat-connectors/jk/native2/common/jk_worker_ajp13.c
  
  Index: jk_worker_ajp13.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_ajp13.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- jk_worker_ajp13.c 11 May 2002 00:06:58 -0000      1.18
  +++ jk_worker_ajp13.c 14 May 2002 17:21:09 -0000      1.19
  @@ -85,9 +85,15 @@
   #define AJP14_DEF_PORT  (8011)
   
   /* -------------------- Impl -------------------- */
  -static char *myAttInfo[]={ "lb_factor", "lb_value", "reqCnt", "errCnt",
  -                           "route", "errorState", "graceful",
  -                           "epCount", "errorTime", NULL };
  +static char *jk2_worker_ajp14_getAttributeInfo[]={ "lb_factor", "lb_value", 
  +                                                   "route", "errorState", 
"graceful",
  +                                                   "epCount", "errorTime", NULL };
  +
  +static char *jk2_worker_ajp14_multiValueInfo[]={"group", NULL };
  +
  +static char *jk2_worker_ajp14_setAttributeInfo[]={"debug", "channel", "route",
  +                                                  "lb_factor", "level", NULL };
  +
   
   static void * JK_METHOD jk2_worker_ajp14_getAttribute(jk_env_t *env, jk_bean_t 
*bean, char *name ) {
       jk_worker_t *worker=(jk_worker_t *)bean->object;
  @@ -107,14 +113,6 @@
           char *buf=env->tmpPool->calloc( env, env->tmpPool, 20 );
           sprintf( buf, "%d", worker->lb_value );
           return buf;
  -    } else if (strcmp( name, "reqCnt" )==0 ) {
  -        char *buf=env->tmpPool->calloc( env, env->tmpPool, 20 );
  -        sprintf( buf, "%d", worker->reqCnt );
  -        return buf;
  -    } else if (strcmp( name, "errCnt" )==0 ) {
  -        char *buf=env->tmpPool->calloc( env, env->tmpPool, 20 );
  -        sprintf( buf, "%d", worker->errCnt );
  -        return buf;
       } else if (strcmp( name, "lb_factor" )==0 ) {
           char *buf=env->tmpPool->calloc( env, env->tmpPool, 20 );
           sprintf( buf, "%d", worker->lb_factor );
  @@ -140,10 +138,6 @@
       }
   }
   
  -static char *jk2_worker_ajp_multiValueInfo[]={"group", NULL };
  -
  -static char *jk2_worker_ajp_setAttributeInfo[]={"debug", "channel", "tomcatId", 
"lb_factor", NULL };
  -
   
   /*
    * Initialize the worker.
  @@ -164,10 +158,14 @@
           ajp14->secret = value;
       } else if( strcmp( name, "tomcatId" )==0 ) {
           ajp14->route=value;
  +    } else if( strcmp( name, "route" )==0 ) {
  +        ajp14->route=value;
       } else if( strcmp( name, "group" )==0 ) {
           ajp14->groups->add( env, ajp14->groups, value, ajp14 );
       } else if( strcmp( name, "lb_factor" )==0 ) {
           ajp14->lb_factor=atoi( value );
  +    } else if( strcmp( name, "level" )==0 ) {
  +        ajp14->level=atoi( value );
       } else if( strcmp( name, "channel" )==0 ) {
           ajp14->channelName=value;
       } else {
  @@ -327,7 +325,10 @@
           /* e->request->dump(env, e->request, "Before sending "); */
           err=e->worker->channel->send( env, e->worker->channel, e,
                                         e->request );
  -        e->request->dump( env, e->request, "Sent" );
  +
  +        if( e->worker->mbean->debug > 10 )
  +            e->request->dump( env, e->request, "Sent" );
  +        
           if (err==JK_OK ) {
               /* We sent the request, have valid endpoint */
               break;
  @@ -391,6 +392,9 @@
         */
           err=jk2_serialize_postHead( env, e->post, s, e );
   
  +        if( e->worker->mbean->debug > 10 )
  +            e->request->dump( env, e->request, "Post head" );
  +
           if (err != JK_OK ) {
               /* the browser stop sending data, no need to recover */
               e->recoverable = JK_FALSE;
  @@ -473,7 +477,6 @@
       e->reply->reset( env, e->reply );
       e->post->reset( env, e->post );
       
  -    e->uploadfd       = -1;          /* not yet used, later ;) */
       e->reuse = JK_FALSE;
       s->is_recoverable_error = JK_TRUE;
       /* Up to now, we can recover */
  @@ -584,7 +587,7 @@
           return JK_OK;
       }
   
  -    jkb=env->createBean2( env,ajp14->pool,  "endpoint", NULL );
  +    jkb=env->createBean2( env, ajp14->mbean->pool,  "endpoint", NULL );
       if( jkb==NULL )
           return JK_ERR;
       if( ajp14->mbean->debug > 0 )
  @@ -618,27 +621,36 @@
       if( err!=JK_OK ) {
           w->in_error_state=JK_TRUE;
       }
  +
  +    if( err==JK_OK ) {
  +        e->stats->reqCnt++;
  +    } else {
  +        e->stats->errCnt++;
  +    }
  +
       jk2_worker_ajp14_done( env, w, e);
       return err;
   }
   
   
   static int JK_METHOD
  -jk2_worker_ajp14_init(jk_env_t *env, jk_worker_t *ajp14)
  +jk2_worker_ajp14_init(jk_env_t *env, jk_bean_t *bean )
   {
  +    jk_worker_t *ajp14=bean->object;
       int  rc;
       int size;
       int i;
   
       if(ajp14->channel != NULL &&
  -       ajp14->channel->mbean->debug > 0 )
  -        ajp14->mbean->debug = 1;
  +       ajp14->channel->mbean->debug > 0 ) {
  +        ajp14->mbean->debug = ajp14->channel->mbean->debug;
  +    }
   
       if(ajp14->channel != NULL &&
          ajp14->channel->mbean->disabled  )
           ajp14->mbean->disabled = JK_TRUE;
       
  -    ajp14->endpointCache=jk2_objCache_create( env, ajp14->pool  );
  +    ajp14->endpointCache=jk2_objCache_create( env, ajp14->mbean->pool  );
           
       if( ajp14->endpointCache == NULL ) {
           env->l->jkLog(env, env->l, JK_LOG_ERROR,
  @@ -711,8 +723,9 @@
   
   
   static int JK_METHOD
  -jk2_worker_ajp14_destroy(jk_env_t *env, jk_worker_t *ajp14)
  +jk2_worker_ajp14_destroy(jk_env_t *env, jk_bean_t *bean)
   {
  +    jk_worker_t *ajp14=bean->object;
       int i;
   
       if( ajp14->mbean->debug > 0 ) 
  @@ -741,8 +754,6 @@
                         i);
       }
   
  -    ajp14->pool->close( env, ajp14->pool );
  -
       return JK_OK;
   }
   
  @@ -757,10 +768,7 @@
                         "ajp14.factory() NullPointerException\n");
           return JK_ERR;
       }
  -    w->pool = pool;
       w->cache_sz=-1;
  -    w->reqCnt=0;
  -    w->errCnt=0;
   
       jk2_map_default_create(env, &w->groups, pool);
   
  @@ -769,13 +777,17 @@
       w->channel= NULL;
       w->secret= NULL;
      
  -    w->init= jk2_worker_ajp14_init;
  -    w->destroy=jk2_worker_ajp14_destroy;
       w->service = jk2_worker_ajp14_service;
   
       result->setAttribute= jk2_worker_ajp14_setAttribute;
  -    result->getAttributeInfo=myAttInfo;
       result->getAttribute= jk2_worker_ajp14_getAttribute;
  +    result->init= jk2_worker_ajp14_init;
  +    result->destroy=jk2_worker_ajp14_destroy;
  +
  +    result->getAttributeInfo=jk2_worker_ajp14_getAttributeInfo;
  +    result->multiValueInfo=jk2_worker_ajp14_multiValueInfo;
  +    result->setAttributeInfo=jk2_worker_ajp14_setAttributeInfo;
  +
       result->object = w;
       w->mbean=result;
   
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to