dBenjamin wrote:
Thanks for helping...
Can you please find my scenario?

We could probably help better if we understood exactly what you are
trying to achieve (and why), which is not very clear at the moment.

1.      I am using windows Environment.

Ok, but are you running Tomcat as a Windows Service, or as an
application in a command window ?

If you are running Tomcat as an application in a command window, then
when the user who started Tomcat logs off, Tomcat will stop.


2.      I am using tomcat 6 binary distribution versions here we cannot get pid
from the windows.

I do not understand why not.
Try the command "netstat -b" and look at the last column. It shows the pid of the process using each port.
Look at the help for the netstat command for more options.

3.      For my requirement before starting the tomcat server I need to verify 
the
port availability if any other application using then I have change both
shutdown port and http port.

One way to do this (maybe the only way) is to change the
(tomcat_dir)/conf/server.xml file, *before* starting Tomcat.
You cannot start Tomcat and change these ports afterward.
It is too late then, because Tomcat will already have tried to open
these ports, and fail to start if they are already in use.

 I facing problem to change the port address, I
am validating shutdown port using socket

what do you mean ?

 and http port using java.net
package.

what do you mean ?


All you need to know, before starting Tomcat, is if these ports are already in use. You can do that with the same method for both ports. There is no reason to use a different mechanism for each port.


Maybe have a look at this :

1)
*Before* you start Tomcat, open a Windows command window.
Let's call this "window A".
In window A, run the command

netstat -abn -p TCP

and read the lines that are output by that command.
The lines which have "LISTEN" in it are the interesting ones. They show what listening ports are already used, and by which process.

2) Now open another command window B, and go to the top directory where you installed Tomcat (for example, c:\apache-tomcat-6.0.24).
Then start Tomcat, using the command :
bin\startup.bat
Tomcat should start, in a 3rd command window C.

3) Now, in the command window A, enter the same command again :
netstat -abn -p TCP
Now you should see 2 additional LISTEN ports, and you should see that they are "used" by the process which runs Tomcat. You should see 2 lines like this :
TCP    0.0.0.0:8080  0.0.0.0:0   ABHÖREN    1164 [java.exe]
TCP    127.0.0.1:8005  0.0.0.0:0 ABHÖREN    1164 [java.exe]

(instead of ABHÖREN, you will see LISTEN, if your Windows speaks English)
In my case, the shutdown port of Tomcat is 8005, and the HTTP port is 8080. That is why I get the 2 lines above.

4) By default, the Tomcat shutdown port is 8005, and the shutdown string is "SHUTDOWN".
So now, in the same window A, enter this command :
telnet localhost 8005

and you should get a new line. On this new line, type
SHUTDOWN
(in capitals, and you will not see it on the screen, because Tomcat does not echo this) If you finish this line by the <CR> key, you will see the Tomcat running in Windows C shutting down (and window C will close).

-------------------------------------------

It would be better if you tried to explain what you want to do and why you want to do that. Do not explain how you want to do it, let us suggest a way.

But now I will try to guess what you want to do, and trying to recommend a way of doing it.

- you want to start Tomcat, and you want to make sure that it starts.
For that, you need to be sure that the ports which Tomcat needs to open, are not already used by something else. - and after Tomcat is started, you want to be able to shut it down programmatically.

So, do as follows :
- create a standard server.xml file for Tomcat, which uses port 8005 for the shutdown, and 80 for the HTTP port
- use the command
netstat -abn -p TCP
to find out if the ports 8005 and 80 are "free".
If yes, you can start Tomcat "as is".
- if not, you have to modify the server.xml file to use 2 ports that are free, and *then* start Tomcat.
- when Tomcat is started, note the port finally chosen for the shutdown port
- then do whatever you want to do with Tomcat
- to stop Tomcat, open a TCP socket connection to localhost:xxxx (where xxxx is that shutdown port), send the string "SHUTDOWN" on that connection, followed by a CR/LF port. Then close this socket.
This should be enough to shut down Tomcat.

It will be different if Tomcat is running as a Windows Service.



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

Reply via email to