【问题标题】:How to create a JMS 2 shared subscription with @MessageDriven如何使用 @MessageDriven 创建 JMS 2 共享订阅
【发布时间】:2016-07-11 22:36:24
【问题描述】:

我想为消息驱动的 EJB 创建一个关于主题的共享非持久订阅,并且想知道如何使用 @MessageDriven 和 @ActivationConfigProperty 来实现。

我发现 article 描述了类似的内容,但我不确定这是否适用于我的问题:

订阅的共享依赖于设置的客户端 ID,不仅针对持久订阅(始终需要客户端 ID),而且针对非持久订阅(通常不需要客户端 ID)。如果订阅由资源适配器创建以供消息驱动 bean (MDB) 使用,并且未设置客户端 ID,则资源适配器会将客户端 ID 设置为 MDB 的名称。但是,如果订阅是使用 JMS API 以编程方式创建的,并且未设置客户端 ID,则会引发异常。

请注意,在 EJB 或 Web 容器中,使用连接工厂创建连接的应用程序不允许在新创建的连接上设置客户端 ID,而必须在连接工厂上设置它。这个限制是由 EJB 规范强加的,尽管它也适用于 Web 组件。应用客户端容器中没有这样的限制。

【问题讨论】:

    标签: java jakarta-ee jms weblogic12c message-driven-bean


    【解决方案1】:

    使用标准 JavaEE MDB 激活属性是不可能的。请阅读EJB 3.2 specification 的第 5.4.17.7 节,对此有不同的(特定于供应商的)方法(例如 GlassFish、Wildfly 等)

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 2021-06-09
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 2017-01-20
      • 2017-10-08
      相关资源
      最近更新 更多