Setting up a prod environment and I am going to use Tomcat 7 and plan on using the Application Manager to deploy my apps. Just dealing with web apps. I am looking for some advice as to the best way to set this up. I am going to run 6 applications on the same server, and was planning on using the same tomcat instance for all 6. Is this a good idea? I could install vmware and setup a specific vm for each app, is that overkill? These apps can be pretty resource intensive as there are queries that must run through very large amounts of data, approaching 1 million rows in some tables...
Anyway, just looking for tips/advice, if more info is required to answer please ask...
Joined: Sep 21, 2011
There is no particular problem with running 6 web apps in a single Tomcat instance. If you want to separate them a bit more from each other you could run multiple Tomcat instances, but then you'd have to use different ports (only one Tomcat instance can use port 80).
You may want to do that if you want to update one web app, but keep the others running during the update period. While Tomcat has the ability to unload and reload a web app, that generally results in some memory leaked, and eventually you'll run out of PermGenSpace. So you really want to restart Tomcat if you update individual web apps - which would downtime for all web apps.
A DB table with 1 million rows does not sound all that big - it'd be the DB that does the crunching, not the Tomcats, right? Or were you planning on selecting all rows and processing them in the app?
Joined: Dec 06, 2011
Well the problem is I am dealing with very old code, and it is not that efficient... a lot of processing and manipulating of the data is done in the jsp pages... It is just not in scope right now to make code changes, unfortunately...
We are migrating these apps to Tomcat 7 and upgrading our database server in order to try and speed up the apps... So far in testing this is working... I am just trying to be proactive and determine the best way to run these apps in production... Obviously these apps will see more user activity in prod and, unfortunately, our load testing is not really up to snuff... The good thing is these apps are rarely updated so there will not be much call for redeploying any of them very often...
My biggest concern is if one of the apps fails or crashes or whatever... What sort of impact would that have on the other apps if they are all running under the same Tomcat instance?
Joined: Sep 21, 2011
Java code generally does not crash very badly. Something may happen that -at worst- takes that whole web app out of commission, but unless one of the apps has a serious memory leak -which would eventually starve the whole JVM, and thus bring all apps to a stop- it's unlikely that one bad app can inflict much harm on the others.