关于 java:DEQUEUE Oracle Advanced Queue from Weblogic Server

DEQUEUE Oracle Advanced Queue from Weblogic Server

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

问题是:

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


无法通过 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


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