我需要通過MDB將Oracle高級隊列(ADQ)中的消息出隊。 MDB部署在Weblogic 11上。我可以爲ADQ定義一個外部服務器(official oracle doc)。DEQUEUE來自Weblogic服務器的Oracle高級隊列
的qustion是:
會發生什麼如果有效載荷不是JMS類型 例如 queue_payload_type=>'sys.aq$_jms_text_message'
但是是一種自定義類型? Weblogic如何重新映射它?
我需要通過MDB將Oracle高級隊列(ADQ)中的消息出隊。 MDB部署在Weblogic 11上。我可以爲ADQ定義一個外部服務器(official oracle doc)。DEQUEUE來自Weblogic服務器的Oracle高級隊列
的qustion是:
會發生什麼如果有效載荷不是JMS類型 例如 queue_payload_type=>'sys.aq$_jms_text_message'
但是是一種自定義類型? Weblogic如何重新映射它?
AQ支持不同類型的jms消息,並且mdb可以檢查消息的類型並採取差異化操作。如果您只需要txt消息,但消息內容不同,則mdb需要在其代碼中檢查該消息。
無法通過MDB從自定義類型中退出。要將Weblogic連接到AQ,您需要一個jms type
。可以使用諸如PL/SQL,C/C++,Java和Visual Basic等流行編程接口(API)來傳播和消費AQ消息。
然後,您可以從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一點點。
T2u acharya,但是當類型不是jms消息時會發生什麼?博客忽略它或嘗試重映射? – venergiac
我認爲weblogic會拋出異常,如「oracle.jms.AQjmsException:JMS-108:類型爲TextMessage的郵件不允許包含...的目的地」 – Acharya