【问题标题】:DEQUEUE Oracle Advanced Queue from Weblogic Server来自 Weblogic Server 的 DEQUEUE Oracle 高级队列
【发布时间】:2014-02-12 22:16:38
【问题描述】:

我需要通过 MDB 将消息从 Oracle 高级队列 (ADQ) 中取出。 MDB 部署在 Weblogic 11 上。我可以为 ADQ (official oracle doc) 定义一个外部服务器。

问题是:

如果负载不是 jms 类型会发生什么 例如 queue_payload_type=>'sys.aq$_jms_text_message' 但是是自定义类型吗? Weblogic 如何重新映射它?

【问题讨论】:

    标签: java oracle jms advanced-queuing


    【解决方案1】:

    AQ 支持不同类型的 jms 消息,mdb 可以检查消息的类型并采取 diff 操作。如果您只期望 txt 消息,但消息的内容不同,则 mdb 需要在其代码中检查。

    【讨论】:

    • T2u acharya,但是当类型不是 jms 消息时会发生什么?博客忽略它或尝试重新映射?
    • 我认为 weblogic 会抛出类似“oracle.jms.AQjmsException: JMS-108: TextMessage 类型的消息不允许包含...的目标”
    【解决方案2】:

    无法通过 MDB 从自定义类型出列。要将 Weblogic 连接到 AQ,您需要 jms type

    另外,AQ 消息可以使用流行的编程来传播和使用 接口 (API),例如 PL/SQL、C/C++、Java 和 Visual Basic。

    然后您可以从 AQ 自定义类型传播到 AQ“jms 类型”。

    http://docs.oracle.com/cd/A87861_01/NT817EE/appdev.817/a76938/adq_aex4.htm

    但它会引入一点延迟https://community.oracle.com/thread/2190829?start=0&tstart=0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-19
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      • 2015-08-10
      • 2010-09-07
      • 1970-01-01
      相关资源
      最近更新 更多