Author: rjung
Date: Sun Nov 19 05:26:00 2006
New Revision: 476817
URL: http://svn.apache.org/viewvc?view=rev&rev=476817
Log:
- Check if socket is still connected, even if socket_timeout=0.
- Change log message levels according to their real severity.
- Add a hint for the "all ... dead" message.
- Adding forgotten socket closes in certain error conditions
- Open a new connection when trying to send a new request,
even if all preexisting connections are unusable (backend
timeout).
Modified:
tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
URL:
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c?view=diff&rev=476817&r1=476816&r2=476817
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c Sun Nov 19
05:26:00 2006
@@ -1166,15 +1166,13 @@
while (IS_VALID_SOCKET(ae->sd)) {
int rc = 0;
err = 0;
- if (ae->worker->socket_timeout > 0) {
- if (!jk_is_socket_connected(ae->sd)) {
- jk_log(l, JK_LOG_INFO,
- "(%s) socket %d is not connected any more (errno=%d)",
- ae->worker->name, ae->sd, errno);
- jk_close_socket(ae->sd);
- ae->sd = JK_INVALID_SOCKET;
- err++;
- }
+ if (!jk_is_socket_connected(ae->sd)) {
+ jk_log(l, JK_LOG_DEBUG,
+ "(%s) socket %d is not connected any more (errno=%d)",
+ ae->worker->name, ae->sd, errno);
+ jk_close_socket(ae->sd);
+ ae->sd = JK_INVALID_SOCKET;
+ err=1;
}
if (ae->worker->prepost_timeout > 0 && !err) {
/* handle cping/cpong if prepost_timeout is set
@@ -1183,7 +1181,7 @@
*/
if (ajp_handle_cping_cpong(ae, ae->worker->prepost_timeout, l) ==
JK_FALSE)
- err++;
+ err=1;
}
/* If we got an error or can't send data, then try to get a pooled
@@ -1192,16 +1190,18 @@
if (err ||
((rc = ajp_connection_tcp_send_message(ae, op->request, l)) !=
JK_TRUE)) {
if (rc != JK_FATAL_ERROR) {
- jk_log(l, JK_LOG_INFO,
+ jk_log(l, JK_LOG_DEBUG,
"(%s) error sending request. Will try another pooled
connection",
ae->worker->name);
ajp_next_connection(ae, l);
}
else {
op->recoverable = JK_FALSE;
- jk_log(l, JK_LOG_INFO,
+ jk_log(l, JK_LOG_ERROR,
"(%s) error sending request. Unrecoverable operation",
ae->worker->name);
+ jk_close_socket(ae->sd);
+ ae->sd = JK_INVALID_SOCKET;
JK_TRACE_EXIT(l);
return JK_FALSE;
}
@@ -1219,8 +1219,8 @@
jk_log(l, JK_LOG_INFO,
"(%s) all endpoints are disconnected or dead",
ae->worker->name);
- JK_TRACE_EXIT(l);
- return JK_FALSE;
+ jk_log(l, JK_LOG_INFO,
+ "Increase the backend idle connection timeout or the
connection_pool_minsize");
}
/* Connect to the backend.
* This can be either uninitalized connection or a reconnect.
@@ -1632,6 +1632,8 @@
jk_log(l, JK_LOG_ERROR,
"(%s) Tomcat is down or network problems",
p->worker->name);
+ jk_close_socket(p->sd);
+ p->sd = JK_INVALID_SOCKET;
JK_TRACE_EXIT(l);
return JK_FALSE;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]