Я использую Glassfish v3 для обслуживания больших файлов (glassfish также используется для бизнес-логики - FYI). Я знаю, что Glassfish работает с веб-сервером Grizzily. Я использую Grizzily в синхронном режиме. Это означает, что если есть 100 потоков, разрешено только 100 загрузок. Остальные запросы будут поставлены в очередь. Однако я хочу установить 503 для HTTP-клиентов, которые не могут обслуживаться из-за отсутствия рабочих потоков (максимум 100).
Вопрос
- Должны ли запросы даже быть разрешены для постановки в очередь, когда нет доступных рабочих потоков
- Как узнать, когда рабочие потоки исчерпаны? Ручной счетчик?
- где в коде (фильтр, сервлет?) я должен установить код ошибки вместе с данными заголовка повторной попытки?