2

我们的应用程序通过 EJB 上的 @Asynchronous 注解启动了一系列线程。但是,JBoss(与相反)并不限制启动的线程数。调试表明它使用的是默认类,而不是在上述问题中链接的 XML 中配置的类。课堂上的评论说:

Static singleton access to a default java.util.concurrent.ExecutorService
implementation used by clients who do not supply a
org.jboss.ejb3.async.spi.AsyncInvocation to handle asynchronous
EJB 3.1 invocations.

所以问题是在什么情况下 JBoss 不提供org.jboss.ejb3.async.spi.AsyncInvocation类,你如何确保这确实发生?

4

1 回答 1

1

默认情况下,JBoss AS 6.1 确实应该限制线程数,但由于一个错误,这根本不会发生。遗憾的是,全局设置在没有警告的情况下被忽略了。

如果它不涉及太多的bean,您可以使用org.jboss.ejb3.annotation.Pool注释:

@Pool(value = POOL_IMPLEMENTATION_STRICTMAX, maxSize = 10)
public class SomeBean {
    // ...
}

不过要小心,如果我没记错的话,这将为每个 bean 创建一个池。

于 2012-08-14T18:10:00.233 回答