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/04 01:32:43 UTC

cvs commit: jakarta-tomcat-connectors/jk/native/common jk_lb_worker.c

costin      02/05/03 16:32:43

  Modified:    jk/native/common jk_lb_worker.c
  Log:
  Patch from  Bernd Koecke, fixing the 'default worker'.
  
  Note that a '0' value means the worker will get _all_ requests.
  
  Revision  Changes    Path
  1.9       +13 -8     jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c
  
  Index: jk_lb_worker.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- jk_lb_worker.c	12 Jan 2002 05:27:39 -0000	1.8
  +++ jk_lb_worker.c	3 May 2002 23:32:43 -0000	1.9
  @@ -60,7 +60,7 @@
    *              several workers.                                           *
    * Author:      Gal Shachor <sh...@il.ibm.com>                           *
    * Based on:                                                               *
  - * Version:     $Revision: 1.8 $                                           *
  + * Version:     $Revision: 1.9 $                                           *
    ***************************************************************************/
   
   #include "jk_pool.h"
  @@ -291,7 +291,7 @@
           }            
       }
   
  -    if(rc) {
  +    if(rc && rc->lb_value != 0 ) {
           rc->lb_value += rc->lb_factor;                
       }
   
  @@ -328,8 +328,8 @@
                   if(rc && end) {
                       int src = end->service(end, s, l, &is_recoverable);
                       end->done(&end, l);
  -                    if(src) {                        
  -                        if(rec->in_recovering) {
  +                    if(src ) {                        
  +                        if(rec->in_recovering && rec->lb_value != 0) {
                               rec->lb_value = get_max_lb(p->worker) + ADDITINAL_WAIT_LOAD;
                           }
                           rec->in_error_state = JK_FALSE;
  @@ -433,12 +433,17 @@
                   p->lb_workers[i].name = jk_pool_strdup(&p->p, worker_names[i]);
                   p->lb_workers[i].lb_factor = jk_get_lb_factor(props, 
                                                                  worker_names[i]);
  -                p->lb_workers[i].lb_factor = 1/p->lb_workers[i].lb_factor;
  +                if(p->lb_workers[i].lb_factor < 0) {
  +                    p->lb_workers[i].lb_factor = -1 * p->lb_workers[i].lb_factor;
  +                }
  +                if (0 < p->lb_workers[i].lb_factor) {
  +                    p->lb_workers[i].lb_factor = 1/p->lb_workers[i].lb_factor;
  +                }
  +
                   /* 
                    * Allow using lb in fault-tolerant mode.
  -                 * Just set lbfactor in worker.properties to 0 to have 
  -                 * a worker used only when principal is down or session route
  -                 * point to it. Provided by Paul Frieden <pf...@dchain.com>
  +                 * A value of 0 means the worker will be used for all requests without
  +                 * sessions
                    */
                   p->lb_workers[i].lb_value = p->lb_workers[i].lb_factor;
                   p->lb_workers[i].in_error_state = JK_FALSE;
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>