/** 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); } }
/** The alarm listener. */ public void handleAlarm(Alarm alarm) { try { flush(); } finally { alarm = _alarm; if (alarm != null && _isActive && _autoFlushTime > 0) alarm.queue(_autoFlushTime); } }
/** 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); }