我需要通过MDB从Oracle Advanced Queue(ADQ)中取消一条消息。 MDB部署在Weblogic 11上。我可以为ADQ定义外部服务器(official oracle doc)。
qustion是:
如果有效负载不是jms类型会发生什么
例如
queue_payload_type=>'sys.aq$_jms_text_message'
但是自定义类型?
Weblogic如何重新映射它?
答案 0 :(得分:1)
AQ支持不同类型的jms消息,mdb可以检查消息的类型并执行diff操作。如果您只期望txt消息,但消息的内容不同,则mdb需要在其代码中检查它。
答案 1 :(得分:1)
无法通过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。