Pacote CS_SESSION
O pacote CS_SESSION
fornece uma interface para alternar o serviço de banco de dados e o grupo de consumidores da sessão existente.
Observação:
O suporte para o pacote CS_SESSION está disponível no Oracle Database 19c a partir da versão 19.28 e no Oracle Database 23ai a partir da versão 23.9.Quando uma conexão é estabelecida com um Autonomous Database, esse grupo de consumidores é designado a essa sessão. Por exemplo, uma sessão pode ser criada usando uma conexão com o serviço LOW de um Autonomous Database. Talvez você queira alternar o grupo de consumidores, por exemplo, de LOW para HIGH. O pacote CS_SESSION
fornece uma API para alternância. Consulte Nomes de Serviço de Banco de Dados Predefinidos para Autonomous Databases para mais informações.
Os grupos de consumidores determinam a simultaneidade e o grau de paralelismo (DOP). Por exemplo, as instruções em uma conexão estabelecida com o serviço de banco de dados LOW são executadas em série. As instruções em uma conexão estabelecida com o serviço de banco de dados ALTO são executadas em paralelo. Se você tiver uma carga de trabalho que exija processamento de demonstrativo serial com a alternância para um grupo de consumidores ALTO para algumas instruções, o pacote CS_SESSION
permitirá que você alterne.
SWITCH_SERVICE Procedimento
Este procedimento alterna o serviço de banco de dados e o grupo de consumidores da sessão atual.
Sintaxe
CS_SESSION.SWITCH_SERVICE(service_name IN varchar2);
Parâmetros
Parâmetro | Descrição |
---|---|
service_name |
Especifica o grupo de consumidores a ser atualizado. Dependendo da carga de trabalho, os valores válidos são: |
Observações sobre Uso
Quando chamado, o procedimento alterna a sessão para o serviço especificado e o grupo de consumidores relacionado. Se o serviço especificado não existir nesse banco de dados, uma mensagem de erro será fornecida. Por exemplo, se você especificar 'TP' como o nome do serviço em uma carga de trabalho do data warehouse, o erro indicará que ele não é um nome de serviço válido. Nenhum erro será reportado se o serviço atual e o serviço especificado forem idênticos.
O procedimento não redefine os atributos da sessão. Tudo o que o usuário definir para sua sessão antes de chamar este procedimento continuará como está. Por exemplo, se um parâmetro de sessão foi modificado e, posteriormente, a sessão foi alternada para um serviço diferente, o valor do parâmetro permanecerá o mesmo.
Exemplo
BEGIN
CS_SESSION.SWITCH_SERVICE('HIGH');
END;
/
Segurança e Acesso
O usuário ADMIN
recebe o privilégio EXECUTE
no CS_SESSION
com GRANT OPTION
. O privilégio também é concedido ao DWROLE
sem o GRANT OPTION
.
Considerações Adicionais de Segurança
Se um usuário receber privilégios EXECUTE
neste procedimento e você não quiser que ele alterne para um serviço específico, poderá usar um trigger AFTER SET CONTAINER
para bloquear a operação. Isso é feito criando um 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;
/
Mensagens de Erro
A tabela a seguir descreve as exceções para CS_SESSION
Erro | Mensagem | Causa |
---|---|---|
20,001 | Nome de serviço inválido. Os valores válidos são HIGH, MEDIUM, LOW. | Para uma carga de trabalho do data warehouse, foi especificado um valor diferente de 'HIGH', 'MEDIUM', 'LOW'. |
20,001 | Nome de serviço inválido. Os valores válidos são HIGH, MEDIUM, LOW, TP, TPURGENT. | Para uma carga de trabalho de processamento de transações, foi especificado um valor diferente de 'HIGH', 'MEDIUM', 'LOW', 'TP', 'TPURGENT'. |
20,002 | Falha na alternância de serviço. | Falha ao alternar para o novo serviço. |
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.
Acesso ao Suporte Técnico da Oracle
O acesso do cliente Oracle aos serviços de suporte Oracle e sua respectiva utilização ocorrerão de acordo com os termos e condições especificados no pedido de compra Oracle por ele firmado para os serviços Oracle aplicáveis.