Contornar Timeout de proxy reverso

3 respostas
R

Tenho uma aplicação utilizando struts 1.3, um servidor tomcat 5.5 e estou utilizando java 5 update 11.

Estou enfrentando o seguinte problema:

Para acesso a minha aplicação existe um proxy reverso, por motivos de regras de segurança… pois bem

1- Atualmente temos alguns gargalos em algumas consultas que a equipe de DBAs estão resolvendo…

2- Nesse proxy reverso temos um timeout, por motivos de segurança é de 5 min… e pronto
Apos os 5 min o proxy finaliza a conexão com minha aplicação, e exibe sua tela padrão de erro
502 BAD GATEWAY
Ao exibir esta msg minha aplicação nem sabe disso ela faz o dela mas quando temina seu processo
o proxy ja finalizou a conexão a ela…

3- No meio esta minha aplicação, e meu problema como finalizar qualquer processo que ela esteja fazendo dentro de um tempo limite, no qual eu determinho menor do que o timeout do proxy, exibindo uma msg agradavel para meu usuário, “SUA CONSULTA EXCEDEU O TEMPO LIMITE DE NOSSO SERVIDOR”

Nessa empreitada eu implementei um controle de transação javax.transaction.UserTransaction

UserTransaction utx = null;
  try {
  Context ic = new InitialContext();
   utx = (UserTransaction) ic.lookup("java:comp/UserTransaction");
       utx.setTransactionTimeout(4000); // definido para 4 minutos
       utx.begin();
       //MEU PROCESSO
       utx.commit();
  }catch (Exception e) {	
       utx.rollback();
       e.printStackTrace();
  }

Este controle funciona em parte, pois bem:
Ele funciona mas aguarda a execução do processo,
e so na finalização deste processo que ele gera exceção do timeout definido na aplicação

No caso processo demorar 6 min, o msg de erro do proxy já foi ativada em 5 min, de nada mais adianta controle algum.

PERGUNTA:
É possível implementar algo para contornar esse timeout do proxy reverso na minha aplicação java, finalizando um processo em um tempo menor que o timeout do proxy?

Grato em quem puder ajudar!

3 Respostas

Aldrin_Leal

Possível? Sim. Viável? Sim. Fácil? Suspeito que não.

Não compensa. Troque os DBAs ou resolva você mesmo :slight_smile:

R

Aldrin Leal,

Este é problema os DBAs são de outra equipe, e a corda arrebenta sempre pro mas fraco, ou aquele que não consegue culpar ninguem…

A meu ver estou atravancado pelo pessoal de intraestrutura e segurança - proxy reverso

Eu tenho que contornar o problema do timeout, possível tudo é possível basta me dar tempo … rs
Quero uma solução pronta, testada e certa que ira resolver o problema… “MEU CHEFE”

O JTA javax.transaction.UserTransaction achei que iria resolver meu problema mas fiquei na mesma

A turma de DBAs enrolam pq não todas a consultas que demoram so uma, entao devolvem pro meu lado dizendo que o controle é meu…

Meu problema é contornar o timeout do proxy reverso impedindo dele estourar, exibindo uma msg tratada

Feito isso estaria resolvido!

Grato em quem puder ajudar!!!

Aldrin_Leal

Tire o seu da reta: Faça um profile da aplicação e meça quanto tempo a transação dura. É inadmissível um cenário desses, e você há de convir.

Criado 10 de setembro de 2007
Ultima resposta 10 de set. de 2007
Respostas 3
Participantes 2