DBA Data[Home] [Help]

PACKAGE: SYS.DBMS_AQADM

Source


1 PACKAGE dbms_aqadm AS
2 
3   --------------------
4   --  PUBLIC CONSTANT
5   --
6   -- payload type of the queue table
7   JMS_TYPE             CONSTANT VARCHAR2(1) := '0';
8 
9   -- retention
10   INFINITE             CONSTANT BINARY_INTEGER := -1;
11 
12   -- message grouping
13   TRANSACTIONAL        CONSTANT BINARY_INTEGER := 1;
14   NONE                 CONSTANT BINARY_INTEGER := 0;
15 
16   -- queue type
17   NORMAL_QUEUE               CONSTANT BINARY_INTEGER := 0;
18   EXCEPTION_QUEUE            CONSTANT BINARY_INTEGER := 1;
19   NON_PERSISTENT_QUEUE       CONSTANT BINARY_INTEGER := 2;
20 
21   -- non-repudiation properties
22   NON_REPUDIATE_SENDER       CONSTANT BINARY_INTEGER := 1;
23   NON_REPUDIATE_SNDRCV       CONSTANT BINARY_INTEGER := 2;
24 
25   -- protocols (note that FTP is not supported yet so it is not
26   -- included in anyp).
27   TTC      CONSTANT BINARY_INTEGER := 0;
28   HTTP      CONSTANT BINARY_INTEGER := 1;
29   SMTP      CONSTANT BINARY_INTEGER := 2;
30   FTP       CONSTANT BINARY_INTEGER := 4;
31   ANYP      CONSTANT BINARY_INTEGER := HTTP + SMTP;
32 
33   LOGMINER_PROTOCOL  CONSTANT BINARY_INTEGER := 1;
34   LOGAPPLY_PROTOCOL  CONSTANT BINARY_INTEGER := 2;
35   TEST_PROTOCOL      CONSTANT BINARY_INTEGER := 3;
36 
37   -- Constants for LDAP connection factory type
38   AQ_QUEUE_CONNECTION  CONSTANT BINARY_INTEGER := 1;
39   AQ_TOPIC_CONNECTION  CONSTANT BINARY_INTEGER := 2;
40 
41   -- Constants for delivery mode
42   PERSISTENT         CONSTANT BINARY_INTEGER := 1 ;
43   BUFFERED           CONSTANT BINARY_INTEGER := 2 ;
44   PERSISTENT_OR_BUFFERED   CONSTANT BINARY_INTEGER := 3 ;
45 
46   -- subscriber properties.
47   QUEUE_TO_QUEUE_SUBSCRIBER          CONSTANT BINARY_INTEGER := 8;
48 
49   -- Constants for get/set_replay_info
50   LAST_ENQUEUED      CONSTANT BINARY_INTEGER := 0;
51   LAST_ACKNOWLEDGED  CONSTANT BINARY_INTEGER := 1;
52 
53   -- 12G sort_list parameter
54   -- rearrange sort list values to sync with dbms_aqadm_sys.SC_* and
55   -- its corresponding KWSC_* flags in kwsc.h.
56   PRIORITY                  CONSTANT BINARY_INTEGER := 1;
57   ENQ_TIME                  CONSTANT BINARY_INTEGER := 2;
58   PRIORITY_ENQ_TIME         CONSTANT BINARY_INTEGER := 3;
59   COMMIT_TIME               CONSTANT BINARY_INTEGER := 4;
60   PRIORITY_COMMIT_TIME      CONSTANT BINARY_INTEGER := 5;
61   ENQ_TIME_PRIORITY         CONSTANT BINARY_INTEGER := 7;
62 
63   TYPE aq$_subscriber_list_t IS TABLE OF sys.aq$_agent
64     INDEX BY BINARY_INTEGER;
65 
66   TYPE aq$_purge_options_t IS
67      RECORD(block          boolean      DEFAULT FALSE,
68             delivery_mode  PLS_INTEGER  DEFAULT dbms_aqadm.PERSISTENT);
69 
70   PROCEDURE CREATE_SHARDED_QUEUE (
71     queue_name             IN VARCHAR2,
72     storage_clause         IN VARCHAR2       DEFAULT NULL,
73     multiple_consumers     IN BOOLEAN        DEFAULT FALSE,
74     max_retries            IN NUMBER         DEFAULT NULL,
75     comment                IN VARCHAR2       DEFAULT NULL);
76 
77   PROCEDURE create_queue_table(
78         queue_table                 IN     VARCHAR2,
79         queue_payload_type          IN     VARCHAR2,
80         storage_clause              IN     VARCHAR2 DEFAULT NULL,
81         sort_list                   IN     VARCHAR2 DEFAULT NULL,
82         multiple_consumers          IN     BOOLEAN DEFAULT FALSE,
83         message_grouping            IN     BINARY_INTEGER DEFAULT NONE,
84         comment                     IN     VARCHAR2 DEFAULT NULL,
85         auto_commit                 IN     BOOLEAN  DEFAULT TRUE,
86         primary_instance            IN     BINARY_INTEGER DEFAULT 0,
87         secondary_instance          IN     BINARY_INTEGER DEFAULT 0,
88         compatible                  IN     VARCHAR2 DEFAULT NULL,
89         non_repudiation             IN     BINARY_INTEGER DEFAULT 0,
90         secure                      IN     BOOLEAN DEFAULT FALSE);
91 
92   PROCEDURE alter_queue_table(
93         queue_table                 IN     VARCHAR2,
94         comment                     IN     VARCHAR2       DEFAULT NULL,
95         primary_instance            IN     BINARY_INTEGER DEFAULT NULL,
96         secondary_instance          IN     BINARY_INTEGER DEFAULT NULL);
97 
98   PROCEDURE create_queue(
99         queue_name                  IN     VARCHAR2,
100         queue_table                 IN     VARCHAR2,
101         queue_type                  IN     BINARY_INTEGER DEFAULT NORMAL_QUEUE,
102         max_retries                 IN     NUMBER DEFAULT NULL,
103         retry_delay                 IN     NUMBER DEFAULT 0,
104         retention_time              IN     NUMBER DEFAULT 0,
105         dependency_tracking         IN     BOOLEAN DEFAULT FALSE,
106         comment                     IN     VARCHAR2 DEFAULT NULL,
107         auto_commit                 IN     BOOLEAN DEFAULT TRUE);
108 
109 --  PROCEDURE create_queue(
110 --        queue_name                  IN     VARCHAR2,
111 --        queue_payload_type          IN     VARCHAR2,
112 --        sort_list                   IN     VARCHAR2 DEFAULT NULL,
113 --        multiple_consumers          IN     BOOLEAN DEFAULT FALSE,
114 --        max_retries                 IN     NUMBER DEFAULT NULL,
115 --        retry_delay                 IN     NUMBER DEFAULT 0,
116 --        retention_time              IN     NUMBER DEFAULT 0,
117 --        comment                     IN     VARCHAR2 DEFAULT NULL,
118 --        shard_count                 IN     NUMBER DEFAULT 5);
119 
120   PROCEDURE create_np_queue(
121         queue_name                  IN     VARCHAR2,
122         multiple_consumers          IN     BOOLEAN DEFAULT FALSE,
123         comment                     IN     VARCHAR2 DEFAULT NULL);
124 
125   PROCEDURE drop_queue(
126         queue_name                  IN     VARCHAR2,
127         auto_commit                 IN     BOOLEAN DEFAULT TRUE);
128 
129   PROCEDURE drop_sharded_queue(
130         queue_name                  IN     VARCHAR2,
131         force                       IN     BOOLEAN DEFAULT FALSE);
132 
133   PROCEDURE drop_queue_table(
134         queue_table                 IN     VARCHAR2,
135         force                       IN     BOOLEAN DEFAULT FALSE,
136         auto_commit                 IN     BOOLEAN DEFAULT TRUE);
137 
138   PROCEDURE start_queue(
139         queue_name                  IN     VARCHAR2,
140         enqueue                     IN     BOOLEAN DEFAULT TRUE,
141         dequeue                     IN     BOOLEAN DEFAULT TRUE);
142 
143   PROCEDURE stop_queue(
144         queue_name                  IN     VARCHAR2,
145         enqueue                     IN     BOOLEAN DEFAULT TRUE,
146         dequeue                     IN     BOOLEAN DEFAULT TRUE,
147         wait                        IN     BOOLEAN DEFAULT TRUE);
148 
149   PROCEDURE alter_queue(
150         queue_name                  IN     VARCHAR2,
151         max_retries                 IN     NUMBER   DEFAULT NULL,
152         retry_delay                 IN     NUMBER   DEFAULT NULL,
153         retention_time              IN     NUMBER   DEFAULT NULL,
154         auto_commit                 IN     BOOLEAN  DEFAULT TRUE,
155         comment                     IN     VARCHAR2 DEFAULT NULL);
156 
157   PROCEDURE add_subscriber(
158         queue_name                  IN     VARCHAR2,
159         subscriber                  IN     SYS.AQ$_AGENT,
160         rule                        IN     VARCHAR2 DEFAULT NULL,
161         transformation              IN     VARCHAR2 DEFAULT NULL,
162         queue_to_queue              IN     BOOLEAN  DEFAULT FALSE,
163         delivery_mode               IN     PLS_INTEGER
164                                            DEFAULT PERSISTENT);
165   -- for backward compatibility
166   PROCEDURE alter_subscriber(
167         queue_name                  IN     VARCHAR2,
168         subscriber                  IN     SYS.AQ$_AGENT,
169         rule                        IN     VARCHAR2);
170 
171   PROCEDURE alter_subscriber(
172         queue_name                  IN     VARCHAR2,
173         subscriber                  IN     SYS.AQ$_AGENT,
174         rule                        IN     VARCHAR2,
175         transformation              IN     VARCHAR2);
176 
177   PROCEDURE remove_subscriber(
178         queue_name                  IN     VARCHAR2,
179         subscriber                  IN     SYS.AQ$_AGENT);
180 
181   PROCEDURE grant_type_access(
182         user_name               IN      VARCHAR2);
183   PRAGMA SUPPLEMENTAL_LOG_DATA(grant_type_access, AUTO);
184 
185   FUNCTION queue_subscribers(
186         queue_name              IN      VARCHAR2)
187         RETURN aq$_subscriber_list_t;
188 
189   PROCEDURE grant_queue_privilege(
190         privilege               IN      VARCHAR2,
191         queue_name              IN      VARCHAR2,
192         grantee                 IN      VARCHAR2,
193         grant_option            IN      BOOLEAN := FALSE);
194 
195   PROCEDURE grant_system_privilege(
196         privilege               IN      VARCHAR2,
197         grantee                 IN      VARCHAR2,
198         admin_option            IN      BOOLEAN := FALSE);
199   PRAGMA SUPPLEMENTAL_LOG_DATA(grant_system_privilege, AUTO);
200 
201   PROCEDURE revoke_queue_privilege(
202         privilege               IN      VARCHAR2,
203         queue_name              IN      VARCHAR2,
204         grantee                 IN      VARCHAR2);
205 
206   PROCEDURE revoke_system_privilege(
207         privilege               IN      VARCHAR2,
208         grantee                 IN      VARCHAR2);
209   PRAGMA SUPPLEMENTAL_LOG_DATA(revoke_system_privilege, AUTO);
210 
211   PROCEDURE get_type_info(
212         schema                      IN     VARCHAR2,
213         qname                       IN     VARCHAR2,
214         gettds                      IN     BOOLEAN,
215         rc                          OUT    BINARY_INTEGER,
216         toid                        OUT    RAW,
217         version                     OUT    NUMBER,
218         tds                         OUT    LONG RAW,
219         queue_style                 OUT    VARCHAR2,
220         network_name                OUT    VARCHAR2);
221   PRAGMA SUPPLEMENTAL_LOG_DATA(get_type_info, NONE);
222 
223   PROCEDURE get_type_info(
224         schema                      IN     VARCHAR2,
225         qname                       IN     VARCHAR2,
226         gettds                      IN     BOOLEAN,
227         rc                          OUT    BINARY_INTEGER,
228         toid                        OUT    RAW,
229         version                     OUT    NUMBER,
230         tds                         OUT    LONG RAW);
231   PRAGMA SUPPLEMENTAL_LOG_DATA(get_type_info, NONE);
232 
233   PROCEDURE verify_queue_types(
234         src_queue_name  IN      VARCHAR2,
235         dest_queue_name IN      VARCHAR2,
236         destination     IN      VARCHAR2 DEFAULT NULL,
237         rc              OUT     BINARY_INTEGER,
238         transformation  IN      VARCHAR2 DEFAULT NULL);
239   PRAGMA SUPPLEMENTAL_LOG_DATA(verify_queue_types, NONE);
240 
241   PROCEDURE verify_queue_types_no_queue(
242         src_queue_name  IN      VARCHAR2,
243         dest_queue_name IN      VARCHAR2,
244         destination     IN      VARCHAR2 DEFAULT NULL,
245         rc              OUT     BINARY_INTEGER,
246         transformation  IN      VARCHAR2 DEFAULT NULL);
247   PRAGMA SUPPLEMENTAL_LOG_DATA(verify_queue_types_no_queue, NONE);
248 
249   PROCEDURE verify_queue_types_get_nrp(
250         src_queue_name  IN      VARCHAR2,
251         dest_queue_name IN      VARCHAR2,
252         destination     IN      VARCHAR2 DEFAULT NULL,
253         rc              OUT     BINARY_INTEGER,
254         transformation  IN      VARCHAR2 DEFAULT NULL);
255   PRAGMA SUPPLEMENTAL_LOG_DATA(verify_queue_types_get_nrp, NONE);
256 
257   PROCEDURE get_prop_seqno(qid    IN    NUMBER,
258                            dqname IN    VARCHAR2,
259                            dbname IN    VARCHAR2,
260                            seq    OUT   BINARY_INTEGER);
261   PRAGMA SUPPLEMENTAL_LOG_DATA(get_prop_seqno, NONE);
262 
263   PROCEDURE recover_propagation(
264         schema          IN      VARCHAR2,
265         queue_name      IN      VARCHAR2,
266         destination     IN      VARCHAR2,
267         protocol        IN      BINARY_INTEGER default TTC,
268         url             IN      VARCHAR2 default NULL,
269         username        IN      VARCHAR2 default NULL,
270         passwd          IN      VARCHAR2 default NULL,
271         trace           IN      BINARY_INTEGER default 0,
272         destq           IN      BINARY_INTEGER default 0);
273 
274   PROCEDURE schedule_propagation(
275     queue_name                  IN     VARCHAR2,
276     destination                 IN     VARCHAR2 DEFAULT NULL,
277     start_time                  IN     TIMESTAMP WITH TIME ZONE DEFAULT NULL,
278     duration                    IN     NUMBER DEFAULT NULL,
279     next_time                   IN     VARCHAR2 DEFAULT NULL,
280     latency                     IN     NUMBER DEFAULT 60,
281     destination_queue           IN     VARCHAR2 DEFAULT NULL);
282 
283   PROCEDURE unschedule_propagation(
284         queue_name                  IN     VARCHAR2,
285         destination                 IN     VARCHAR2 DEFAULT NULL,
286         destination_queue           IN     VARCHAR2 DEFAULT NULL);
287 
288   PROCEDURE alter_propagation_schedule(
289         queue_name                  IN     VARCHAR2,
290         destination                 IN     VARCHAR2 DEFAULT NULL,
291         duration                    IN     NUMBER DEFAULT NULL,
292         next_time                   IN     VARCHAR2 DEFAULT NULL,
293         latency                     IN     NUMBER DEFAULT 60,
294         destination_queue           IN     VARCHAR2 DEFAULT NULL);
295 
296   PROCEDURE enable_propagation_schedule(
297         queue_name                  IN     VARCHAR2,
298         destination                 IN     VARCHAR2 DEFAULT NULL,
299         destination_queue           IN     VARCHAR2 DEFAULT NULL);
300 
301   PROCEDURE disable_propagation_schedule(
302         queue_name                  IN     VARCHAR2,
303         destination                 IN     VARCHAR2 DEFAULT NULL,
304         destination_queue           IN     VARCHAR2 DEFAULT NULL);
305 
306   FUNCTION aq$_propaq(
307         job                         IN     NUMBER) RETURN DATE;
308 
309   -- aq$_propaq is overloaded with 8.0.5 interface to facilitate
310   -- upgrade/downgrade
311   FUNCTION aq$_propaq(
312         job                         IN     NUMBER,
313         next_date                   IN     DATE,
314         qname                       IN     VARCHAR2,
315         schema                      IN     VARCHAR2,
316         destination                 IN     VARCHAR2 DEFAULT NULL,
317         toid_char                   IN     VARCHAR2 DEFAULT NULL,
318         version_char                IN     VARCHAR2 DEFAULT NULL,
319         start_time                  IN     VARCHAR2,
320         duration                    IN     VARCHAR2 DEFAULT NULL,
321         next_time                   IN     VARCHAR2 DEFAULT NULL,
322         latency                     IN     VARCHAR2 DEFAULT '60') RETURN DATE;
323 
324   PROCEDURE start_time_manager;
325   PRAGMA SUPPLEMENTAL_LOG_DATA(start_time_manager, NONE);
326 
327   PROCEDURE stop_time_manager;
328   PRAGMA SUPPLEMENTAL_LOG_DATA(stop_time_manager, NONE);
329 
330   PROCEDURE migrate_queue_table(
331          queue_table               IN      VARCHAR2,
332          compatible                IN      VARCHAR2);
333 
334   -- non-repudiate sender of ADT payload
335   PROCEDURE nonrepudiate_sender(
336          queue_name                IN      VARCHAR2,
337          msgid                     IN      RAW,
338          sender_info               IN      SYS.AQ$_AGENT,
339          signature                 OUT     SYS.AQ$_SIG_PROP,
340          payload                   OUT     "<ADT_1>");
341   PRAGMA SUPPLEMENTAL_LOG_DATA(nonrepudiate_sender, NONE);
342 
343   -- non-repudiate sender of raw payload
344   PROCEDURE nonrepudiate_sender(
345          queue_name                IN      VARCHAR2,
346          msgid                     IN      RAW,
347          sender_info               IN      SYS.AQ$_AGENT,
348          signature                 OUT     SYS.AQ$_SIG_PROP,
349          payload                   OUT     raw);
350   PRAGMA SUPPLEMENTAL_LOG_DATA(nonrepudiate_sender, NONE);
351 
352   PROCEDURE nonrepudiate_receiver(
353          queue_name                IN      VARCHAR2,
354          msgid                     IN      RAW,
358   PRAGMA SUPPLEMENTAL_LOG_DATA(nonrepudiate_receiver, NONE);
355          rcver_info                IN      SYS.AQ$_AGENT,
356          signature                 OUT     SYS.AQ$_SIG_PROP,
357          payload                   OUT     "<ADT_1>");
359 
360   PROCEDURE nonrepudiate_receiver(
361          queue_name                IN      VARCHAR2,
362          msgid                     IN      RAW,
363          rcver_info                IN      SYS.AQ$_AGENT,
364          signature                 OUT     SYS.AQ$_SIG_PROP,
365          payload                   OUT     raw);
366   PRAGMA SUPPLEMENTAL_LOG_DATA(nonrepudiate_receiver, NONE);
367 
368   PROCEDURE set_watermark(
369          wmvalue                   IN      NUMBER);
370   PRAGMA SUPPLEMENTAL_LOG_DATA(set_watermark, AUTO);
371 
372   PROCEDURE get_watermark(
373          wmvalue                   OUT     NUMBER);
374   PRAGMA SUPPLEMENTAL_LOG_DATA(get_watermark, NONE);
375 
376   -- add an alias to LDAP
377   PROCEDURE add_alias_to_ldap(
378             alias               IN          VARCHAR2,
379             obj_location        IN          VARCHAR2);
380   PRAGMA SUPPLEMENTAL_LOG_DATA(add_alias_to_ldap, NONE);
381 
382   -- drop an alias from LDAP
383   PROCEDURE del_alias_from_ldap(
384             alias               IN          VARCHAR2);
385   PRAGMA SUPPLEMENTAL_LOG_DATA(del_alias_from_ldap, NONE);
386 
387   -- AQ Authorization management procedures
388   PROCEDURE create_aq_agent (
389             agent_name                IN VARCHAR2,
390             certificate_location      IN VARCHAR2 DEFAULT NULL,
391             enable_http               IN BOOLEAN DEFAULT FALSE,
392             enable_smtp               IN BOOLEAN DEFAULT FALSE,
393             enable_anyp               IN BOOLEAN DEFAULT FALSE);
394   PRAGMA SUPPLEMENTAL_LOG_DATA(create_aq_agent, AUTO);
395 
396   PROCEDURE alter_aq_agent(
397             agent_name                IN VARCHAR2,
398             certificate_location      IN VARCHAR2 DEFAULT NULL,
399             enable_http               IN BOOLEAN DEFAULT FALSE,
403 
400             enable_smtp               IN BOOLEAN DEFAULT FALSE,
401             enable_anyp               IN BOOLEAN DEFAULT FALSE);
402   PRAGMA SUPPLEMENTAL_LOG_DATA(alter_aq_agent, AUTO);
404   PROCEDURE drop_aq_agent (
405             agent_name       IN VARCHAR2 );
406   PRAGMA SUPPLEMENTAL_LOG_DATA(drop_aq_agent, AUTO);
407 
408   PROCEDURE enable_db_access (
409             agent_name                IN VARCHAR2,
410             db_username               IN VARCHAR2   );
411   PRAGMA SUPPLEMENTAL_LOG_DATA(enable_db_access, AUTO);
412 
413   PROCEDURE disable_db_access (
414             agent_name                IN VARCHAR2,
415             db_username               IN VARCHAR2   );
416   PRAGMA SUPPLEMENTAL_LOG_DATA(disable_db_access, AUTO);
417 
418   -- enable jms types IN anydata queue tables
419   PROCEDURE enable_jms_types(
420             queue_table          IN VARCHAR2);
421 
422   -- add a connection string to LDAP directory
423   PROCEDURE add_connection_to_ldap(
424             connection          IN       VARCHAR2,
425             host                IN       VARCHAR2,
426             port                IN       BINARY_INTEGER,
427             sid                 IN       VARCHAR2,
428             driver              IN       VARCHAR2 default NULL,
429             type                IN       BINARY_INTEGER DEFAULT
430                                          AQ_QUEUE_CONNECTION);
431   PRAGMA SUPPLEMENTAL_LOG_DATA(add_connection_to_ldap, NONE);
432 
433   -- add a connection string to LDAP directory
434   PROCEDURE add_connection_to_ldap(
435             connection          IN       VARCHAR2,
436             jdbc_string         IN       VARCHAR2,
437             username            IN       VARCHAR2 default NULL,
438             password            IN       VARCHAR2 default NULL,
439             type                IN       BINARY_INTEGER DEFAULT
440                                          AQ_QUEUE_CONNECTION);
441   PRAGMA SUPPLEMENTAL_LOG_DATA(add_connection_to_ldap, NONE);
442 
443   -- drop a connection string from LDAP directory
444   PROCEDURE del_connection_from_ldap(
445             connection          IN          VARCHAR2);
446   PRAGMA SUPPLEMENTAL_LOG_DATA(del_connection_from_ldap, NONE);
447 
448   -- purge queue table
449   PROCEDURE purge_queue_table(
450             queue_table         IN        VARCHAR2,
451             purge_condition     IN        VARCHAR2,
452             purge_options       IN        aq$_purge_options_t);
453 
454   -- get a sender's replay info
455   PROCEDURE get_replay_info(
456             queue_name               IN      VARCHAR2,
457             sender_agent             IN      sys.aq$_agent,
458             replay_attribute         IN      BINARY_INTEGER,
459             correlation              OUT     VARCHAR2);
460   PRAGMA SUPPLEMENTAL_LOG_DATA(get_replay_info, NONE);
461 
462   -- reset sender's replay info
463   PROCEDURE reset_replay_info(
464             queue_name               IN      VARCHAR2,
465             sender_agent             IN      sys.aq$_agent,
466             replay_attribute         IN      BINARY_INTEGER);
467   PRAGMA SUPPLEMENTAL_LOG_DATA(reset_replay_info, NONE);
468 
469   -- Add procedures to set and get minimum/maximum AQ streams pool memory
470   PROCEDURE set_min_streams_pool( value    IN    NUMBER);
471   PROCEDURE set_max_streams_pool( value    IN    NUMBER);
472 
473   PROCEDURE get_min_streams_pool( value    OUT   NUMBER);
474   PROCEDURE get_max_streams_pool( value    OUT   NUMBER);
475 
476 END dbms_aqadm;