Procedimento para matar as sessoes ociosas

Esta procedure deve ficar em um banco de dados, rodando de 30 em 30 min para remover as sessoes ociosas que estejam com a sessao a mais de 1 horas.

CREATE OR REPLACE PROCEDURE KILL_SESSIONS
IS
BEGIN
declare
Stmt_Str VARCHAR2(200);
Cur_Hdl INT;
Rows_Processed NUMBER;
Sid_V VARCHAR2(30);
Serial#_V VARCHAR2(30);

CURSOR pri IS
SELECT Sid, Serial#, Username
FROM V$Session
WHERE Program in (‘JDBC Thin Client’,’PLSQLDev.exe’,’Digitalizacao.exe’, ‘ORACLE.EXE’)
And Username Is Not Null
And Username in(‘XXXX’, ‘XXXX’)
and floor(last_call_et/120)> 1 — sem fazer nenhuma atividade !!!!
And Status = ‘INACTIVE’;

BEGIN
FOR usr in pri
LOOP
Sid_V := usr.Sid;
Serial#_V := Usr.Serial#;
Stmt_Str := ‘ALTER SYSTEM KILL SESSION ”’ || Sid_V || ‘,’ || Serial#_V || ”” || ‘ IMMEDIATE’;

Execute Immediate(stmt_str); — Oracle 8i feature
END LOOP;
Commit;
—null;
END;
end;

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *