【发布时间】:2012-02-24 10:30:42
【问题描述】:
我知道我不能修改 EJB 容器中的线程,因此我不知道如何在 EJB 环境中以正确的方式执行以下操作:
参与人员:
- 无状态会话 Bean“客户端”
- 无状态会话 Bean“服务器”
- 消息队列“队列”
- 消息驱动 Bean“Mdb”,它处理来自“队列”的消息
- n 无状态会话 Bean W1 到 Wn
场景是:
Client 调用Server 的方法,该方法又向Queue 发送若干消息。之后,Server 会做一些其他的事情。同时,Mdb 消费一条消息,调用 Wi 进行一些相当长的计算,并得到结果。现在Mdb 将结果提供给Server。当 Server 获得它发送的每条消息的所有“结果”时,它会使用 W 的结果进行更多计算,并将结果返回给 Client .
我的问题:
在 Java SE 中,我只需 .wait() 让 Server 在 Server 之后等待 W 的结果发送消息后的工作。然后 mdb 将在设置结果时 .notify() 。由于我不能修改 EJB 容器中的线程,正如规范所述,我迷失了,因为我没有找到任何合适的方法来在 EJB 环境中实现相同的行为。
对于这个问题的任何帮助将不胜感激,在此先感谢。
P.S.:我正在使用 JBoss 5.1.0,以防有任何供应商特定的措施来解决这个问题。
【问题讨论】:
标签: java multithreading ejb