/** start the connection manager. */
  public void start() {
    if (!_lifecycle.toActive()) return;

    if (0 < _idleTimeout && _idleTimeout < 1000) _alarm.queue(1000);
    else if (1000 < _idleTimeout && _idleTimeout < 60000) _alarm.queue(_idleTimeout);
    else _alarm.queue(60000);
  }
  /** Alarm listener. */
  @Override
  public void handleAlarm(Alarm alarm) {
    if (!_lifecycle.isActive()) return;

    try {
      _alarmConnections.clear();

      synchronized (_connectionPool) {
        _alarmConnections.addAll(_connectionPool);
      }

      for (int i = _alarmConnections.size() - 1; i >= 0; i--) {
        ManagedPoolItem item = _alarmConnections.get(i);

        if (!item.isValid()) item.destroy();
      }

      _alarmConnections.clear();

      fillIdlePool();
    } finally {
      if (!_lifecycle.isActive()) {
      } else if (0 < _idleTimeout && _idleTimeout < 1000) _alarm.queue(1000);
      else if (1000 < _idleTimeout && _idleTimeout < 60000) _alarm.queue(_idleTimeout);
      else _alarm.queue(60000);
    }
  }
Ejemplo n.º 3
0
 /** The alarm listener. */
 public void handleAlarm(Alarm alarm) {
   try {
     flush();
   } finally {
     alarm = _alarm;
     if (alarm != null && _isActive && _autoFlushTime > 0) alarm.queue(_autoFlushTime);
   }
 }
Ejemplo n.º 4
0
  /** Initialize the log. */
  @PostConstruct
  public void init() throws ServletException, IOException {
    _isActive = true;

    if (_alarm != null) _alarm.queue(60000);

    if (_format == null) _format = "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"";

    ArrayList<Segment> segments = parseFormat(_format);

    _segments = new Segment[segments.size()];
    segments.toArray(_segments);

    if (_timeFormat == null || _timeFormat.equals("")) {
      _timeFormat = "[%d/%b/%Y:%H:%M:%S %z]";
      _timeFormatSecondOffset = 0;
      _timeFormatMinuteOffset = 0;
    }

    _logWriter.init();
    // _sharedBufferLock = _logWriter.getBufferLock();

    if (_autoFlushTime > 0 && _alarm != null) _alarm.queue(_autoFlushTime);
  }