Re: zero down time with tc server and parallel deployment
Are the errors PermGen related?
A year or so ago I was working on a similar thing where we wanted to be able to hot redeploy the app, but after a few redeploys it would do what you describe, crash with PermGen memory errors. We were using plain Tomcat. A lot of research and we eventually started finding stuff about the class loaders not releasing all the resources. I'd have to dig back in my notes and emails to get more specific.
Eventually through trial and error I tracked it down to the MySQL JDBC driver. I think I remember creating a blank app with no database and redeploying it without problems, then once I added the JDBC driver it would exhibit the problem.
The fix was to move the JDBC driver out of the project and into Tomcat itself. So in the BuildConfig we changed the dependency to "provided 'mysql:mysql-connector-java:5.1.23'", and put the JDBC driver into the Tomcat's lib directory. We also changed the DataSource to use JNDI connections rather than putting the URLs there. So the DataSource.groovy would have something like this:
And then define the JNDI data source in Tomcat. After that we didn't have memory problems with redeployment.
At least until we started to add other libraries, a few times the problem would pop back up, and eventually we had to test every single time we added a dependency into the project, sometimes it would pop back up and we'd have to either try moving it outside Tomcat (which became a deployment process nightmare) or sometimes look for an alternative library.
I'm not sure if your problem is the same, but it sounds similar so hopefully that's helpful.