За последние несколько лет мы случайно видели это сообщение в выходных журналах при выполнении запланированных задач в ColdFusion:
Слишком глубокая рекурсия;стек переполнен.
Код внутри вызываемой задачи может варьироваться, но в этом случае это ОЧЕНЬ простой код, который ничего не делает, только сбрасывает счетчик в базе данных, а затем отправляет мне электронное письмо на адресскажи мне, что это было успешно.Но я видел, как это происходит со всеми видами кода, поэтому я почти уверен , что это не тот код, который вызывает эту проблему.
В нем даже есть пустой application.cfm / cfcзаблокировать любой другой вызываемый код.
Единственный раз, когда мы видим это, когда мы перезапускаем CF и пытаемся просмотреть страницу до того, как служба полностью запустится.
Ошибкаредко случается, но теперь у нас есть довольно важные запланированные задачи, которые вызывают проблемы, если они не запускаются.(Поэтому я выкладываю сюда для помощи)
Использование памяти в порядке.Задача, которая выполнялась как раз перед тем, как сообщить о более чем 80% свободной памяти.Мониторинг памяти в течение ночи не показывает никаких необычных всплесков.Машина имеет 4 гигабайта памяти и на ней больше ничего не работает, кроме ОС и CF.Недавно мы попытались переустановить CF для решения проблемы, но это не помогло.Это происходит и на нескольких других наших серверах.
Это внутренний сервер, поэтому его использование в 3 часа ночи должно отсутствовать.В это время нет других запланированных задач.
Мы видели это на наших коробках CF7, CF8 и CF9 (полностью исправлены).
Текущее полеинформация о вопросе:
- Версия CF: 9,0,1,274733
- Редакция: Enterprise
- ОС: Windows 2003 Server
- JavaВерсия: 1.6.0_17
- Мин JVM Куча: 1024
- Макс JVM Куча: 1024
- Мин Пермь Размер: 64м
- Макс Пермь Размер: 384м
- Память сервера: 4 ГБ
- Четырехъядерный компьютер, который редко видит использование ЦП более 5%
Настройки JVM:
-server -Dsun.io.useCanonCaches = false -XX: PermSize = 64m -XX: MaxPermSize = 384m -XX: + UseParallelGC -XX: + AggressiveHeap -Dcoldfusion.rootDir = {application.home} /../ -Dcoldfusion.libPath = {application.home} /../ lib -Doracle.jdbc.V8Compatible = true
Вот невероятный сложный код, который не удалось запустить прошлой ночью, но выполнялся годами, ибольше всего понравитсяЗавтра беги:
<cfquery datasource="common_app">
update import_counters
set current_count = 0
</cfquery>
<cfmail subject="Counters reset" to="my@email.com" from="my@email.com"></cfmail>
Если я что-то пропустил, дай мне знать. Спасибо!