users@glassfish.java.net

Due to a temporary error the request could not be serviced

From: <glassfish_at_javadesktop.org>
Date: Thu, 14 May 2009 14:20:28 PDT

This is regarding a Java EE application on a Solaris machine with Sun Java System Web Server 6.1 and Sun Java System Application Server 8.1. The web server is acting as a load balancer/proxy for requests going to the application server. The load balancer only points to one application instance.

When making requests through the proxy to the application, we're intermittently seeing a purple/blue page that says the following:

----------
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.A few things to note:
----------

1.As I mentioned, we see this screen intermittently maybe one request out of every 100-500.
2.When we do see the screen, it is returned without delay. In other words, it doesn't seem to be timeout related.
3.Refreshing the page will cause the actual application page being requested to display. In other words, it doesn't seem that there was a temporary server outage in that 1-2 seconds between the error page loading, the refresh, and the real page loading.
4.I don't think the network is an issue since the web and application servers are on the same host.
5.The web server logs have the following error when this error page appears: [02/Feb/2009:15:37:32] warning (19614): reports: lb.runtime: ROUT1014: Non-idempotent request /applicationContext cannot be retried.
[02/Feb/2009:15:37:32] info (19614): reports: lb.runtime: RNTM3003 : Error servicing the request : selected server could not service

What could be causing this error page to come up?

Here's the load balancer config:
<!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>

Thanks for any help!
[Message sent by forum member 'jeffersonparke' (jeffersonparke)]

http://forums.java.net/jive/thread.jspa?messageID=346357