IIS 7.5 , Tomcat 7 – Isapi redirector – Fail Over – sticky sessions

iisiis-7.5tomcat

I have two instances of Tomcat 7.0.8 running in the same machine (Tomcat7A and Tomcat7B) and IIS 7.5 acting as front-end load-balancer with isapi-redirector 1.2.31, running on Windows 2008 R2.
When i disconnect the instance wich is handling a request i can see a new instance being assigned with the same sessionid but then the user is redirected to the login page.

server.xml configuration file

<Engine name="Catalina" defaultHost="localhost" jvmRoute="Tomcat7A">

  <Realm className="org.apache.catalina.realm.LockOutRealm">
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
  </Realm>

  <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

  <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
             channelSendOptions="8">

      <Manager className="org.apache.catalina.ha.session.DeltaManager"
               expireSessionsOnShutdown="false"
               notifyListenersOnReplication="true"/>

      <Channel className="org.apache.catalina.tribes.group.GroupChannel">
        <Membership className="org.apache.catalina.tribes.membership.McastService"
                    address="228.0.0.8"
        bind="7.3.1.22"
                    port="45564"
                    frequency="500"
                    dropTime="3000"/>
        <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                  address="auto"
                  port="4200"
                  autoBind="100"
                  selectorTimeout="5000"
                  maxThreads="6"/>

        <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
          <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
        </Sender>
        <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
        <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
      </Channel>

      <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
             filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt"/>
      <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

      <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
      <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
    </Cluster>    

    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
           prefix="localhost_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" resolveHosts="false"/>

  </Host>
</Engine>

worker_mount_file=C:\tomcat\iis\conf\uriworkermap_prod.properties

worker.list = balancer,status

worker.Tomcat7B.host = 7.3.1.22
worker.Tomcat7B.type = ajp13
worker.Tomcat7B.port = 8010
worker.Tomcat7B.lbfactor = 10

worker.Tomcat7A.host = 7.3.1.22
worker.Tomcat7A.type = ajp13
worker.Tomcat7A.port = 8009
worker.Tomcat7A.lbfactor = 10

worker.balancer.type = lb
worker.balancer.sticky_session = 1
worker.balancer.balance_workers = Tomcat7B, Tomcat7A

worker.status.type = status

isapi_redirect log

[debug] wc_get_worker_for_name::jk_worker.c (116): found a worker balancer  
[debug] HttpExtensionProc::jk_isapi_plugin.c (2188): got a worker for name balancer  
[debug] service::jk_lb_worker.c (1118): service sticky_session=1    id='89569C584CC4F58740D649C4BE655D36.Tomcat7B'  
[debug] get_most_suitable_worker::jk_lb_worker.c (946): searching worker for partial sessionid   89569C584CC4F58740D649C4BE655D36.Tomcat7B  
[debug] get_most_suitable_worker::jk_lb_worker.c (954): searching worker for session route Tomcat7B  
[debug] get_most_suitable_worker::jk_lb_worker.c (968): found worker Tomcat7B (Tomcat7B) for route  Tomcat7B and partial sessionid 89569C584CC4F58740D649C4BE655D36.Tomcat7B
[debug] service::jk_lb_worker.c (1161): service worker=Tomcat7B route=Tomcat7B  
[debug] ajp_get_endpoint::jk_ajp_common.c (3096): acquired connection pool slot=0 after 0 retries  
[debug] ajp_marshal_into_msgb::jk_ajp_common.c (605): ajp marshaling done  
[debug] ajp_service::jk_ajp_common.c (2379): processing Tomcat7B with 2 retries  
[debug] jk_shutdown_socket::jk_connect.c (726): About to shutdown socket 820 [7.3.1.22:24482 -> 7.3.1.22:8010]
[debug] jk_shutdown_socket::jk_connect.c (797): shutting down the read side of socket 820 [7.3.1.22:24482 -> 7.3.1.22:8010]
[debug] jk_shutdown_socket::jk_connect.c (808): Shutdown socket 820 [7.3.1.22:24482 -> 7.3.1.22:8010] and read 0 lingering bytes in 0 sec.
[debug] ajp_send_request::jk_ajp_common.c (1496): (Tomcat7B) failed sending request, socket 820 is not connected any more (errno=-10000)
[debug] ajp_next_connection::jk_ajp_common.c (823): (Tomcat7B) Will try pooled connection socket 896 from slot 1
[debug] jk_shutdown_socket::jk_connect.c (726): About to shutdown socket 896 [7.3.1.22:24488 -> 7.3.1.22:8010]
[debug] jk_shutdown_socket::jk_connect.c (797): shutting down the read side of socket 896 [7.3.1.22:24488 -> 7.3.1.22:8010]
[debug] jk_shutdown_socket::jk_connect.c (808): Shutdown socket 896 [7.3.1.22:24488 -> 7.3.1.22:8010] and read 0 lingering bytes in 0 sec.
[debug] ajp_send_request::jk_ajp_common.c (1496): (Tomcat7B) failed sending request, socket 896 is not connected any more (errno=-10000)
[info] ajp_send_request::jk_ajp_common.c (1567): (Tomcat7B) all endpoints are disconnected, detected by connect check (2), cping (0), send (0)
[debug] jk_open_socket::jk_connect.c (484): socket TCP_NODELAY set to On
[debug] jk_open_socket::jk_connect.c (608): trying to connect socket 896 to 7.3.1.22:8010
[info] jk_open_socket::jk_connect.c (626): connect to 7.3.1.22:8010 failed (errno=61)
[info] ajp_connect_to_endpoint::jk_ajp_common.c (959): Failed opening socket to (7.3.1.22:8010) (errno=61)
[error] ajp_send_request::jk_ajp_common.c (1578): (Tomcat7B) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=61)
[info] ajp_service::jk_ajp_common.c (2543): (Tomcat7B) sending request to tomcat failed (recoverable), because of error during request sending (attempt=1)
[debug] ajp_service::jk_ajp_common.c (2400): retry 1, sleeping for 100 ms before retrying
[debug] ajp_send_request::jk_ajp_common.c (1572): (Tomcat7B) all endpoints are disconnected.
[debug] jk_open_socket::jk_connect.c (484): socket TCP_NODELAY set to On
[debug] jk_open_socket::jk_connect.c (608): trying to connect socket 896 to 7.3.1.22:8010
[info] jk_open_socket::jk_connect.c (626): connect to 7.3.1.22:8010 failed (errno=61)
[info] ajp_connect_to_endpoint::jk_ajp_common.c (959): Failed opening socket to (7.3.1.22:8010) (errno=61)
[error] ajp_send_request::jk_ajp_common.c (1578): (Tomcat7B) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=61)
[info] ajp_service::jk_ajp_common.c (2543): (Tomcat7B) sending request to tomcat failed (recoverable), because of error during request sending (attempt=2)
[error] ajp_service::jk_ajp_common.c (2562): (Tomcat7B) connecting to tomcat failed.
[debug] ajp_reset_endpoint::jk_ajp_common.c (757): (Tomcat7B) resetting endpoint with socket -1 (socket shutdown)
[debug] ajp_done::jk_ajp_common.c (3013): recycling connection pool slot=0 for worker Tomcat7B
[debug] service::jk_lb_worker.c (1374): worker Tomcat7B escalating local error to global error
[info] service::jk_lb_worker.c (1388): service failed, worker Tomcat7B is in error state
[debug] service::jk_lb_worker.c (1399): recoverable error... will try to recover on other worker
[debug] get_most_suitable_worker::jk_lb_worker.c (946): searching worker for partial sessionid 89569C584CC4F58740D649C4BE655D36.Tomcat7B
[debug] get_most_suitable_worker::jk_lb_worker.c (954): searching worker for session route Tomcat7B
[debug] get_most_suitable_worker::jk_lb_worker.c (1001): found best worker Tomcat7A (Tomcat7A) using method 'Request'
[debug] service::jk_lb_worker.c (1161): service worker=Tomcat7A route=Tomcat7B
[debug] ajp_get_endpoint::jk_ajp_common.c (3096): acquired connection pool slot=0 after 0 retries
[debug] ajp_marshal_into_msgb::jk_ajp_common.c (605): ajp marshaling done
[debug] ajp_service::jk_ajp_common.c (2379): processing Tomcat7A with 2 retries
[debug] ajp_send_request::jk_ajp_common.c (1572): (Tomcat7A) all endpoints are disconnected.
[debug] jk_open_socket::jk_connect.c (484): socket TCP_NODELAY set to On
[debug] jk_open_socket::jk_connect.c (608): trying to connect socket 896 to 7.3.1.22:8009
[debug] jk_open_socket::jk_connect.c (634): socket 896 [7.3.1.22:24496 -> 7.3.1.22:8009] connected
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): sending to ajp13 pos=4 len=615 max=8192
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0000     .4.c....HTTP/1.1
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0010     .../Accounter/pr
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0020     intFrameSet.jhtm
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0030     l...::1...::1...
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0040     localhost..P....
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0050     ...Keep-Alive...
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0060     ..0....rimage/jp
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0070     eg,.image/gif,.i
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0080     mage/pjpeg,.appl
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0090     ication/x-ms-app
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00a0     lication,.applic
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00b0     ation/xaml+xml,.
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00c0     application/x-ms
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00d0     -xbap,.*/*...Acc
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00e0     ept-Encoding...g
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00f0     zip,.deflate...A
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0100     ccept-Language..
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0110     .nb-NO....]Usern
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0120     ame=NA_jose.mati
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0130     as_AT_addenergy.
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0140     no;.JSESSIONID=8
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0150     9569C584CC4F5874
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0160     0D649C4BE655D36.
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0170     Tomcat7B.....loc
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0180     alhost.....http:
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0190     //localhost/Acco
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01a0     unter/NemsAccoun
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01b0     ter.jhtml....uMo
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01c0     zilla/4.0.(compa
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01d0     tible;.MSIE.8.0;
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01e0     .Windows.NT.6.1;
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01f0     .WOW64;.Trident/
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0200    4.0;.SLCC2;..NET
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0210     .CLR.2.0.50727;.
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0220     .NET4.0C;..NET4.
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0230     0E)............F
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0240     rameName=Reports
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0250     _CS_EUETS....Tom
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0260     cat7B...........
[debug] ajp_send_request::jk_ajp_common.c (1632): (Tomcat7A) request body to send 0 - request body to resend 0
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): received from ajp13 pos=0 len=238 max=8192
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0000     .....Moved.Tempo
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0010     rarily......OJSE
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0020     SSIONID=6A2507A4
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0030     626F698EC74A733C
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0040     DBA7D9FE.Tomcat7
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0050     A;.Path=/Account
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0060     er;.HttpOnly...P
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0070     ragma...no-cache
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0080     ...Cache-Control
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0090     ...no-cache....&
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 00a0     http://localhost
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 00b0     /Accounter/login
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 00c0     .jhtml.....text/
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 00d0     html;charset=ISO
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 00e0     -8859-1.....0...
[debug] ajp_unmarshal_response::jk_ajp_common.c (660): status = 302
[debug] ajp_unmarshal_response::jk_ajp_common.c (667): Number of headers is = 6
[debug] ajp_unmarshal_response::jk_ajp_common.c (723): Header[0] [Set-Cookie] = [JSESSIONID=6A2507A4626F698EC74A733CDBA7D9FE.Tomcat7A; Path=/Accounter; HttpOnly]
[debug] ajp_unmarshal_response::jk_ajp_common.c (723): Header[1] [Pragma] = [no-cache]
[debug] ajp_unmarshal_response::jk_ajp_common.c (723): Header[2] [Cache-Control] = [no-cache]
[debug] ajp_unmarshal_response::jk_ajp_common.c (723): Header[3] [Location] = [http://localhost/Accounter/login.jhtml]
[debug] ajp_unmarshal_response::jk_ajp_common.c (723): Header[4] [Content-Type] = [text/html;charset=ISO-8859-1]
[debug] ajp_unmarshal_response::jk_ajp_common.c (723): Header[5] [Content-Length] = [0]
[debug] start_response::jk_isapi_plugin.c (963): Starting response for URI '/Accounter/printFrameSet.jhtml' (protocol HTTP/1.1)
[debug] start_response::jk_isapi_plugin.c (1063): Not using Keep-Alive
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): received from ajp13 pos=0 len=2 max=8192
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0000     ................

[debug] ajp_process_callback::jk_ajp_common.c (1943): AJP13 protocol: Reuse is OK
[debug] ajp_reset_endpoint::jk_ajp_common.c (757): (Tomcat7A) resetting endpoint with socket 896
[debug] ajp_done::jk_ajp_common.c (3013): recycling connection pool slot=0 for worker Tomcat7A
[debug] HttpExtensionProc::jk_isapi_plugin.c (2211): service() returned OK
[debug] HttpFilterProc::jk_isapi_plugin.c (1851): Filter started
[debug] map_uri_to_worker_ext::jk_uri_worker_map.c (1036): Attempting to map URI '/localhost/Accounter/login.jhtml' from 8 maps
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/servlet/*=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/ws/*=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/nems*.pdf=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/*.service=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/*.jhtml=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/*.json=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/jkmanager=status' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/servlet/*=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/ws/*=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/nems*.pdf=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/*.service=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (850): Attempting to map context URI '/Accounter/*.jhtml=balancer' source 'uriworkermap'
[debug] find_match::jk_uri_worker_map.c (863): Found a wildchar match '/Accounter/*.jhtml=balancer'
[debug] HttpFilterProc::jk_isapi_plugin.c (1938): check if [/Accounter/login.jhtml] points to the web-inf directory
[debug] HttpFilterProc::jk_isapi_plugin.c (1954): [/Accounter/login.jhtml] is a servlet url - should redirect to balancer
[debug] HttpFilterProc::jk_isapi_plugin.c (1994): fowarding escaped URI [/Accounter/login.jhtml]
[debug] init_ws_service::jk_isapi_plugin.c (2982): Reading extension header HTTP_TOMCATWORKER0000000180000000: balancer
[debug] init_ws_service::jk_isapi_plugin.c (2983): Reading extension header HTTP_TOMCATWORKERIDX0000000180000000: 5
[debug] init_ws_service::jk_isapi_plugin.c (2984): Reading extension header HTTP_TOMCATURI0000000180000000: /Accounter/login.jhtml
[debug] init_ws_service::jk_isapi_plugin.c (2985): Reading extension header HTTP_TOMCATQUERY0000000180000000: (null)
[debug] init_ws_service::jk_isapi_plugin.c (3040): Applying service extensions
[debug] init_ws_service::jk_isapi_plugin.c (3298): Service protocol=HTTP/1.1 method=GET host=::1 addr=::1 name=localhost port=80 auth= user= uri=/Accounter/login.jhtml
[debug] init_ws_service::jk_isapi_plugin.c (3310): Service request headers=9 attributes=0 chunked=no content-length=0 available=0
[debug] wc_get_worker_for_name::jk_worker.c (116): found a worker balancer
[debug] HttpExtensionProc::jk_isapi_plugin.c (2188): got a worker for name balancer
[debug] service::jk_lb_worker.c (1118): service sticky_session=1 id='6A2507A4626F698EC74A733CDBA7D9FE.Tomcat7A'
[debug] get_most_suitable_worker::jk_lb_worker.c (946): searching worker for partial sessionid 6A2507A4626F698EC74A733CDBA7D9FE.Tomcat7A
[debug] get_most_suitable_worker::jk_lb_worker.c (954): searching worker for session route Tomcat7A
[debug] get_most_suitable_worker::jk_lb_worker.c (968): found worker Tomcat7A (Tomcat7A) for route Tomcat7A and partial sessionid 6A2507A4626F698EC74A733CDBA7D9FE.Tomcat7A
[debug] service::jk_lb_worker.c (1161): service worker=Tomcat7A route=Tomcat7A
[debug] ajp_get_endpoint::jk_ajp_common.c (3096): acquired connection pool slot=0 after 0 retries
[debug] ajp_marshal_into_msgb::jk_ajp_common.c (605): ajp marshaling done
[debug] ajp_service::jk_ajp_common.c (2379): processing Tomcat7A with 2 retries
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): sending to ajp13 pos=4 len=577 max=8192
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0000     .4.=....HTTP/1.1
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0010     .../Accounter/lo
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0020     gin.jhtml...::1.
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0030     ..::1...localhos
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0040     t..P.......Keep-
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0050     Alive.....0....r
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0060     image/jpeg,.imag
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0070     e/gif,.image/pjp
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0080     eg,.application/
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0090     x-ms-application
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00a0     ,.application/xa
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00b0     ml+xml,.applicat
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00c0     ion/x-ms-xbap,.*
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00d0     /*...Accept-Enco
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00e0     ding...gzip,.def
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 00f0     late...Accept-La
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0100     nguage...nb-NO..
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0110     ..]Username=NA_j
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0120     ose.matias_AT_ad
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0130     denergy.no;.JSES
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0140     SIONID=6A2507A46
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0150     26F698EC74A733CD
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0160     BA7D9FE.Tomcat7A
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0170     .....localhost..
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0180     ...http://localh
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0190     ost/Accounter/Ne
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01a0     msAccounter.jhtm
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01b0     l....uMozilla/4.
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01c0     0.(compatible;.M
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01d0     SIE.8.0;.Windows
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01f0     Trident/4.0;.SLC
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 01e0     .NT.6.1;.WOW64;.
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0200     C2;..NET.CLR.2.0
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0210     .50727;..NET4.0C
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0220     ;..NET4.0E).....
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0230     .......Tomcat7A.
[debug] ajp_connection_tcp_send_message::jk_ajp_common.c (1145): 0240     ................
[debug] ajp_send_request::jk_ajp_common.c (1621): (Tomcat7A) Statistics about invalid connections: connect check (0), cping (0), send (0)
[debug] ajp_send_request::jk_ajp_common.c (1632): (Tomcat7A) request body to send 0 - request body to resend 0
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): received from ajp13 pos=0 len=135 max=8192
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0000   .....OK.....Prag
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0010   ma...no-cache...
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0020   Expires...Thu,.0
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0030   1.Jan.1970.00:00
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0040   :00.GMT...Cache-
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0050   Control...no-cac
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0060   he...Cache-Contr
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0070   ol...no-store...
[debug] ajp_connection_tcp_get_message::jk_ajp_common.c (1329): 0080   ..2995..........

Best Answer

Setting up a cluster on the Tomcat side which does session replication often involves more than just editing server.xml. Often you have to mark your applications as "distributable" in web.xml, and potentially do other things. Also, all of the classes you put into a session must implement the serializable interface.

Finally, beware the Jakarta ISAPI plugin for IIS - it is a port from Apache mod_jk, and is quite broken, at least at high load. We have a 7-server tomcat cluster (300 req/sec peaks) and eventually switched to using nginx on Linux on the front end instead of IIS because the ISAPI_redirect.dll would spontaneously stop serving anything at high load (with nothing in the error logs and no other evidence of problems in perfmon). IIS 7.5 Application request routing plugin might be a better option if you want to stay all-windows.

Related Topic