A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.
Up here at Acme Widgets, we're using Apache Tomcat as part of a fancy IVR application that sits over our call center. Throughout a typical Production day, one of the log files will occasionally indicate that our IVR application's context is reloading.
Looking through the Tomcat documentation, this seems to be because the reloadable="true" element is set in the <Context> tag in one of the Tomcat configuration files. According to the Tomcat docs, reloadable="true" should only be used in a Development environment, given the high level of system overhead it creates.
As I'm new to this particular application, and the documentation is pretty scant, I'm trying to figure out why we've configured our Production application to run in this fashion. So, here are my questions:
1. What are some drawbacks of changing reloadable from true to false?
2. What might be causing our application to reload itself?
Thanks for the assistance!
At a guess, the people running the call center want the option of inserting new menu options or instructions on very short notice. If the application will reload itself, then all they have to do is copy the appropriate files to the server; Tomcat will make sure its not in the middle of serving a file to a customer before it restarts.
Thursday, July 05, 2007
Yes, generally that option is set for organizations that want to hot-deploy an app... as in without restarting Tomcat from the ground up.
On another note, Tomcat 4.1 is at least 3-4+ years old. Upgrading to something on the 5.x line would probably be a good idea.
Thursday, July 05, 2007
Well, for a start you could check the modification timestamps of the files in the deployment directory (not the actual directory where Tomcat deploys the files), but the directory to which the WAR file is copied to, before being uncompressed and deployed. Of importance is the web.xml timestamp, since changes to this, often force a Application context restart.
Secondly, ensure that Ant tasks are not reponsible for the periodic deployment. Hope this helps for now
Thanks for all the assistance.
The application is used at least once every hour, with peak usage time coming in the late morning (EST). There are two instances of the app running on two different boxes, so I've set one of them up with reloadable="false". We'll see if that makes a difference.
Not bad; just got a new job, and I'm already fixing critical production issues; I haven't even gotten my first paycheck, yet.
Uh... the fact that Tomcat is restarting, is a critical production issue?
Friday, July 06, 2007
The restarting, itself, isn't the issue. The problem is that occasionally, when the context reloads, the contained application dies, and does not come back up until much manual intervention is applied. So, that's the critical Production hit.
As I'm learning more about Tomcat, it appears that we're running this thing in some unique and interesting ways that should probably be tweaked, tuned, and revised (read: fixed).
I seem to have fixed the issue by correcting the entries in the server.xml file. Not bad for my first week on the jorb!
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz