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