tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
Subject Re: Tomcat 6 - Cluster error.
Date Tue, 22 Jan 2008 23:35:51 GMT
the error is because a member disappeared, the cluster code should not 
be doing
channel.send(channel.getMembers());

but it should be doing
channel.getMembers() can return an empty array, correct your code to do this
Member[] dest = channel.getMembers();
if(dest.length>0)channel.send(dest)

Filip


Raúl García wrote:
> Hi again, 
> I'm getting an error when one of the nodes are shutdown and I make a hit to
> the server.
>
> Seems like the node 2, is trying to send the session to the other node (But
> is offline)
>
> LOG_INSTANCE-2
> ===============
> === I lauch the shutdown command of node1: ====
> 21-ene-2008 17:15:10
> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector
> memberDisappeared
> INFO: Verification complete. Member
> disappeared[org.apache.catalina.tribes.membership.MemberImpl[tcp://localhost
> .localdomain:4001,localhost.localdomain,4001, alive=161284,id={-87 -124 123
> -76 30 -1 76 49 -120 -67 -116 87 -2 59 77 29 }, payload={}, command={66 65
> 66 89 45 65 76 69 88 ...(9)}, domain={}, ]]
> 21-ene-2008 17:15:10 org.apache.catalina.ha.tcp.SimpleTcpCluster
> memberDisappeared
> INFO: Received member
> disappeared:org.apache.catalina.tribes.membership.MemberImpl[tcp://localhost
> .localdomain:4001,localhost.localdomain,4001, alive=161284,id={-87 -124 123
> -76 30 -1 76 49 -120 -67 -116 87 -2 59 77 29 }, payload={}, command={66 65
> 66 89 45 65 76 69 88 ...(9)}, domain={}, ]
> 21-ene-2008 17:15:33 org.apache.catalina.ha.tcp.SimpleTcpCluster send
>
> == Now I browse to http://localhost/MyServlet =====
>
> SEVERE: Unable to send message through cluster sender.
> org.apache.catalina.tribes.ChannelException: No destination given; No faulty
> members identified.
>         at
> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:194)
>         at
> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:175)
>         at
> org.apache.catalina.ha.tcp.SimpleTcpCluster.send(SimpleTcpCluster.java:835)
>         at
> org.apache.catalina.ha.tcp.SimpleTcpCluster.sendClusterDomain(SimpleTcpClust
> er.java:814)
>         at
> org.apache.catalina.ha.session.DeltaManager.send(DeltaManager.java:586)
>         at
> org.apache.catalina.ha.session.DeltaManager.sessionExpired(DeltaManager.java
> :1211)
>         at
> org.apache.catalina.ha.session.DeltaSession.expire(DeltaSession.java:366)
>         at
> org.apache.catalina.ha.session.DeltaSession.expire(DeltaSession.java:352)
>         at
> org.apache.catalina.session.StandardSession.expire(StandardSession.java:660)
>         at
> org.apache.catalina.session.StandardSession.invalidate(StandardSession.java:
> 1111)
>         at
> org.apache.catalina.session.StandardSessionFacade.invalidate(StandardSession
> Facade.java:150)
>         at pad.kernel.Resolver.service(Resolver.java:623)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:290)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:206)
>         at pad.kernel.EntryPointFilter.doFilter(EntryPointFilter.java:365)
>         at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:235)
>         at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:206)
>         at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:219)
>         at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:175)
>         at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128
> )
>         at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102
> )
>         at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :109)
>         at
> org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:347
> )
>         at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
>         at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>         at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http
> 11Protocol.java:584)
>         at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>         at java.lang.Thread.run(Thread.java:619)
>
> --> Every new hit at the sever provokes a new:
> "SEVERE: Unable to send message through cluster sender.[...]"
>
>
> This is a normal issue? Or it can be desactivated?
>
> Thanks
> Best regards
> Raúl.
>
>
> -----Mensaje original-----
> De: Raúl García [mailto:rgarcia@emovilia.com] 
> Enviado el: viernes, 18 de enero de 2008 11:23
> Para: 'Tomcat Users List'
> Asunto: RE: Tomcat 6 - Cluster error.
>
> Hi Filip, 
>
> Thank you for that suggestion. We are going to try it now.
>
> On the other side, if You want to reproduce the error:
>
> We have used a server here configured with the same config.xml files.
> To force it to the "crash" we send a high amount of "login" request (Those
> that creates a new session), for a long time. Not always, but this can
> reproduce the error without having to wait 12 days.
>
> At the moment, we tried once the new keepAliveCount="0", and both nodes
> worked perfectly during the "experiment" (45 min, 11.000 hits).
>
> It will be a pleasure that you get the debug error, let me know anything
> more you need.
>
> Thank you for the response.
>
> We will see the real results in 13 days, I'll update.
>
> Best Regards
> Raúl.
>
> -----Mensaje original-----
> De: Filip Hanik - Dev Lists [mailto:devlists@hanik.com] 
> Enviado el: jueves, 17 de enero de 2008 19:01
> Para: Tomcat Users List
> Asunto: Re: Tomcat 6 - Cluster error.
>
> already replied to your old thread
>
> ok, it looks like you might have ended up with a rogue socket,
> and what happens is that any message sent to that socket just gets lost 
> in the ether, since it doesn't have any interest ops.
> There is a workaround for this, turn off keep alives all together, or 
> implement a keep alive timeout
>
> Option 1 - no keep alives at all
>
> <Transport 
> className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"
>           timeout="60000"
>           keepAliveCount="0"/>
>
> Option 2 - implement a keep alive timeout
>
> <Transport 
> className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"
>           timeout="60000"
>           keepAliveTime="120000"/>
>
> or make a combination of both values
>
> either option should work for you.
>
> On a side note, I'm interested if the scenario you run into is 
> reproducible, it keeps happening over and over again, then if possible, 
> I'd like to get some debug logs from you
>
> Filip
>
>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@tomcat.apache.org
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
>   


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message