Запрос Coldfusion никогда не прерывается для запросов ldap! - PullRequest
1 голос
/ 23 февраля 2011

У меня есть приложение, работающее на CF8, которое часто обращается к внешним системам, таким как поисковая система и ldaps. Но иногда какой-то запрос никогда не получает ответ и всегда отображается в списке активных запросов.

Даже если в администрации установлен тайм-аут запроса, он не применяется к этим сценариям.

У меня есть около 5 запросов, ожидающих завершения в течение последних 20 часов !!!

My server settings are as below

Timeout Requests after ( seconds) : 300 sec

Max no of simultaneous requests : 20

Maximum number of running JRun threads : 50

Maximum number of running JRun threads  : 1000

Timeout requests waiting in queue after 300 seconds 

Я прочитал несколько статей и обнаружил, что есть случаи, когда потоки никогда не отвечают и не уничтожаются. Но у меня нет твердого решения, как я могу остановить это или убить автоматически

очень признателен, если у вас, ребята, есть идея на этот счет:)

Ответы [ 3 ]

2 голосов
/ 23 февраля 2011

Вы можете (и, вероятно, должны) установить тайм-аут для самого вызова CFLDAP.http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f97.html

2 голосов
/ 23 февраля 2011

Тайм-аут ColdFusion не применяется к сторонним соединениям.

Например, длительный запрос LDAP займет столько времени, сколько ему необходимо.Когда вызывающий шаблон получает результат запроса, ваш тайм-аут будет применяться.

Это часто приводит к ошибкам при интерпретации путаницы.Вы получите сообщение о том, что любая функция после долгосрочного запроса вызывает тайм-аут.

Дополнительные сведения доступны здесь

1 голос
/ 24 февраля 2011

Спасибо, Энтони, за то, что порекомендовал мою запись в блоге CF911: ложь, проклятая ложь и тайм-ауты запроса CF ... Что вы не понимаете . Эта проблема с запросами, которые не ожидают ожидания, может быть очень сложной и неожиданной для большинства.

Но Anooj, хотя это хотя бы объясняет, ПОЧЕМУ они не умирают (и вы не можете убить их в CF), следует учитывать, что вы можете убить их на вызываемом REMOTE-сервере, в ваш случай, сервер LDAP.

Возможно, вы сможете обратиться к администратору ТА-сервера и, показав им, что у CF есть длительный запрос, они смогут обнаружить и решить проблему. И если они могут, это может освободить соединение от CF и ваш запрос будет остановлен.

Я только что добавил новый раздел об этой идее в конец этой записи в блоге, так как «Так я действительно ничего не могу сделать для зависших запросов?»

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...