1

嘿!我对 Java EE 和 Stackowerflow 都比较陌生,请善待 :-)

我有一堆设备触发 Java 消息,以便在任何状态更改时发送。这些设备通常在大约 30-90 分钟的时间间隔内处于活动状态。除了事件详细信息之外,每条事件消息都包含一个设备 ID。

我的应用程序的核心是订阅这些事件的消息驱动 bean。每次收到事件时,我都必须访问数据库以查找有关设备的一些信息。

如果我可以将有状态会话 bean 与每个活动设备相关联,那将是非常棒的!如果这是一个 Web 应用程序,我会使用 http 会话来存储有状态 bean 的句柄或引用(我是对的吗?)。有什么方法可以从我的消息 bean 中存档?

4

2 回答 2

2

这会很好,只是不能像你解释的那样做。MDB(和 SLSB)根据定义是无状态的,因此仅在调用期间保持对话是安全的。

您最终可以打破规范并在某处(可能在 MDB 本身中)创建一个静态属性,但这肯定不是可移植的,也不是可扩展的。

我的建议是在 JPA 级别启用缓存(有关详细信息,请参阅您的首选持久性提供程序),因此您可以非常快速(非常快)查找所需的任何数据。这是可移植的和集群友好的。这就是我在项目中使用的方式,我对此非常满意。

希望能帮助到你。

于 2009-03-11T03:54:04.640 回答
0

我不太愿意推荐特定的产品,但是 Terracotta 服务器不是这样解决需求的吗?

于 2009-03-18T15:21:48.367 回答