Usa messaggistica persistente con messaggi memorizzati nell'area di memorizzazione degli oggetti cloud
Il package DBMS_PIPE dispone di funzionalità estese su Autonomous AI Database per supportare la messaggistica persistente, in cui i messaggi vengono memorizzati nell'area di memorizzazione degli oggetti cloud.
Informazioni sulla messaggistica persistente con DBMS_PIPE
DBMS_PIPE consente a una o più sessioni di database di comunicare nella stessa area o tra più aree con i messaggi memorizzati nell'area di memorizzazione degli oggetti cloud.
Messaggi persistenti in DBMS_PIPE:
-
Permetti di inviare e recuperare messaggi molto grandi.
-
Supporta l'invio di un numero elevato di messaggi pipe.
-
Supporta l'invio e la ricezione di messaggi all'interno di un unico database, su più database e tra database in aree diverse.
-
Supporta più pipe utilizzando lo stesso URI di posizione dell'area di memorizzazione degli oggetti cloud.
È possibile creare tubi di messaggistica persistenti in uno qualsiasi dei tipi DBMS_PIPE supportati:
- Pipe implicita: viene creata automaticamente quando viene inviato un messaggio con un nome pipe sconosciuto utilizzando la funzione
DBMS_PIPE.SEND_MESSAGE. - Pipe esplicita: creata utilizzando la funzione
DBMS_PIPE.CREATE_PIPEcon un nome pipe specificato dall'utente. - Pipe pubblica: è accessibile da qualsiasi utente con autorizzazione
EXECUTEsul pacchettoDBMS_PIPE. - Pipe privata: è accessibile dalle sessioni con lo stesso utente dell'autore della pipe.
Nota
Oracle consiglia di creare una pipe esplicita prima di inviare o ricevere messaggi con messaggi persistenti. La creazione di una pipe esplicita conDBMS_PIPE.CREATE_PIPE garantisce che la pipe venga creata con le autorizzazioni di accesso desiderate, sia pubbliche che private (impostando il parametro private).
Di seguito è riportato il workflow generale per DBMS_PIPE con messaggi persistenti.
Creare una pipe persistente esplicita e inviare un messaggio
Descrive i passi per creare una pipe persistente con un nome pipe specificato (Tubo esplicito).
Recupera un messaggio persistente nello stesso database
Descrive i passi per recuperare un messaggio persistente da una pipe esplicita sulla stessa istanza di Autonomous AI Database (l'istanza in cui è stato inviato il messaggio).
Su un'istanza di Autonomous AI Database puoi ricevere messaggi inviati a una pipe da una sessione diversa. Le procedure DBMS_PIPE sono procedure di richiamo dei diritti e vengono eseguite come utente richiamato corrente.
I tubi privati sono di proprietà dell'utente corrente che crea il tubo. I tubi privati sono accessibili solo dallo stesso utente che ha creato il tubo. Ciò si applica alle pipe che utilizzano messaggi in memoria e alle pipe che utilizzano la messaggistica persistente con messaggi memorizzati nell'area di memorizzazione degli oggetti cloud.
È possibile accedere ai pipe pubblici da qualsiasi sessione di database con privilegio di esecuzione su DBMS_PIPE. Ciò si applica alle pipe che utilizzano messaggi in memoria e alle pipe che utilizzano la messaggistica persistente con messaggi memorizzati nell'area di memorizzazione degli oggetti cloud.
Per ulteriori informazioni, vedere SET_CREDENTIAL_NAME Procedura e Funzione GET_LOCATION_URI.
Per ulteriori informazioni, vedere RECEIVE_MESSAGE Funzione.
Recuperare un messaggio persistente creando una pipe in un database diverso
Descrive i passi per recuperare un messaggio persistente memorizzato nell'area di memorizzazione degli oggetti cloud con una pipe esplicita su un'istanza di Autonomous AI Database diversa dall'istanza che ha inviato il messaggio.
Rimuovere una pipe persistente
Descrive i passi per rimuovere una pipe persistente.
I tubi persistenti inviano e ricevono messaggi memorizzando i messaggi nell'area di memorizzazione degli oggetti cloud. Utilizzare DBMS_PIPE.REMOVE_PIPE per rimuovere una pipe persistente su un'istanza di Autonomous AI Database.