https://issues.apache.org/bugzilla/show_bug.cgi?id=47840

--- Comment #3 from Eiji Takahashi <mashm...@gmail.com> 2009-09-28 01:52:18 PDT 
---
I used your patch. However, the problem still remains.

---
I am setting jvmRoute of Tomcat as follows.
Tomcat-1
 <Engine name="Catalina" defaultHost="localhost" jvmRoute="dom01.node01">
Tomcat-2
 <Engine name="Catalina" defaultHost="localhost" jvmRoute="dom01.node02">

In this case, Tomcat returns the following sessionsid. 
 JSESSIONID=xxxxxxx.dom01.node01
 or
 JSESSIONID=xxxxxxx.dom01.node02

When a browser sends these sessionid, the following codes are not executed. 
    828         if (!JK_WORKER_USABLE_STICKY(states[wr.i], activation)) {
    829             /* We have a worker that is error state or stopped.
    830              * If it has a redirection set use that redirection worker.
    831              * This enables to safely remove the member from the
    832              * balancer. Of course you will need a some kind of
    833              * session replication between those two remote.
    834              */
    835             if (p->sticky_session_force)

Because,
 * Line 813: find_by_session returns -1.
  * session_route = "dom01.node01" or "dom01.node02"
  * lb_workers[i].route = "node01" or "node02"

 * Line 816: find_best_bydomain returns 0 or 1.
  * session_route = "dom01.node01"(or "dom01.node02"), and domain_len = 5
  * wr.domain = "dom01"

 * JK_WORKER_USABLE_STICKY is true.
  * lb status is JK_LB_STATE_OK
  * activation is JK_LB_ACTIVATION_ACTIVE

    804 static int find_bysession_route(jk_ws_service_t *s,
    805                                 lb_worker_t *p,
    806                                 const char *session_route,
    807                                 int *states,
    808                                 jk_logger_t *l)
    809 {
    810     int uses_domain  = 0;
    811     int candidate = -1;
    812
    813     candidate = find_by_session(s, p, session_route, l);
    814     if (candidate < 0) {
    815         uses_domain = 1;
    816         candidate = find_best_bydomain(s, p, session_route, states, l);
    817     }

s->route is set by the following codes. 
    821         if (uses_domain)
    822             s->route = wr.domain;

Best regards.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to