Database Reference
In-Depth Information
The answer is that the RRD SOA Implementation board officially prohibited all protocols
for internal developers except JMS/AQ and that was the right thing to do. Still, the proper
solution will introduce the separation of a message's construction and delivery, so after
gluing the Message Header (constructed as a separate CLOB) and Message payload in one
container ( msh_olob ), we call the message dispatcher, which will select the correct de-
livery MEP (JMS/AQ, all other methods are commented). MEPs and protocols are associ-
ated with TP messages and TP endpoints according to the presented service taxonomy,
and therefore, dispatching is simple, flexible, and architecturally identical to the Java De-
liverer, as discussed in Chapter 4 , From Traditional Integration to Composition - Enter-
prise Business Services . A dispatcher call with all associated parameters is presented as
follows:
msgtext := 'Invoking deliverer for Message ID= ' ||
v_msgid;
XXCU_EHS_ENDPOINTHANDLER.msgdispatcher
(olob => msh_olob,
msgid => v_msgid,
msgjobid => msgjobid,
db_action => v_dbaction,
ret_err_status => ret_err_status)
Enqueue
Here is a small and simple enqueuing procedure, based on the DBMS_AQ package:
procedure enqueue_msg(p_queue in varchar2,
p_xml in varchar2,
p_priority in number default 50,
p_corrid in varchar2 default null
)
is
msgsrc VARCHAR2 (4000):= package_name||'.enqueue_msg(VC)';
l_stmt varchar2(250 CHAR) := 'declare';
l_jms_message sys.aq$_jms_text_message;
l_message_properties dbms_aq.message_properties_t;
l_enqueue_options dbms_aq.enqueue_options_t;
l_msgid raw(16);
begin
Search WWH ::




Custom Search