Uso de mensajes persistentes con mensajes almacenados en el almacén de objetos en la nube
El paquete DBMS_PIPE tiene una funcionalidad ampliada en Autonomous AI Database para soportar la mensajería persistente, donde los mensajes se almacenan en el almacén de objetos en la nube.
Acerca de los Mensajes Persistentes con DBMS_PIPE
DBMS_PIPE permite que una o más sesiones de base de datos se comuniquen en la misma región o entre regiones con mensajes almacenados en el almacén de objetos en la nube.
Mensajes persistentes en DBMS_PIPE:
-
Permite enviar y recuperar mensajes muy grandes.
-
Soporta el envío de un gran número de mensajes de canal.
-
Admita el envío y la recepción de mensajes en una única base de datos, en varias bases de datos y en distintas regiones.
-
Soporta varios pipes con el mismo URI de ubicación del almacén de objetos en la nube.
Se pueden crear canales de mensajería persistentes en cualquiera de los tipos DBMS_PIPE soportados:
- Conducta implícita: se crea automáticamente cuando se envía un mensaje con un nombre de conducto desconocido mediante la función
DBMS_PIPE.SEND_MESSAGE. - Pipa explícita: se crea mediante la función
DBMS_PIPE.CREATE_PIPEcon un nombre de pipa especificado por el usuario. - Conducta pública: accesible para cualquier usuario con permiso
EXECUTEen el paqueteDBMS_PIPE. - Dirección privada: accesible para sesiones con el mismo usuario que el creador de la conducción.
Note:
Oracle recomienda crear una conducción explícita antes de enviar o recibir mensajes con mensajes persistentes. La creación de una conducción explícita conDBMS_PIPE.CREATE_PIPE garantiza que la conducción se cree con los permisos de acceso que desee, ya sean públicos o privados (definiendo el parámetro private).
A continuación se muestra el flujo de trabajo general para DBMS_PIPE con mensajes persistentes:
Creación de un Tubo Persistente Explícito y Envío de un Mensaje
Describe los pasos para crear un conducto persistente con un nombre de conducto especificado (tubo explícito).
Recuperación de un Mensaje Persistente en la Misma Base de Datos
Describe los pasos para recuperar un mensaje persistente de un conducto explícito en la misma instancia de base de datos de IA autónoma (la instancia a la que se envió el mensaje).
En una instancia de Autonomous AI Database, puede recibir mensajes enviados a un canal desde una sesión diferente. Los procedimientos DBMS_PIPE son procedimientos de derechos del invocador y se ejecutan como el usuario invocado actual.
Los tubos privados son propiedad del usuario actual que crea el conducto. Solo el mismo usuario que creó el conducto puede acceder a los conductos privados. Esto se aplica a los pipes que utilizan mensajes en memoria y a los pipes que utilizan mensajes persistentes con mensajes almacenados en el almacén de objetos en la nube.
Cualquier sesión de base de datos con privilegios de ejecución en DBMS_PIPE puede acceder a los pipes públicos. Esto se aplica a los pipes que utilizan mensajes en memoria y a los pipes que utilizan mensajes persistentes con mensajes almacenados en el almacén de objetos en la nube.
Consulte Procedimiento SET_CREDENTIAL_NAME y Función GET_LOCATION_URI para obtener más información.
Consulte Función RECEIVE_MESSAGE para obtener más información.
Recuperación de un Mensaje Persistente mediante la Creación de una Tubería en una Base de Datos Diferente
Describe los pasos para recuperar un mensaje persistente almacenado en el almacén de objetos en la nube con un conducto explícito en una instancia de base de datos de IA autónoma que es diferente de la instancia que envió el mensaje.
Eliminación de una tubería persistente
Describe los pasos para eliminar un conducto persistente.
Los pipes persistentes envían y reciben mensajes almacenando mensajes en el almacén de objetos en la nube. Utilice DBMS_PIPE.REMOVE_PIPE para eliminar un conducto persistente en una instancia de Autonomous AI Database.