EJB客户端没有收到答案

时间:2013-09-08 21:06:48

标签: java jboss ejb ejb-3.0 jboss5.x

我有部署了ejb3 bean的JBoss 5。

如果bean方法执行需要很长时间(我检查了2个小时),那么客户端在EJB方法执行完成时没有收到答案(有或没有异常)。

阻止客户端等待套接字响应。

为什么会这样?

1 个答案:

答案 0 :(得分:2)

这很可能是由(有状态的)路由器,数据包过滤器,负载均衡器,SSL盒之间引起的:它们只是在不活动的一段时间后终止连接,以及真正的端点没有得到通知。经验表明,每个设备中适当的超时通常无法控制。

无论如何,在你的情况下,而不是治愈症状:正在运行的请求需要一个开放的TCP连接,并可能阻止一个线程。因此,请考虑将系统设计从同步更改为异步

  • 在这里使用投票,每分钟都应该足够了。所以你有一个提交任务的功能,另一个返回“尚未准备好”或“这里是结果”。
  • 在您的客户端中使用 JMS队列来提交任务并接收结果