java - Ejb 3,消息驱动bean与有状态 session bean合作?

标签 java ejb-3.0 jboss-mdb stateful

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

我有一堆设备,在任何状态更改时都会触发发送 Java 消息。这些设备的 Activity 时间间隔通常约为 30-90 分钟。除了事件详细信息之外,每条事件消息还包含设备 ID。

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

如果我可以将一个有状态 session Bean 与每个 Activity 设备关联起来,那就太棒了!如果这是一个 Web 应用程序,我会使用 http session 来存储对有状态 bean 的句柄或引用(我是对的吗?)。有什么方法可以从我的消息 bean 中存档此内容吗?

最佳答案

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

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

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

希望有帮助。

关于java - Ejb 3,消息驱动bean与有状态 session bean合作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/632990/

相关文章:

java - 如何引用嵌入式 JCA 资源适配器

java - Apache 公共(public)VFS : how to resolve file having % character in file name?

Java:构造函数失败的对象会发生什么?

java - 最有效地从文件中写入和读取 LocalDateTime

java - 如何使 MDB 激活规范上下文属性可配置?

java - JBoss MQ教程

java - 使用 Apache Camel 和 Spring-WS 的 WS-Security

java - 方法级的 EJB 事务属性覆盖

java - EJB3 与 Spring

Java ee 接口(interface)条件注入(inject)