Tempo aproximado para leitura: 00:01:30 min
Dúvida
Como o Controle de Sessões do DI - Datasul Interative identifica sessões inativas no Oracle?
Ambiente
Framework - (Linha Datasul) - Segurança (SEC) - A partir da versão 12.1.25
Solução
A tabela de sessões do Oracle - v$session possui dois campos, utilizados para verificação de inatividade da sessão do usuário, sendo eles:
- SECONDS_IN_WAIT: corresponde ao o tempo que a sessão está inativa;
- STATUS: corresponde ao estado da sessão. O STATUS estando como INACTIVE não indica que a sessão foi perdida, podendo ser uma sessão ainda válida que não recebeu nenhuma atividade recente do Client Progress.
Estando o STATUS como INACTIVE, o Datasul irá avaliar o tempo de inatividade deste Client Progress. Caso esse tempo de inatividade for superior ao definido no Sistema, será desconsiderado da verificação de quantidade de sessões permitidas por usuário. Por padrão, o Datasul considera o tempo de 30 minutos de inatividade.
Sendo o tempo padrão fora da expectativa para o seu ambiente, este tempo poderá ser alterado. Para alterar, edite o arquivo datasul_framework.properties e inclua a propriedade oracle.session.minutes.in.wait seguido pelo tempo, em minutos, sendo que o menor tempo é de 5 minutos. Exemplo: para que o tempo de inatividade seja 10 minutos inclua o parâmetro como oracle.session.minutes.in.
É possível controlar manualmente as sessões ativas ou mesmo considerar todas as sessões independentemente ao tempo. Para tal adicione a propriedade com o tempo zerado.
Exemplo: oracle.session.minutes.in.wait=0.
Um Client Progress fica com STATUS INACTIVE quando ocorre uma perda de comunicação deste Client Progress com o banco de dados, originada via queda de rede ou queda de energia. É apresentado erros Progress ao usuário e o fechamento de, porém a sessão na tabela v$session é mantida até que ocorra o TimeOut do Oracle.
0 Comentários