Re: mod_jk socket_timeout vs reply_timeout
To be honest I got a bit confused by that reply so I delved into the source code (although my C is somewhat rusty). So as I see it the socket_timeout is the read/write timeout for the underlying TCP socket (ie at OS level, and set by setsockopt() or whatever), and any given socket could be used for multiple "in-flight" communications between Apache and Tomcat. Whereas the reply_timeout is an internal timeout for a specific request, ie the socket could be functioning fine but a specific reply is too late to be useful. So socket_timeout is helpful against servers that have totally failed, or networks that have fallen apart, but reply_timeout is good for defending against a box that is perhaps so loaded that replies are coming too slowly to be useful. So in general I would speculate that setting both is a good plan, but socket_timeout ought to be longer than reply_timeout, perhaps by quite a significant factor. Settings the other way around would make no sense at all I imagine, perhaps the mod_jk docs ought to be updated to include a suitable comment to that effect? Mark On Wed, 2006-12-13 at 10:01 -0500, Martin Gainty wrote: > Hi Mark > the delta is socket_timeout is a universal timeout for the connection more > specifically > Socket timeout in seconds used for communication channel between JK and > remote host. If remote host does not respond inside that timeout the JK will > generate an error, and retry again. If set to value zero (default) the JK > will wait for infinite on all socket operations. > What to do if the tomcat connection_timeout is set lower than the socket > timeout from AJP? > > on the other hand > reply-timeout gets replies from tomcat via ajp13/ajp14 > there are 3 conditions which would cause the reply from tomcat to abort > (recovery_options are set in workers.properties) > 1)tomcat is down or experienced network problems > marked unrecoverable if recovery_options has > RECOVER_ABORT_IF_TCGETREQUEST (recovery_options=1) or > RECOVER_ABORT_IF_TCSENDHEADER (recovery_options=2) > set > > 2)tomcat is down or refuses connection > marked unrecoverable if recovery_options has RECOVER_ABORT_IF_TCGETREQUEST > (recovery_options=1) set > > 3)tomcat is down or experienced network problem in which case a partial > response has been sent back to client > marked unrecoverable if RECOVER_ABORT_IF_TCSENDHEADER (recovery_options=2) is > set > > --- > This e-mail message (including attachments, if any) is intended for the use > of the individual or entity to which it is addressed and may contain > information that is privileged, proprietary , confidential and exempt from > disclosure. If you are not the intended recipient, you are notified that any > dissemination, distribution or copying of this communication is strictly > prohibited. > --- > Le présent message électronique (y compris les pièces qui y sont annexées, le > cas échéant) s'adresse au destinataire indiqué et peut contenir des > renseignements de caractère privé ou confidentiel. Si vous n'êtes pas le > destinataire de ce document, nous vous signalons qu'il est strictement > interdit de le diffuser, de le distribuer ou de le reproduire. > - Original Message ----- > From: "Mark Hagger" <[EMAIL PROTECTED]> > To: "Tomcat Users List" > Sent: Wednesday, December 13, 2006 7:08 AM > Subject: mod_jk socket_timeout vs reply_timeout > > > > Hi, > > > > I'm just considering an update to our workers.properties for the mod_jk > > Apache plugin. > > > > I'm not entirely sure what the difference between the socket_timeout and > > reply_timeout handling is, if any. > > > > socket_timeout is described as: > > > > Socket timeout in seconds used for communication channel between JK and > > remote host. If remote host does not respond inside that timeout the JK > > will generate an error, and retry again. If set to value zero (default) > > the JK will wait for infinite on all socket operations. > > > > whereas reply_timeout is: > > > > Reply_timeout property told webserver to wait some time for reply to a > > forwarded request before considering the remote tomcat is dead and > > eventually switch to another tomcat in a cluster group. > > > > These sound very similar concepts to me, should you set both to the same > > time? Or only ever set one of them? Or am I missing a crucial > > distinction here? > > > > Mark > > > > > > > >
Re: mod_jk socket_timeout vs reply_timeout
Hi Mark the delta is socket_timeout is a universal timeout for the connection more specifically Socket timeout in seconds used for communication channel between JK and remote host. If remote host does not respond inside that timeout the JK will generate an error, and retry again. If set to value zero (default) the JK will wait for infinite on all socket operations. What to do if the tomcat connection_timeout is set lower than the socket timeout from AJP? on the other hand reply-timeout gets replies from tomcat via ajp13/ajp14 there are 3 conditions which would cause the reply from tomcat to abort (recovery_options are set in workers.properties) 1)tomcat is down or experienced network problems marked unrecoverable if recovery_options has RECOVER_ABORT_IF_TCGETREQUEST (recovery_options=1) or RECOVER_ABORT_IF_TCSENDHEADER (recovery_options=2) set 2)tomcat is down or refuses connection marked unrecoverable if recovery_options has RECOVER_ABORT_IF_TCGETREQUEST (recovery_options=1) set 3)tomcat is down or experienced network problem in which case a partial response has been sent back to client marked unrecoverable if RECOVER_ABORT_IF_TCSENDHEADER (recovery_options=2) is set --- This e-mail message (including attachments, if any) is intended for the use of the individual or entity to which it is addressed and may contain information that is privileged, proprietary , confidential and exempt from disclosure. If you are not the intended recipient, you are notified that any dissemination, distribution or copying of this communication is strictly prohibited. --- Le présent message électronique (y compris les pièces qui y sont annexées, le cas échéant) s'adresse au destinataire indiqué et peut contenir des renseignements de caractère privé ou confidentiel. Si vous n'êtes pas le destinataire de ce document, nous vous signalons qu'il est strictement interdit de le diffuser, de le distribuer ou de le reproduire. - Original Message - From: "Mark Hagger" <[EMAIL PROTECTED]> To: "Tomcat Users List" Sent: Wednesday, December 13, 2006 7:08 AM Subject: mod_jk socket_timeout vs reply_timeout > Hi, > > I'm just considering an update to our workers.properties for the mod_jk > Apache plugin. > > I'm not entirely sure what the difference between the socket_timeout and > reply_timeout handling is, if any. > > socket_timeout is described as: > > Socket timeout in seconds used for communication channel between JK and > remote host. If remote host does not respond inside that timeout the JK > will generate an error, and retry again. If set to value zero (default) > the JK will wait for infinite on all socket operations. > > whereas reply_timeout is: > > Reply_timeout property told webserver to wait some time for reply to a > forwarded request before considering the remote tomcat is dead and > eventually switch to another tomcat in a cluster group. > > These sound very similar concepts to me, should you set both to the same > time? Or only ever set one of them? Or am I missing a crucial > distinction here? > > Mark > > > > > This email has been scanned for all known viruses by the MessageLabs SkyScan > service. > > - > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >
mod_jk socket_timeout vs reply_timeout
Hi, I'm just considering an update to our workers.properties for the mod_jk Apache plugin. I'm not entirely sure what the difference between the socket_timeout and reply_timeout handling is, if any. socket_timeout is described as: Socket timeout in seconds used for communication channel between JK and remote host. If remote host does not respond inside that timeout the JK will generate an error, and retry again. If set to value zero (default) the JK will wait for infinite on all socket operations. whereas reply_timeout is: Reply_timeout property told webserver to wait some time for reply to a forwarded request before considering the remote tomcat is dead and eventually switch to another tomcat in a cluster group. These sound very similar concepts to me, should you set both to the same time? Or only ever set one of them? Or am I missing a crucial distinction here? Mark This email has been scanned for all known viruses by the MessageLabs SkyScan service. - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]