Timeout é um termo em inglês utilizado para determinar um limite de tempo, e na computação isso é muito utilizado para limitar o tempo máximo que um procedimento ou rotina pode executar ininterruptamente.
A plataforma Sankhya-W/Jiva-W possui alguns tipos de timeouts, e cada um deles determina limites diferentes, como segue:
1 – Timeout de query
Esse timeout determina o limite de tempo que o sistema espera pela resposta em consultas e outros comandos no banco de dados (select, update, insert, delete).
Ao atingir o limite de tempo, o banco de dados será notificado pela aplicação para que ele “desista” da operação, e retorne um erro. No caso do Oracle esse erro é ORA-01013, e para o SQLServer não há um código específico, mas o texto da mensagem é sugestivo à timeout.
Esse timeout é definido pelo atributo -Djape.global.query.timeout (em segundos) e deve ser configurado em JBOSS_HOME/bin/run.conf (o arquivo pode ser diferente a depender da versão do JBoss ou sistema operacional). Na ausência de configuração, o valor padrão é de 300 segundos (5 minutos).
2 – Timeout de sessão
Esse tempo determina quanto tempo uma operação completa pode durar. Em uma operação completa podemos ter diversas transações e milhares de interações com o banco de dados (select/updates/inserts/deletes), portanto ela determina a janela total de tempo em uma operação. Em termos práticos, seria o tempo total decorrido entre o usuário clicar em um botão na tela, a requisição chegar ao servidor, ser totalmente processada e a resposta gerada.
Esse timeout é definido pelo atributo -Djape.session.timeout (em milisegundos) no arquivo JBOSS_HOME/bin/run.conf.
Ao atingir o limite de tempo, será apresentado ao usuário a mensagem “JapeSession timeout”
Na ausência de configuração o valor padrão é de 300000 ms, ou seja, 5 minutos.
3 – Timeout de transação
Esse é o tempo máximo de uma transação com o banco de dados (TRANSACTION_TIME_OUT). Uma operação no sistema pode compreender diversas transações, e esse timeout determina o tempo limite de cada uma delas, não a somatória.
Esse timeout é definido em um arquivo de configuração no JBoss (em segundos) e existe um post ensinando como configurar.
Ao acontecer esse tipo de timeout a transação é automaticamente desfeita (rollback) e para o usuário é apresentada uma mensagem do tipo “Transaction is not active”.
Se uma determinada operação compreende diversas transações e uma delas teve o limite de tempo excedido, então apenas ela vai sofrer rollback, ficando as anteriores com o status “COMMITED”.
Atualmente, é possível configurar os timeouts de tipo 2 e 3 (sessão e transação) diretamente pelo sistema, sem a necessidade de editar arquivos no linux e nem reiniciar o sistema.
Essa configuração é feita na tela “Administração do Servidor”, aba “Avançado”, conforme imagem abaixo:
- Caminho de alteração dos arquivos no Wildfly:
<WILDFLY>/bin/standalone.conf (Linux)
<WILDFLY>/bin/standalone.conf.bat (Windows)
Fonte: http://code2.sankhya.com.br/
Comentários
0 comentário
Por favor, entre para comentar.