编辑: You—灰機 | 2019-07-06 |
Eigentümer der Queue und der Tabellen ? Ein User für die Nutzung des JMS- Providers, d.h. das Senden und Empfangen von Nachrichten www.christian-hartmann.de Einrichtung der User -- Die Rolle für den AQ Admin User CREATE ROLE atc_aq_adm_role;
GRANT CONNECT, RESOURCE, aq_administrator_role, create any procedure TO atc_aq_adm_role;
-- Die Rolle für den normalen AQ User, der die Nachrichten in die Queue stellt CREATE ROLE atc_aq_user_role;
GRANT CREATE SESSION, aq_user_role TO atc_aq_user_role;
-- Berechtigung zum Stellen einer Nachricht in die Queue exec dbms_aqadm.grant_system_privilege(privilege =>
'
ENQUEUE_ANY'
, grantee =>
'
atc_aq_user_role'
, admin_option =>
TRUE);
-- Berechtigung zum sog. Dequeuen , d.h. nach Erhalt der Nachricht wird diese aus der Queue gel?scht exec dbms_aqadm.grant_system_privilege(privilege =>
'
DEQUEUE_ANY'
, grantee =>
'
atc_aq_user_role'
, admin_option =>
TRUE);
-- Der Admin-User für die Queues create user atc_aqadm identi?ed by atc_aqadm;
grant atc_aq_adm_role to atc_aqadm;
grant execute on dbms_aq to atc_aqadm;
-- Der Nutzer der Queues create user atc_aquser identi?ed by atc_aquser;
grant connect, resource, create session to atc_aquser;
alter user atc_aquser;
grant atc_aq_user_role to atc_aquser;
grant execute on dbms_aq to atc_aquser;
Einrichtung der User Einrichtung der ?PL/SQL Queue EXEC DBMS_AQADM.CREATE_QUEUE_TABLE(QUEUE_TABLE =>
'
DEV_ATCBPPINT'
, QUEUE_PAYLOAD_TYPE =>
'
SYS.XMLType'
, MULTIPLE_CONSUMERS =>
FALSE);
EXEC DBMS_AQADM.CREATE_QUEUE(QUEUE_NAME =>
'
DEV_ATCBPPINT'
, QUEUE_TABLE =>
'
DEV_ATCBPPINT'
);
EXEC DBMS_AQADM.START_QUEUE(QUEUE_NAME =>
'
DEV_ATCBPPINT'
);
www.christian-hartmann.de Typen bei PL/SQL Queues Statt SYS.XMLType kann auch eigner Typ verwendet werden CREATE TYPE MESSAGE_TYP AS OBJECT (mess_subjectVARCHAR2(20), mess_text VARCHAR2(100));
EXEC dbms_aqadm.create_queue_table( queue_table=>
'
aquser.qtab'
, queue_payload=>
'
aquser.MESSAGE_TYP'
);
www.christian-hartmann.de Einrichtung der JMS- Queu........