Database Reference
In-Depth Information
-- blocked in XE
l_jms_message := sys.aq$_jms_text_message.construct;
l_jms_message.set_text(p_xml);
l_message_properties.priority := p_priority;
l_message_properties.correlation := p_corrid;
dbms_aq.enqueue(p_queue,
l_enqueue_options,
l_message_properties,
l_jms_message,
l_msgid
);
commit;
EXCEPTION
WHEN OTHERS THEN
msgtext := 'EQUEUING FAILED: ';
msgcode := SQLCODE;
msgtext := msgtext ||'; '||SQLERRM (msgcode);
XXCU_COMMON_LOG_RT.msglog('ERR',msgtext,
msgcode,usermsg, msgsrc, msgjobid);
end enqueue_msg;
Dequeue
The dequeuing functionality is also based on the DBMS_AQ package and is fairly simple,
as shown in the following code snippet:
DBMS_AQ.DEQUEUE(
queue_name => l_queue_name,
dequeue_options => l_dequeue_options,
message_properties => l_message_properties,
payload => l_message,
msgid => l_message_handle);
Some specific functionality exists for inbound flows, as we mentioned previously. The
EndpointHandler function will invoke only the parser associated with the received
message. This invocation will be performed dynamically and we do not have to code it!
That's one benefit of this framework. However, message-parser association is a deve-
loper's responsibility and basically it's done through an ESR configuration.
Search WWH ::




Custom Search