Pessoal, post rápido com uma dica simples de um método que consegui resolver o erro ERROR: “ORA-02396: exceeded maximum idle time, please connect again”! Normalmente esse ocorre quando o profile associado ao usuário está com a configuração de IDLE_TIME setada com um valor baixo.
A seguinte query te informa qual configuração está em vigor para o parâmetro IDLE_TIME:
[code lang=”sql”]
select * from dba_profiles where resource_name = ‘IDLE_TIME’;
[/code]
No exemplo acima, vimos que o profile DEFAULT, que por sinal é o profile padrão para meus usuários, estava com o IDLE_TIME configurado para unlimited. Ou seja, o problema não era o profile.
Caso fosse necessário alterar o IDLE_TIME para um valor maior, ou até para UNLIMITED, bastaria executar a query abaixo:
[code lang=”sql”]
ALTER PROFILE DEFAULT LIMIT IDLE_TIME UNLIMITED;
ALTER PROFILE DEFAULT LIMIT IDLE_TIME 120;
ALTER PROFILE DEFAULT LIMIT IDLE_TIME DEFAULT;
[/code]
Após pesquisar bastante, vi que tem um parâmetro no SQLNET.ORA que também faz o Oracle retornar esse erro em casos de inatividade, ele é o SQLNET.EXPIRE_TIME!
[server01:db01:]$ cat sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=12
SQLNET.ALLOWED_LOGON_VERSION_SERVER=12
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.EXPIRE_TIME=180
Pois bem, fiz a alteração do arquivo SQLNET.ORA que estava no $ORACLE_HOME do meu banco de dados para o valor 180 e consegui corrigir o erro.