Hi, we have seen a related post recently in this forum, where genman analyzed the situation and added a fix in the HEAD of Branch_3_2:
anonymous wrote : | revision 1.14.2.3 | date: 2004/01/13 19:21:25; author: genman; state: Exp; lines: +21 -1 | Throwable / Thread.interrupted must be caught/checked otherwise we lose JMS | ServerSession threads through PooledExecutor | (Looking at the sources, this sort of safety checking is done elsewhere.) | This is a fix for a "forum bug" | http://jboss.org/index.html?module=bb&op=viewtopic&p=3818218#3818218 | The forum entry disappeared and therefore we created a new topic. Our MDB is configured as a singleton (MaximumSize=1), so that the PooledExecutor gets configured as follows: | executor = new PooledExecutor(poolSize); // poolSize = 1 | executor.setMinimumPoolSize(0); | executor.setKeepAliveTime(1000 * 30); | executor.waitWhenBlocked(); | executor.setThreadFactory(new DefaultThreadFactory()); | If the only thread in this thread pool dies, the mininmum size of 0 prevents the generation of new threads. In an e-mail discussion Doug Lea (creator of the util.concurrent package) explained why the thread should die rather than catch any exception: anonymous wrote : | Yes, this is a documented feature, not a bug. Threads dying from | uncaught exceptions are discarded because you cannot tell if they are | in usable states. | | I believe that the unexpected consequence of this in your case is that | it will only replace such threads with new ones if there are fewer | than the minimum number of threads. (See method workerDone()). If you | would like them replaced in such cases, you could increase the minimum | value. | So we think that minimum size of the thread pool should be 1 (as in the other two thread pools in the OIL2 and UIL2). Doug said about the above configuration: anonymous wrote : | I have mentioned several times to people using JBoss that setting a | minimum size of zero is usually a bad idea because it interacts badly | with other policies and settings. It cannot be disallowed, because | there ARE legitimate uses for this, but they are not common. | IMHO, genman should also review his change to catch the Throwable: Log the exception/error thrown and let the thread die. The PooledExecutor will create a new one if needed. Is it possible to build a separate org.jboss.jms.asf package jar which contains the above fixes and can be added to the current 3.2.3 release? Thanks in advance and regards Joerg View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3822160#3822160 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3822160 ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user