2014-09-15 3 views
2

С запланированными задачами, но не прикованными, я получаю следующую ошибку в своем exception.log при запуске служб Adobe ColdFusion 10 (в Windows). Как устранить эту проблему с источником ошибки?DefaultQuartzScheduler_Worker «Задача invokehandler не может быть привязана»

"Error","DefaultQuartzScheduler_Worker-2","09/15/14","15:12:02",,"Task invokehandler could not be chained" 
java.lang.Exception: Task invokehandler could not be chained 
    at coldfusion.scheduling.CronTask.onCompleteTask(CronTask.java:214) 
    at coldfusion.scheduling.CronTask.execute(CronTask.java:130) 
    at org.quartz.core.JobRunShell.run(JobRunShell.java:213) 

Примечание: Я получаю три почти одинаковые ошибки только разница, где он говорит: «Рабоче-2» в ошибке выше, я также получаю «Рабоче-1» и «Рабочий-3»

ответ

1

Здесь вы можете сделать пару вещей. Вы можете написать страницу ColdFusion, которая проверяет работоспособность запланированных задач и контролирует эту страницу вручную (Check health of scheduled tasks). Конечно, этот код также может быть самой запланированной задачей. Или вы можете добавить записи в запланированные задачи (ы) в разных точках, чтобы «видеть», что они делают. Я предпочитаю последнее.

Для простейшего ведения журнала вы можете проверить «Включить ведение журнала для запланированных задач» в администраторе ColdFusion на странице «Параметры ведения журнала». Это создаст новый файл журнала с именем scheduler.log. Эта опция будет сообщать, когда задача запускается, когда она заканчивается, если это ошибка и т. Д. BUT Этот журнал по-прежнему содержит только общую информацию, такую ​​как имя задачи и имя потока, используемые для выполнения задачи. Это само по себе, вероятно, не поможет вам, но покажет вам, какой поток выполняет какую задачу.

Для получения более подробной информации вам нужно будет добавить свой собственный журнал в свои запланированные задачи. Я обычно размещаю код регистрации в основных точках во время выполнения кода; «начать», «получить данные», «обновить базу данных», «написать файл», «сделать» и т. д. Затем, когда вам нужно проверить, что произошло с задачей, вы просто прочитали свой файл журнала, чтобы посмотреть.

Вот некоторые примеры кода:

<cftry> 
    <cflog file="your_file_name" type="information" text="Starting scheduled job xyz"> 

    ... code ... 

    <cflog file="your_file_name" type="information" text="Step 123"> 

    ... code ... 

    <cflog file="your_file_name" type="information" text="Step 456"> 

    ... code ... 

    <cflog file="your_file_name" type="information" text="Scheduled job xyz finished successfully"> 

    <cfcatch type="any"> 
     <cflog file="your_file_name" type="error" text="Error: #cfcatch.Type#, #cfcatch.Message#, #cfcatch.Detail#"> 
     <!--- I usually send an email to myself for errors as well using <cfmail ... /> ---> 
    </cfcatch> 
</cftry> 

А вот ссылка на documentation for the <cflog> tag.

+0

Спасибо за подробный ответ, Miguel-F. Хотя это действительно полезный совет в целом, я не совсем убежден, что это затрагивает проблему. Проблема в том, что когда сервер инициализируется, он выдает эти ошибки в exception.log. Исключения связаны с тем, что они не могут целенаправлять задачи, хотя ни одна из задач не сконфигурирована как цепочка. –

+0

Этот ответ не был предназначен для решения вашей проблемы. Это просто средство для добавления журнала в ваши задачи, чтобы увидеть, где/если задачи выполняются. В надежде, что пролить свет на этот вопрос или, по крайней мере, какая задача вызывает эту проблему. Если у вас уже есть регистрация в ваших задачах, вы можете игнорировать. Это было непонятно из вашего первоначального поста. –

1

Я нашел ту же ошибку и для Задание invokehandler не удалось связать в журналах исключений после выполнения обновления до новой версии ColdFusion с помощью мастера миграции. Это, по-видимому, вызвано вводом текста invokehandler во время импорта заданных задач.

Remedy такое поведение со следующими шагами:

  1. Войдите на ColdFusion Administrator
  2. Редактировать каждое запланированное задание (нажмите на значок карандаша) и выполните следующие действия:
    1. Scroll вниз и нажмите Показать Дополнительные настройки
    2. Удалить текст i nvokedhandler из На Полном поля
    3. Нажмите Отправить

Ошибку следует прекратить в этот момент после редактирования всех запланированных задач.

+0

Спасибо @Brendan, я больше не работаю там, где это было актуально, но я буду уверен, что они знают о вашем обновлении, если они все еще бьют головы против этой стены :) –

Смежные вопросы