Hi.

This is all very nicely explained, but maybe irrelevant.
As far as I understand, the OP is trying to connect to the "shutdown port" mentioned in the <Server> tag, not to a <Connector>. On that shutdown port, there should not be so many connection requests that they outrun the ability of Tomcat to accept a connection on it. I have a suspicion that the client does not connect to Tomcat though, maybe not even to the Tomcat host.
But the OP did not really provide enough information to validate or invalidate 
that suspicion.

Daniel Baktiar wrote:
Hi Vishveswara,

If you look at the behavior of ServerSocket, or any BSD-like listening
server socket in general, there is something called 'backlog'.
http://download.oracle.com/javase/1.4.2/docs/api/java/net/ServerSocket.html

In short, backlog is something like a queue, if all your worker thread
occupied, the listening server socket is allowed to hold and queue n number
of connecting socket. Only when the all threads occupied and backlog full
then you will get "connection refused". The connection socket in the backlog
is silently accepted but not served yet. If the connection socket was held
in the backlog for quite some time (e.g. due to existing worker threads
still busy), until it is time out for the connection client socket, then
that what you have said may occur: the Tomcat is up and running, yet the
connection client socket  java.net.ConnectException: Connection timeout:
connect.

So, what you can detect by a connection client socket is not "whether Tomcat
is up and running", instead "whether Tomcat is up and running and able to
accept and process one more client socket within the client time out
interval". There are cases where "Tomcat is up and running" but "is not able
to accept and process one more client socket within the client time out
interval" (which is the case when "java.net.ConnectException: Connection
timeout: connect" happens).

There is an "acceptCount" attribute in server.xml <Connector /> which
specifies the backlog. If you set this to 0, it may behave the way you want,
but you have to test yourself whether that will be good for the system
behaviour and performance from the user point of view.

---
daniel baktiar

On Thu, Sep 22, 2011 at 18:30, vishveswara chary varanasi <
vvchary.varan...@gmail.com> wrote:

Tomcat community has a wiki which providded the

http://wiki.apache.org/tomcat/HowTo#How_do_I_check_whether_Tomcat_is_UP_or_DOWN.3F_There_is_no_status_command

i have tried to connect to tomcat using sockect connection on the port
where the tomcat running

 Socket socket = new Socket("hostname", port);

this works some time and some time even if the tomcat is up and
runnning this is throwing the java.net.ConnectException: Connection
timed out: connect.

please help me how i can test that whether tomcat is up and running on
a remote machine from a client machine.

Thanks

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





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

Reply via email to