Paquete CS_SESSION
El paquete CS_SESSION
proporciona una interfaz para cambiar el servicio de base de datos y el grupo de consumidores de la sesión existente.
Note:
El soporte para el paquete CS_SESSION está disponible en Oracle Database 19c a partir de la versión 19.28 y en Oracle Database 23ai a partir de la versión 23.9.Cuando se establece una conexión con una instancia de Autonomous Database, a esa sesión se le asigna un grupo de consumidores. Por ejemplo, se podría crear una sesión mediante una conexión al servicio LOW de una instancia de Autonomous Database. Es posible que desee cambiar el grupo de consumidores, por ejemplo, de BAJO a ALTO. El paquete CS_SESSION
proporciona una API para el cambio. Consulte Nombres de servicio de base de datos predefinidos para bases de datos autónomas para obtener más información.
Los grupos de consumidores determinan la simultaneidad y el grado de paralelismo (DOP). Por ejemplo, las sentencias de una conexión establecida al servicio de base de datos LOW se ejecutan en serie. Las sentencias de una conexión establecida al servicio de base de datos HIGH se ejecutan en paralelo. Si tiene una carga de trabajo que requiere el procesamiento de sentencias en serie con el cambio a un grupo de consumidores ALTO para algunas sentencias, el paquete CS_SESSION
le permite cambiar.
SWITCH_SERVICE Procedimiento
Este procedimiento cambia el servicio de base de datos y el grupo de consumidores de la sesión actual.
Sintaxis
CS_SESSION.SWITCH_SERVICE(service_name IN varchar2);
Parámetros
parámetro | Descripción |
---|---|
service_name |
Especifica el grupo de consumidores que se actualizará. Según la carga de trabajo, los valores válidos son: |
Notas de uso
Cuando se llama, el procedimiento cambia la sesión al servicio especificado y al grupo de consumidores relacionado. Si el servicio especificado no existe en esa base de datos, se proporciona un mensaje de error. Por ejemplo, si especifica 'TP' como nombre de servicio en una carga de trabajo de almacén de datos, el error indica que no es un nombre de servicio válido. No se informa ningún error si el servicio actual y el servicio especificado son idénticos.
El procedimiento no restablece los atributos de sesión. Todo lo que el usuario haya definido para su sesión antes de llamar a este procedimiento continuará tal cual. Por ejemplo, si se ha modificado un parámetro de sesión y, posteriormente, la sesión ha cambiado a un servicio diferente, el valor del parámetro seguirá siendo el mismo.
Ejemplo
BEGIN
CS_SESSION.SWITCH_SERVICE('HIGH');
END;
/
Seguridad y acceso
Al usuario ADMIN
se le otorga el privilegio EXECUTE
en CS_SESSION
con GRANT OPTION
. El privilegio también se otorga a DWROLE
sin GRANT OPTION
.
Consideraciones de seguridad adicionales
Si a un usuario se le otorgan privilegios EXECUTE
en este procedimiento y no desea que ese usuario cambie a un servicio específico, puede utilizar un disparador AFTER SET CONTAINER
para bloquear la operación. Para ello, se crea un disparador AFTER SET CONTAINER
.
CREATE OR REPLACE TRIGGER SESS_SWITCH
AFTER SET CONTAINER ON DATABASE
BEGIN
IF SYS_CONTEXT('USERENV','SESSION_USER') = 'USER' and
SYS_CONTEXT('USERENV','SERVICE_NAME') = 'serviceexample_low.adwc.oraclecloud.com'
THEN
NULL;
ELSE
RAISE_APPLICATION_ERROR(-20001, 'Denied! You are not allowed to switch service in the database');
END IF;
END;
/
Mensajes de error
En la siguiente tabla, se describen las excepciones para CS_SESSION
Error | Mensaje | Causa |
---|---|---|
20.001 | Nombre de servicio no válido. Los valores válidos son HIGH, MEDIUM, LOW. | Para una carga de trabajo de almacén de datos, se ha especificado un valor distinto de 'HIGH', 'MEDIUM', 'LOW'. |
20.001 | Nombre de servicio no válido. Los valores válidos son ALTO, MEDIO, BAJO, TP, TPURGENTE. | Para una carga de trabajo de procesamiento de transacciones, se especificó un valor distinto de 'HIGH', 'MEDIUM', 'LOW', 'TP', 'TPURGENT'. |
20.002 | Error al cambiar el servicio. | No se pudo cambiar al nuevo servicio. |
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
Acceso a Oracle Support
El acceso y uso por parte del cliente de los servicios de Oracle Support se llevará a cabo conforme a las condiciones especificadas en la orden de Oracle relativa a los servicios correspondientes.