Pacchetto CS_SESSION
Il pacchetto CS_SESSION
fornisce un'interfaccia per cambiare il servizio di database e il gruppo di consumer della sessione esistente.
Nota
Il supporto per il pacchetto CS_SESSION è disponibile in Oracle Database 19c a partire dalla versione 19.28 e in Oracle Database 23ai a partire dalla versione 23.9.Quando viene stabilita una connessione con un Autonomous Database, alla sessione viene assegnato un gruppo di consumer. Ad esempio, è possibile creare una sessione utilizzando una connessione al servizio LOW di un Autonomous Database. Potrebbe essere necessario cambiare il gruppo di consumer, ad esempio da LOW a HIGH. Il pacchetto CS_SESSION
fornisce un'interfaccia API per la commutazione. Per ulteriori informazioni, vedere Nomi dei servizi di database predefiniti per i database autonomi.
I gruppi di consumer determinano la concorrenza e il grado di parallelismo (DOP). Ad esempio, le istruzioni su una connessione stabilita al servizio di database LOW vengono eseguite in modo seriale. Le istruzioni su una connessione stabilita al servizio di database HIGH vengono eseguite in parallelo. Se si dispone di un carico di lavoro che richiede l'elaborazione delle istruzioni seriali con il passaggio a un gruppo di consumer HIGH per alcune istruzioni, il pacchetto CS_SESSION
consente di passare a un altro gruppo.
Procedura SWITCH_SERVICE
Questa procedura consente di cambiare il servizio di database e il gruppo di consumer della sessione corrente.
Sintassi
CS_SESSION.SWITCH_SERVICE(service_name IN varchar2);
Parametri
Parametro | Descrizione |
---|---|
service_name |
Specifica il gruppo di consumer da aggiornare. A seconda del carico di lavoro, i valori validi sono: |
Note sull'uso
Quando viene richiamata, la procedura passa la sessione al servizio specificato e al gruppo di consumer correlato. Se il servizio specificato non esiste in tale database, viene fornito un messaggio di errore. Ad esempio, se si specifica 'TP' come nome del servizio in un carico di lavoro del data warehouse, l'errore indica che non si tratta di un nome di servizio valido. Non viene segnalato alcun errore se il servizio corrente e il servizio specificato sono identici.
La procedura non reimposta gli attributi della sessione. Tutto ciò che l'utente ha impostato per la propria sessione prima di chiamare questa procedura continuerà così com'è. Ad esempio, se un parametro di sessione è stato modificato e successivamente la sessione è passata a un servizio diverso, il valore del parametro rimarrà invariato.
Esempio
BEGIN
CS_SESSION.SWITCH_SERVICE('HIGH');
END;
/
Sicurezza e accesso
All'utente ADMIN
viene concesso il privilegio EXECUTE
su CS_SESSION
con GRANT OPTION
. Il privilegio viene concesso anche a DWROLE
senza GRANT OPTION
.
Considerazioni aggiuntive sulla sicurezza
Se a un utente vengono concessi i privilegi EXECUTE
su questa procedura e non si desidera che passi a un servizio specifico, è possibile utilizzare un trigger AFTER SET CONTAINER
per bloccare l'operazione. Ciò viene ottenuto creando un trigger 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;
/
Messaggi di errore
Nella tabella seguente vengono descritte le eccezioni per CS_SESSION
.
Errore | Messaggio | Causa |
---|---|---|
20.001 | Nome di servizio non valido. I valori validi sono HIGH, MEDIUM, LOW. | Per un carico di lavoro del data warehouse, è stato specificato un valore diverso da 'HIGH', 'MEDIUM', 'LOW'. |
20.001 | Nome di servizio non valido. I valori validi sono HIGH, MEDIUM, LOW, TP, TPURGENT. | Per un carico di lavoro di elaborazione delle transazioni, è stato specificato un valore diverso da 'HIGH', 'MEDIUM', 'LOW', 'TP', 'TPURGENT'. |
20.002 | Switch del servizio non riuscito. | Passaggio al nuovo servizio non riuscito. |
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.
Accesso al supporto Oracle
L'accesso e l'uso dei servizi di Supporto Oracle da parte dei clienti Oracle è soggetto ai termini e alle condizioni specificati nell'ordine Oracle per i servizi applicabili.