In the following setup (JDK 1.4):
1 MMBase 1.6.5 webapp with EditWizards
3 MMBase 1.6.5 webapps with live sites
Apache Tomcat/4.1.29 displays java.lang.OutOfMemoryError's while MMBase multicasts the changes that were made in EditWizard webapp to the other webapps. When you save a wizard with for example a news article with related urls and images, MMBase believes all these nodes were changed an will multicast these events over all 3 webapps.
I think the java.lang.OutOfMemoryError is caused because MMBase tries to start more threads than Tomcat can handle or is allowed to start (default its 75 in our set-up 60). Is this is a bug in MMBase? Should MMBase use a thread pool with a maximum number of threads? Or some sort of queuing mechanism which puts the multicast threads in a queu untill there is room to execute them?
---Andr�
Starting service Tomcat-Standalone
Apache Tomcat/4.1.29
Apr 13, 2004 12:29:31 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on port 8888
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start(Native Method)
at org.mmbase.module.core.MMBaseMultiCastProbe.start(MMBaseMultiCastProbe.java:95)
at org.mmbase.module.core.MMBaseMultiCastProbe.init(MMBaseMultiCastProbe.java:85)
at org.mmbase.module.core.MMBaseMultiCastProbe.<init>(MMBaseMultiCastProbe.java:81)
at org.mmbase.module.core.MMBaseMultiCast.handleMsg(MMBaseMultiCast.java:181)
at org.mmbase.module.core.MultiCastChangesReceiver.doWork(MultiCastChangesReceiver.java:141)
at org.mmbase.module.core.MultiCastChangesReceiver.run(MultiCastChangesReceiver.java:112)
at java.lang.Thread.run(Thread.java:536)
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start(Native Method)
at org.mmbase.module.core.MMBaseMultiCastProbe.start(MMBaseMultiCastProbe.java:95)
at org.mmbase.module.core.MMBaseMultiCastProbe.init(MMBaseMultiCastProbe.java:85)
at org.mmbase.module.core.MMBaseMultiCastProbe.<init>(MMBaseMultiCastProbe.java:81)
at org.mmbase.module.core.MMBaseMultiCast.handleMsg(MMBaseMultiCast.java:186)
at org.mmbase.module.core.MultiCastChangesReceiver.doWork(MultiCastChangesReceiver.java:141)
at org.mmbase.module.core.MultiCastChangesReceiver.run(MultiCastChangesReceiver.java:112)
at java.lang.Thread.run(Thread.java:536)
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start(Native Method)
at org.mmbase.module.core.MMBaseMultiCastProbe.start(MMBaseMultiCastProbe.java:95)
at org.mmbase.module.core.MMBaseMultiCastProbe.init(MMBaseMultiCastProbe.java:85)
at org.mmbase.module.core.MMBaseMultiCastProbe.<init>(MMBaseMultiCastProbe.java:81)
at org.mmbase.module.core.MMBaseMultiCast.handleMsg(MMBaseMultiCast.java:186)
at org.mmbase.module.core.MultiCastChangesReceiver.doWork(MultiCastChangesReceiver.java:141)
at org.mmbase.module.core.MultiCastChangesReceiver.run(MultiCastChangesReceiver.java:112)
at java.lang.Thread.run(Thread.java:536)
-- ------------------------------------------------------------------>><<-- Andr� van Toly http://www.toly.nl 06-27233562
