View V$SESSION - Expiração do registro

Este forum é destinado a perguntas relacionadas a Oracle, mas que não se enquadram nos forums acima. Aqui serão tratadas também sobre outras tecnologias da oracle, como o Workflow, BPEL, Spatial, OCS, etc.
Responder
andfercoq
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Ter, 17 Jul 2007 5:11 pm
Localização: Mauá-SP

Estou trabalhando em uma aplicação que possui uma função que não pode ser acessada por mais de uma máquina ao mesmo tempo. Pensei em fazer um controle através da view V$SESSION porque caso a máquina fosse desligada inesperadamente, a função não ficaria bloqueada pois o registro seria eliminado automaticamente.
No entanto, notei que em algumas situações o registro permanece mesmo depois que a estação é desligada.
Há alguma outra forma de verificar se a sessão realmente está ativa?

Obrigado
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

andfercoq,

Estou respondendo este tópico antigo ainda em aberto, para o caso de outros foristas de depararem com o mesmo problema.

Às vezes, uma sessão pode se encerrar inesperadamente e o ORACLE continuar mantendo o registro desta sessão na V$SESSION, mesmo com o processo PMON atuando. Este problema era muito comum de ocorrer no WINDOWS, mas também pode ocorrer em sistemas como UNIX e LINUX. Uma explicação "não oficial" que recebi para este problema no UNIX é que no ORACLE, a sessão aponta para um processo do sistema operacional que não existe mais, o que impede dele efetivamente matar o processo no banco de dados como um todo.

Uma forma de você detectar automaticamente estes sessões mortas seria a de configurar o arquivo SQLNET.ORA do LISTENER, especificamente o parâmetro "sqlnet_expire_time", que indica o tempo máximo em minutos que um uma sessão pode permanecer inativa. Mas você precisaria fazer testes em um ambiente à parte, para verificar se ocorrem problemas com a sua aplicação ou "aumento no tráfego de rede".

Abaixo, seguem alguns links que tratam deste tema:

http://decipherinfosys.wordpress.com/20 ... in-oracle/
http://www.dba-oracle.com/t_sqlnet_expire_time.htm
http://docs.oracle.com/cd/B19306_01/net ... sqlnet.htm
http://www.oracle-base.com/articles/mis ... ssions.php
http://asktom.oracle.com/pls/asktom/f?p ... 4142376742

Abraços,

Sergio Coutinho
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes