我们在应用程序中有以下情况。
用户导航到一个页面,该页面显示50个帐户的列表以及其他详细信息。为了使附加信息在线服务器向MQ队列发送消息(每个帐户一条),有一个批处理作业,它侦听该队列并拾取这些消息,并通过WS或EJB调用调用外部系统,并在队列上以响应的形式返回数据,在线服务器从队列中拾取数据并将其显示在屏幕上。
- 联机服务器向MQ发送多条消息
- 批处理作业侦听此队列
- 拾取消息,并相应地调用外部系统
- 创建响应并将其放回队列
- 在线服务器选择这些消息并在上显示这些消息屏幕
在这种情况下有很多冗余步骤和太多的故障点。然而,我知道这样做是为了实现性能效率。
我想实现这样的目标:
1) Online直接调用外部系统并得到响应。
- 我可以做到:在每个帐户的循环中,这将花费我表演大受欢迎
- 我可以打开多个线程,并激发请求,不管我是谁被告知从一个网络应用程序打开多个线程是不允许的解释原因>
有什么方法/机制可以用来实现这一点吗?
谢谢你花时间阅读这么长的帖子。
Re多线程:
对于EJB,这不仅是不鼓励的,而且是规范明确禁止的然而,对于J2EE的其他领域,最好通过使用Concurrency Utils来实现,您可以确保新线程由容器创建和管理,从而确保所有EE服务都可用。
您也可以使用WorkManagers在EJB中创建新线程。请参阅此文档(它是为WebLogic Server编写的,但可以在包含CommonJ的每个应用程序服务器中使用)