Que configuração da Sun Web ou App Server pode causar “Devido a um erro temporário, a solicitação não pôde ser atendida”

3

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:

  1. Como mencionei, vemos essa tela de forma intermitente, talvez uma solicitação de cada 100 a 500.
  2. Quando vemos a tela, ela é retornada sem atraso. Em outras palavras, não parece estar relacionado ao tempo limite.
  3. 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.
  4. Não acho que a rede seja um problema, pois os servidores da Web e de aplicativos estão no mesmo host.
  5. 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>
    
por jlpp 13.05.2009 / 22:54

2 respostas

1

Parece que, se o proxy estiver configurado para balanceamento de carga, basta um servidor para o qual, às vezes, o balanceamento de carga considera o servidor de aplicativos de destino muito ocupado e gera esse erro.

Você pode corresponder o erro que está vendo a qualquer tipo de carga no servidor? Existe uma maneira de tirar o balanceamento de carga da equação e teste? Você pode definir as configurações do balanceador de carga / visualizá-las para ver se tem limites muito conservadores?

    
por 14.05.2009 / 01:12
1

Eu suspeito que o recurso de verificação de integridade esteja em execução e decidindo que o servidor de back-end não está disponível. Talvez tente aumentar os valores de tempo limite na configuração do verificador de saúde ou desativá-lo completamente. Como há apenas um servidor de aplicativos para o proxy, isso não causará nenhuma perda de funcionalidade.

    
por 18.05.2009 / 04:36