【发布时间】:2010-04-17 09:48:22
【问题描述】:
我正在设计一个 Java EE 6 应用程序的一部分,它由 EJB3 bean 组成。部分要求是多个并行(比如说几百个)长时间运行(几天)的数据库搜索。个人狩猎有不同的搜索参数(开始时间、结束时间、查询过滤器)。参数可能会随着时间而改变。
目前我正在考虑以下几点:
-
SearchController(无状态会话 Bean)制定一组搜索参数,通过 JMS 将其发送到SearchListener -
SearchListener(消息驱动Bean)接收搜索参数,用参数实例化一个SearchWorker -
SearchWorker(SLSB)通过数据库反复搜索;当它找到某些东西时,通过 JMS 发送结果,然后继续搜索;当给定的“结束时间”到达时,它结束
我现在想知道的是:
- EJB3 实例运行了几天是否有问题? (除此之外,我需要能够处理容器重启......)
- 我如何知道
SearchWorker的 EJB 实例的数量和当前正在运行? - 是否可以单独与它们通信(类似于向 unix 进程发送 System V 信号),例如发送新参数、结束实例等。
【问题讨论】:
标签: asynchronous ipc ejb-3.0 java-ee-6