In my code, I have a ServletContextListener (configured in web.xml or similar file, don't remember exactly), so when the servlet context is created it calls contextInitialized(ServletContextEvent). In this function I start the daemon threads. There is a function contextDestroyed which you can use to stop the threads (but note Thread.stop is deprecated).
It sounds like a good idea to start these background threads in a new process. However, I don't know if you can do this in a hosted web server environment like the kind you find at mochahost.com and dailyrazor.com. Will need to test it out. --- On Tue, 11/18/08, Christopher Schultz <[EMAIL PROTECTED]> wrote: > From: Christopher Schultz <[EMAIL PROTECTED]> > Subject: Re: Tomcat vs Daemons > To: "Tomcat Users List" <users@tomcat.apache.org> > Date: Tuesday, November 18, 2008, 1:35 PM > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Nathan, > > Nathan Thatcher wrote: > > I am porting an application from Windows to Linux > which makes heavy use of > > servlets. I have a fairly intensive background process > (currently a windows > > service) that requires no user interaction. I plan to > rewrite the code in > > Java and I am wondering if there is any notable > performance difference > > between running the Java code under Tomcat as opposed > to running the code > > directly as a daemon. > > Not really, but I don't see a compelling reason to run > something under a > servlet container if it doesn't actually need to be > running inside a > servlet container. Is also simplifies testing, deployment, > etc if you > leave it separate. > > > Since the application requires Tomcat, I know I can > > code it up as a servlet and kick off the processing in > the init() function > > and not worry about executing the code directly as a > daemon. > > While this certainly will work (I'm assuming you're > kicking-off a thread > to do this work), it's a pretty big hack ;) > > > Since this is a > > performance sensitive process I want to make sure that > I choose the optimal > > route. > > So, you want to make sure that the process itself gets > enough CPU time? > I think you want to be able to control this process > separately from your > webapps. *NIX has finer-grained levels of process priority > than > Microsoft Windows does (at least, those that are exposed to > the user), > and you can use the program "nice" to run a job > with higher or lower > priority (note there is no "mean" command... you > just use a negative > "niceness" value). > > > Does anybody know how java code running as a servlet > compares > > performance-wise to the same code running as a daemon? > Is one way generally > > better than the other? > > Once your code starts up, there should be no performance > difference > since you're not adding any overhead from the container > (that is, you > don't have to use any of their classes or objects or > anything). The only > problem is that it's running in the same JVM as the > actual servlets in > your application. > > I'd keep it as a separate application if I were you. > > - -chris > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (MingW32) > Comment: Using GnuPG with Mozilla - > http://enigmail.mozdev.org > > iEYEARECAAYFAkkjNTsACgkQ9CaO5/Lv0PBEogCfVE3yTS6SV/BSpK810P2XYtW/ > HX8AoMKeCUSOK2tlDLHdVWLzGRtCUZaI > =Q41d > -----END PGP SIGNATURE----- > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]