sexta-feira, 6 de maio de 2011

Controle do time out

Para o correto gerenciamento dos recursos de um servidor Web (ISP), é preciso dimensionar com muita lógica e estudo o tempo de "time out" das aplicações.

O que é "time out" ?

Time out é o tempo após o qual a sessão na qual o usuário está, dentro de uma aplicação do servidor Web (IIS, Apache, Quick'n'easy, Chitami) expira, ou seja, ela cai e perde referências internas que sustentam a digitação ou operação do usuário.

Exemplo:

Você está preenchendo um formulário com informações para a a compra de um produto e demora demais. Quando vai olhar de novo para a tela do computador, ele exibe uma mensagem em inglês, ou informa de maneira clara que a página "expirou" e portanto você deve fazer tudo de novo.

Por que é preciso fazer isto ?

Se este controle de tempo não fosse feito, o servidor não suportaria tantas pessoas abrindo telas na Internet e deixando as mesmas abertas sem estar fazendo nada. Este tempo orça entre 10 e 20 minutos. Se uma pessoa não utiliza uma tela (não digita nada ou não mexe com o mouse) por 10 minutos, é porque a tela não lhe interessa mais. No caso do preenchimento de formulários, provavelmente a pessoa desistiu da compra ou de um cadastramento.

Controle pelo ASP

O controle pelo ASP é feito por intermédio das variáveis de Sessão (Session). O local predileto e adequado para iniciar a colocação de variáveis de sessão é a script chamada pela tela de login do sistema ou aplicação. Esta script recebe os dados do formulário de login (usuário e senha) e as trata:

<%

vUsuario = Request("Usuario") 
vSenha = Request("Senha")
Session("Usuario") = vUsuario      
%>

Os nomes dentro dos parênteses são os correspondentes "names" das tags de INPUT HTML da tela de login:

<FORM method="post" action="script de destino onde estará o código ASP">
Usuário:<INPUT type="text" name="Usuario">
Senha:<INPUT type="text" name="Senha">
</FORM>

A partir do processamento da script ASP, uma variável interna, invisível para todos os outros usuários que estiverem utilizando este sistema, armazenará o nome do usuário, e estará disponível para TODAS as páginas e scripts  chamadas por esta script.

Como testar se ocorreu o time out ?

No início das scripts chamadas por esta script e pelas demais, coloque o trecho:

<%
if Session("User") = "" then
Response.redirect "nome da script ou página HTML que corresponde à tela de login"
end if

%>

Desta forma, toda vez que uma script for chamada, vai ser feita a conferência da existência desta variável de Sessão (Session("Usuario")). Se ela estiver vazia, é porque perdeu o valor. E se perdeu o valor, é porque a sessão do usuário expirou.

Nenhum comentário:

Postar um comentário