我在Wildfly 8.2.0下运行的一台服务器上遇到一种非常奇怪的情况。我们在相同的jboss版本上托管了一个Web应用程序。它的多个实例正在连接到biz实例中的远程服务,该实例负责业务逻辑。只有1个biz实例。 biz实例静止不动,因此所有其他情况保持不变。 使用jstack进行分析后,我发现所有200个线程都卡在一个方法中:
"EJB default - 173" #917 prio=5 os_prio=0 tid=0x00007fa5c0028000 nid=0x53c6 waiting on condition [0x00007fa58bc0e000]
(对于线程1至200)。但是,它们全部都停留在相同的方法中,但是该方法被标记为@Asynchronous
@Asynchronous
public void increaseOrderCount(final int orderId) {
请问我的问题。 Wildfly是否有可能在 synchronous 和 asynchronous 调用中重用同一线程池?我的意思是,这听起来像是一个整体体系结构缺陷,但这是唯一的解释,为什么异步池中的线程用完也会停止同步请求。
Java 8,Wildfly 8.2.0 Final