Почему мой пул потоков Tomcat 6 не используется разъемом?

StackOverflow https://stackoverflow.com/questions/2761618

Вопрос

Мой сервер.xml выглядит следующим образом:

<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<Executor  name="tomcatThreadPool" 
           namePrefix="catalina-exec-"
           maxThreads="200" 
           minSpareThreads="4"/>

<Connector executor="tomcatThreadPool"
           port="8080" protocol="HTTP/1.1"
           connectionTimeout="10000"
           maxKeepAliveRequests="1"
           redirectPort="8443" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

Однако в менеджере Tomcat (http: // localhost/Manager/Status) показывает следующее

http-8080: Max threads: -1 Current thread count: -1 Current thread busy: -1
jk-8009: Max threads: 200 Current thread count: 4 Current thread busy: 1

По какой-то причине, похоже, что HTTP-8080 не использует исполнителя, даже если он также направлен, и JK-8009 использует исполнителя, даже если ему не указано. Менеджер просто ошибочно отчитываюсь или я не настраивал пул потоков?

Это было полезно?

Решение

Я предполагаю, что менеджер сообщает о значениях, которые были установлены как часть определений соединителя, и не сообщает значения от исполнителя. Исполнитель будет работать, как и ожидалось, об этом просто не сообщается в менеджере.

Значение 200 для разъема AJP здесь вводит в заблуждение, так как 200 является значением по умолчанию для maxThreads (как определено здесь); Потому что вы не указали maxThreads Для разъема AJP это значение, которое используется.

Коннектор HTTP сообщает о бессмысленных значениях, потому что он делегирует управление потоком исполнителю.

Чтобы проверить, правда ли это, попробуйте изменить maxThreads значение исполнителя до другого значения. Тебе следует увидеть maxThreads разъема AJP, который остается на уровне 200 (потому что это значение по умолчанию).

Другие советы

Максимальное количество потоков обработки запросов, которые будут созданы этим разъемом, который, следовательно, определяет максимальное количество одновременных запросов, которые можно обработать. Если не указано, этот атрибут устанавливается на 200. Если исполнитель ассоциируется с этим соединителем, этот атрибут игнорируется, когда разъем выполнит задачи с помощью исполнителя, а не внутреннего пула потоков. Обратите внимание, что если исполнитель настраивается какое -либо значение, установленное для этого атрибута, будет записано правильно, но о нем сообщается (например, через JMX) как -1, чтобы ясно дал понять, что он не используется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top