相关疑难解决方法(0)

如何使用Java将JMS消息排入Oracle AQ

我有一个Oracle AQ,队列类型为SYS.AQ $ _JMS_TEXT_MESSAGE.我想要做的是从java应用程序中将文本插入到提到的队列中.

等效的SQL查询是

declare
 r_enqueue_options    DBMS_AQ.ENQUEUE_OPTIONS_T;
 r_message_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
 v_message_handle     RAW(16);
 o_payload            SYS.AQ$_JMS_TEXT_MESSAGE;
begin
 o_payload := sys.aq$_jms_text_message.construct;
 o_payload.set_text(xmltype('<user>text</user>').getClobVal());
 sys.dbms_aq.enqueue (
   queue_name         => 'QUEUE_NAME',
   enqueue_options    => r_enqueue_options,
   message_properties => r_message_properties,
   payload            => o_payload,
   msgid              => v_message_handle
 );
 commit;
end;
/
Run Code Online (Sandbox Code Playgroud)

我使用本指南得到了大部分权利,但我坚持了下来

 o_payload := sys.aq$_jms_text_message.construct;
 o_payload.set_text(xmltype('<user>text</user>').getClobVal());
Run Code Online (Sandbox Code Playgroud)

该指南显示了如何排队RAW消息,但我需要它是JMS,否则数据类型与队列类型不匹配.

任何帮助将不胜感激,因为即使有全能的谷歌我也无法找到解决这个问题的方法.有没有办法使用oracle.jdbc.aq类来实现它,或者我只需要搞砸它并使用SQL查询?

java jms oracle-aq

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

jms ×1

oracle-aq ×1