You can create threads all day in tomcat, but here are the importnatn things to consider:
- WHY! Are threads really the correct solution?
- If you create threads - what are their scope? Daemon, non-daemon?
- If you create non-daemon threads - be prepared for the consequences such as the JVM not going away on tomcat shutdown unless you have taken the needed precautions.
- If you create dameon only threads, be prepared for when tomcat shuts down and your daemon still has work to do because the JVM could exit before your thread is ready to complete its unit of work
- WHY! Are threads really the correct solution?
- And last but not least: WHY! Are threads really the correct solution?


-Tim

Riaan Oberholzer wrote:
I've mainly worked in BEA WebLogic before and from
colleagues and other sources I have heard it is not
recommended (and sometimes not allowed, some even
said) to create threads in your application. Indeed,
when the application went live in a multi-server
clustered environment, we got very inconsistent
results because of the threads, so we had to remove
them.

Question is, how safe is it to create threads in a
Tomcat web-app? I would assume "worker" threads are
ok, i.e. threads you create to do a specific task and
then it terminates. When you are guaranteed the thread
will terminate either because of an error or because
the assigned task has been completed.

But what about "monitor" threads, i.e. threads that
does a Thread.sleep(x) for an hour, check some
condition and goes back to sleep... some mechanism you
implement to e.g. do a task on a hourly/daily/weekly
base. You'd create the thread (and keep a handle to
it) in either an InitServlet.init() and then
Thread.interrupt() in the InitServlet.destroy(), or
you can do it in an ApplicationListener (something
like that) class which I think you can define in the
web.xml.

How else can you implement that (monitoring) in
Tomcat?


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to