UnavailableExceptionpublic class UnavailableException extends ServletException Defines an exception that a servlet or filter throws to indicate
that it is permanently or temporarily unavailable.
When a servlet or filter is permanently unavailable, something is wrong
with it, and it cannot handle
requests until some action is taken. For example, a servlet
might be configured incorrectly, or a filter's state may be corrupted.
The component should log both the error and the corrective action
that is needed.
A servlet or filter is temporarily unavailable if it cannot handle
requests momentarily due to some system-wide problem. For example,
a third-tier server might not be accessible, or there may be
insufficient memory or disk storage to handle requests. A system
administrator may need to take corrective action.
Servlet containers can safely treat both types of unavailable
exceptions in the same way. However, treating temporary unavailability
effectively makes the servlet container more robust. Specifically,
the servlet container might block requests to the servlet or filter for a period
of time suggested by the exception, rather than rejecting them until
the servlet container restarts. |
Fields Summary |
---|
private Servlet | servlet | private boolean | permanent | private int | seconds |
Constructors Summary |
---|
public UnavailableException(Servlet servlet, String msg)
super(msg);
this.servlet = servlet;
permanent = true;
| public UnavailableException(int seconds, Servlet servlet, String msg)
super(msg);
this.servlet = servlet;
if (seconds <= 0)
this.seconds = -1;
else
this.seconds = seconds;
permanent = false;
| public UnavailableException(String msg)Constructs a new exception with a descriptive
message indicating that the servlet is permanently
unavailable.
super(msg);
permanent = true;
| public UnavailableException(String msg, int seconds)Constructs a new exception with a descriptive message
indicating that the servlet is temporarily unavailable
and giving an estimate of how long it will be unavailable.
In some cases, the servlet cannot make an estimate. For
example, the servlet might know that a server it needs is
not running, but not be able to report how long it will take
to be restored to functionality. This can be indicated with
a negative or zero value for the seconds argument.
super(msg);
if (seconds <= 0)
this.seconds = -1;
else
this.seconds = seconds;
permanent = false;
|
Methods Summary |
---|
public javax.servlet.Servlet | getServlet()
return servlet;
| public int | getUnavailableSeconds()Returns the number of seconds the servlet expects to
be temporarily unavailable.
If this method returns a negative number, the servlet
is permanently unavailable or cannot provide an estimate of
how long it will be unavailable. No effort is
made to correct for the time elapsed since the exception was
first reported.
return permanent ? -1 : seconds;
| public boolean | isPermanent()Returns a boolean indicating
whether the servlet is permanently unavailable.
If so, something is wrong with the servlet, and the
system administrator must take some corrective action.
return permanent;
|
|