Eu não sou o administrador do sistema para este servidor, mas estou tentando ajudar o grupo que é administrador do sistema a encontrar uma correção rapidamente. Por esse motivo, não tenho acesso a todos os arquivos de configuração do servidor.
Com isso fora do caminho, aqui está minha pergunta:
Trata-se de um aplicativo Java EE em uma máquina Solaris com o Sun Java System Web Server 6.1 e o Sun Java System Application Server 8.1. O servidor da web está agindo como um proxy para solicitações que vão para o servidor de aplicativos. Meu entendimento é que ele também é configurado como um balanceador de carga, embora aponte apenas para uma instância do aplicativo, portanto, parece que não há nada a equilibrar.
Ao fazer solicitações por meio do proxy para o aplicativo, estamos vendo intermitentemente uma página em roxo / azul que diz o seguinte:
Due to a temporary error the request could not be serviced.
The problem could be because:
- The server is busy.
- The server is temporarily unavailable.
You may choose to resubmit the request, but be aware that the request might
have already been processed. Depending on the type of request, you may not
want it to be processed twice. Please click here to re-submit.
Algumas coisas a serem observadas:
- Como mencionei, vemos essa tela de forma intermitente, talvez uma solicitação de cada 100 a 500.
- Quando vemos a tela, ela é retornada sem atraso. Em outras palavras, não parece estar relacionado ao tempo limite.
- A atualização da página fará com que a página do aplicativo real seja solicitada para exibição. Em outras palavras, não parece que houve uma indisponibilidade temporária do servidor nesse intervalo de 1 a 2 segundos entre o carregamento da página de erro, a atualização e o carregamento real da página.
- Não acho que a rede seja um problema, pois os servidores da Web e de aplicativos estão no mesmo host.
- Os registros do servidor da web apresentam o seguinte erro quando esta página de erro é exibida:
[02 / Feb / 2009: 15: 37: 32] warning (19614): relatórios: lb.runtime: ROUT1014: Pedido / idempotente não idempotente não pode ser tentado novamente.
[02 / Feb / 2009: 15: 37: 32] info (19614): relatórios: lb.runtime: RNTM3003: Erro ao atender a solicitação: o servidor selecionado não pôde atender
O que poderia estar causando essa página de erro?
Obrigado
Jeff
Atualização:
Veja a configuração do balanceador de carga:
<!DOCTYPE loadbalancer PUBLIC "-//Sun Microsystems Inc.//DTD Sun ONE Application Server 7.1//EN" "sun-loadbalancer
_1_1.dtd">
<loadbalancer>
<cluster name="cluster1">
<instance name="instance1" enabled="true" disable-timeout-in-minutes="60" listeners="http://host.domain.com:32000"/>
<web-module context-root="/applicationContext" enabled="true" disable-timeout-in-minutes="60" error-url="sun-http-lberror.html" />
<health-checker url="/applicationContext" interval-in-seconds="30" timeout-in-seconds="10" />
</cluster>
<cluster name="other_cluster">
<instance name="other_host" enabled="true" disable-timeout-in-minutes="60" listeners="http://host2.domain.com:80000"/>
<web-module context-root="/otherContext" enabled="true" disable-timeout-in-minutes="60" error-url="./sun-http-lberror.html" />
<health-checker url="/otherContext" interval-in-seconds="30" timeout-in-seconds="10" />
</cluster>
<property name="reload-poll-interval-in-seconds" value="60"/>
<property name="response-timeout-in-seconds" value="600"/>
<property name="https-routing" value="false"/>
<property name="require-monitor-data" value="false"/>
</loadbalancer>