Пример #1
0
  /** Handle the request. */
  @Override
  public void service(ServletRequest request, ServletResponse response)
      throws ServletException, IOException {
    HttpServletRequest req = (HttpServletRequest) request;
    HttpServletResponse res = (HttpServletResponse) response;

    OutputStream out = res.getOutputStream();

    String sessionId = null;

    ClientSocket stream = _loadBalancer.openSticky(sessionId, null);
    boolean isValid = false;

    if (stream == null) {
      if (log.isLoggable(Level.FINE))
        log.fine(this + " cannot open a stream from " + _loadBalancer);

      res.sendError(503);
      return;
    }

    try {
      // fcgiSocket.setExpire(Alarm.getCurrentTime() + _keepaliveTimeout);

      boolean isKeepalive = true;
      long startRequestTime = Alarm.getCurrentTime();

      if (handleRequest(req, res, stream, out, isKeepalive)) {
        stream.free(startRequestTime);
        stream = null;
      }
    } catch (Exception e) {
      log.log(Level.WARNING, e.toString(), e);
    } finally {
      if (stream != null) stream.close();
    }
  }
Пример #2
0
 public void destroy() {
   _loadBalancer.close();
 }