Estou trabalhando com um sistema que está dando uma baita dor de cabeça.
Ele é estruturado em um rich:tabpanel, em cada painel é dada uma série de opções para o usuário escolher, e quando avança rerenderiza via ajax alguns paineis que exibem esta seleção.
99% das requisições são feitas via ajax. Como a abaixo:
Os loadings normalmente funcionam sem problemas, entretanto algumas requisições estão demorando DEMAIS e o painel de loading fica eternamente rodando… O mais estranho é que o erro se apresentam de forma totalmente aleatória, e em um ponto que funcionou a 2 minutos atraz, apresenta erro.
container usado: Tomcat 6
Gostaria de saber se algum de vocês já se deparou com isso ou pode me dar uma luz de como proceder pra arrumar esta coisa.
Amigo, tentei adicionar essa linha e tentei também via config no web.xml:
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
<init-param>
<param-name>enable-cache</param-name>
<param-value>false</param-value>
</init-param>
</filter>
Não deu certo… o erro é extremamente inconstante. é dificil até fazer ele acontecer. (O mais engraçado é que na maquina do chefe sempre dá de primeira. Na minha demora pelo menos 30 tentativas exaustivas)
Já experimentou monitorar as requisições feitas pelo browser, através de alguma ferramenta como Firebug ou IEHttpHeaders ?
A situação é realmente estranha, talvez isso dê alguma pista sobre que caminho seguir para descobrir a origem do problema.
Sim, tentei… firebug por um bom tempo, quando o problema se apresenta, o console mostra que ele ta em um loading eterno da pagina. vou tentar forçar e posto um pedaço do header.
tentei tirar todos os tunnings do web.xml, e mesmo assim apresenta problema, tentei por novamente… problema…
[code]
The buffer size to set on the response when the ResponseWriter is generated.
By default the value is -1, which will not assign a buffer size on the response.
facelets.BUFFER_SIZE
8192
Nesse caso também existe a possibilidade de o problema não ter nada a ver com o richfaces… talvez a requisição esteja engasgando em algum lugar no lado server, um deadlock ou algo assim.
Seu próximo passo poderia ser caprichar nas mensagens de log no Java (no início do método chamado pelo ajax, nas consultas a banco e em todos os demais pontos relevantes até o final da execução). Caso esteja parando em algum lugar no meio do caminho vc fica mais próximo de saber onde foi.
E veja se tem algum esquema para setar um timeout nas chamadas Ajax.