It sounds a bit to me like you are using the little Tomcat deployment manager thing. I basically have no experience with that, just so you know. That said, where I work we use two settings.
In the server.xml file, the context has the attribute reloadable="true".
All we have to do is place the WAR file in the right spot and Tomcat unpacks it and reloads it, no problem.
Now when I looked it up, the official configuration reference says:
"This feature is very useful during application development, but it requires significant runtime overhead and is not recommended for use on deployed production applications."
Like I said, we've never had problems. Our systems process a large number of requests and we don't seem to have a problem. We've never benchmarked the two configurations against each other though.
You might want to give it a try. At least you would learn if it is happy enough to reload things when done that way. You can check the performance as well to see if it's a problem for you.
I should note that every once in a while things just don't go right and we have to restart Tomcat anyway, but that's relatively rare.
If this works, all you need to do is have a script copy the WAR in the right spot and monitor to make sure things work. After enough deploys Tomcat will run out of permgen space, so you have to be aware that you might need to restart Tomcat by hand anyway.
Other random guesses:
- Are you FTPing directly into the final WAR location? Maybe Tomcat is just trying to open it too early?
- Are you getting any kind of error message? Maybe that could help you track the problem down?
- Have you tried other versions of Tomcat (if available to you)? Maybe 5.5 doesn't have the problem (or 5.0 if you're on 5.5)? Maybe just a newer point release?