Запуск операции по расписанию
На страницу 1, 2 След.
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Emel Участник со стажем
Вступление в Клуб: 02.07.2007
|
Вт Окт 30, 2007 18:37  Запуск операции по расписанию |
|
Полезность: Нет оценки
|
Подскажите плиз
Как запустить операцию по расписанию
или где почитать про это
спасибо |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Вт Окт 30, 2007 23:09   |
|
Полезность: 1
|
1. В Навигаторе меню "Система / Выполнение заданий по расписанию"
2. Вызываем "Добавить в список операций"
3. Затем над добавленной операцией вызываем "Добавить в список заданий"
4. Потом задаем интервал запуска через одноименную операцию и ставим в очередь операцией "Поставить задание в очередь".
Доку что-то не нашел. Куда-то ее далеко запрятали, что ли? |
|
 |
aero1530 Профи
Вступление в Клуб: 29.06.2007
|
Ср Окт 31, 2007 09:00   |
|
Полезность: Нет оценки
|
Когда возник такой же вопрос - перекопал всю документацию и ничего не нашел. Зарегистрировал консультацию в ЦФТ, но и у них или нет документации, или просто отмахнулись...
Есть еще пункт "Выполнение текстовых заданий" - может, кто знает, для чего это и как настраивать? _________________ Александр Евтушенко, Волгопромбанк |
|
 |
alexiy Профи
Вступление в Клуб: 29.06.2007
|
Ср Окт 31, 2007 11:31   |
|
Полезность: 2
|
ЦФТ говорит - нет описания.
Присутствует только в комментариях к соотв. типу и его элементам в АРМе "Администратор словаря данных"...".
Вот, выдрал из типа (да не сочтется за флуд):
"
Тип предназначен для управления запуском заданий (операций) по расписанию.
Реквизиты:
METHOD_CLASS - тип, которому принадлежит операция.
SHORT_NAME - короткое имя операции.
NAME - наименование операции.
В качестве заданий могут выполняться только групповые (статические) операции
без параметров или только с умолчательными параметрами. Причем если такие
параметры существуют, то в качестве первого параметра при запуске задания
передается значение реквизита [CODE] текущего задания, а если в списке
параметров существует параметр, описанный как ссылка на "Выполнение заданий
по расписанию", то при запуске задания в этом параметре передается значение
ссылки на текущее задание.
FIRST_TIME - время для запуска задания. Если задан момент в будущем, то операция
будет активизирована в указанное время, если задан момент в прошлом, то операция
будет активизирована сразу же, как будет поставлена в очередь заданий.
INTERVAL - формула для вычисления следующего момента для запуска. После
выполнения задания по этой формуле вычиляется время для следующего запуска
(модифицируется реквизит FIRST_TIME). Интервал должен возвращать момент
времени в будущем. В формуле могут участвовать стандартные функции работы
с датами (SYSDATE, NEXT_DAY, ADD_MONTH, TRUNC и др.), а также реквизиты
[FIRST_TIME], [START_TIME], [STOP_TIME]. После выполнения задания по этой
формуле модифицируется реквизит [FIRST_TIME] времени следующего запуска.
Если интервал не задан, то задание может само модифицировать значение реквизита
[FIRST_TIME] по передаваемой ей ссылке (либо оно само может определить эту ссылку),
если же оно этого не делает, тогда выполняется один раз и блокируется.
EXECUTE - признак блокировки задания. Если установлен в TRUE, то задание выполняться
не будет, даже если время его запуска прошло. Этот флаг автоматически устанавливается
в TRUE либо после 10 неудачных попыток выполнить задание (если во время выполнения
возникает исключение - EXCEPTION), либо время следующего запуска оказывается в
прошлом (это происходит, например, если не задан реквизит [INTERVAL] ).
JOB - номер задания. Устанавливается при постановке в очередь заданий.
SUBMIT_TIME - в реквизит заносится время постановки задания в очередь.
SUBMIT_USER - в реквизит заносится информация о пользователе, поставившем задание
в очередь, в следующем формате: <имя пользователя Oracle>.<сетевое имя>.<AUDSID сессии>.
START_TIME - время, когда задание было последний раз запущено.
STOP_TIME - время, когда задание было последний раз выполнено.
TOTAL - суммарное время выполнения задания (в секундах) за все предыдущие запуски
задания.
SUCCESS - счетчик количества успешных запусков задания.
FAILURES - счетчик количества попыток запуска задания, завершающихся с ошибкой
(генерацией исключения). При этом следующая попытка запуска произойдет через
интервал времени в секундах, равный значению счетчика попыток, умноженному на 30.
При достижении счетчиком значения 10 задание блокируется.
INFO - информация. В нее заносится информация о состоянии задания - времени постановки
в очередь, времени последнего запуска и завершения, сообщения об ошибках выполнения.
CODE - дополнительный строковый параметр (код) для задания (передается в качестве параметра
в операцию выполнения задания).
FLAGS - флаги посылки сообщений, побитно:
0 - сообщение при запуске задания,
1 - сообщение при завершении задания,
2 - скрыть от просмотра реквизит CODE,
3 - флаг разрешения выполнения задания в случае ошибки регистрации сессии.
NODE - узел Oracle Parallel Server, на котором следует запускать задание,
если не указывается или указывается 0, то запуск произойдет на любом из узлов.
SRV - сервер LOCK_INFO (номер пайпы), на котором следует запускать задание,
если не указывается или указывается 0, то запуск произойдет на любом из
возможных серверов.
ACTIVE_TIME - время активности задания (в минутах) без перезагрузки задания
Oracle. Полезно указывать для часто выполняемых заданий, чтобы сократить
количество событий соединения с БД (которое весьма ресурсоемко)
Примечание. При запуске задания проверяются права пользователя, поставившего задание
в очередь, на выполнение операции, определяющей задание.
" _________________ two bee or not two bee
Последний раз редактировалось: alexiy (Чт Мар 20, 2008 09:28), всего редактировалось 1 раз |
|
 |
dbmaslov Профи
Вступление в Клуб: 11.07.2007
|
Ср Окт 31, 2007 12:00   |
|
Полезность: Нет оценки
|
Уважаемый автор, дабы данный топик приобрел законченный вид, уточните, пожалуйста, Вам удалось поставить операцию на выполнение по расписанию? _________________ Маслов Дмитрий |
|
 |
Васильев Николай Профи
Вступление в Клуб: 29.06.2007
|
Пт Ноя 02, 2007 14:51   |
|
Полезность: Нет оценки
|
У нас работает несколько заданий- б/к, фактура, экспорт в хранилище, обработчик документов рц, например |
|
 |
dale Участник со стажем
Вступление в Клуб: 28.09.2007
|
Пт Ноя 02, 2007 14:58   |
|
Полезность: Нет оценки
|
НУ я поддержу предыдущего оратора
если все так делать то оно как не странно работает
и вполне правильно работает
и могу заявить что делал сам так очень большое кол-во раз  _________________ Программа делает не то, что хочет программист, а то, что написано в коде. (c) |
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Вт Ноя 06, 2007 15:38   |
|
Полезность: Нет оценки
|
dbmaslov пишет: | Уважаемый автор, дабы данный топик приобрел законченный вид, уточните, пожалуйста, Вам удалось поставить операцию на выполнение по расписанию? | Вставлю свои 5 копеек: оно действительно работает, задания выполняются, глюков не выявлено, но вот слова "по расписанию" оказываются не вполне корректными.
Например, чтобы выполнить некую задачку в 10 утра приходится поизгаляться в проверке самой вызываемой операции. Так что штатно можно задавать периодичность от предыдущего запуска, но не абсолютное время |
|
 |
sergius_79 Участник со стажем
Вступление в Клуб: 08.07.2007
|
Вс Дек 02, 2007 07:28   |
|
Полезность: 4
|
Это почему же? А если в периоде запуска задать trunc() + нужное время? |
|
 |
OlegFB Участник - экстремал
Вступление в Клуб: 11.07.2007
|
Пт Дек 07, 2007 08:09   |
|
Полезность: Нет оценки
|
sergius_79 пишет: | Это почему же? А если в периоде запуска задать trunc() + нужное время? |
+1 |
|
 |
mlg Участник со стажем
Вступление в Клуб: 23.07.2007
|
Пт Дек 07, 2007 08:58   |
|
Полезность: 1
|
Для запуска в нужное время есть операция "Задать интервал запуска"
Если есть необходимость запускать ежедневно в 10 часов утра, то устанавливаем "По дням = 1", "Часы = 10", остальное 0. Операция сама установит нужные периоды запуска. Проверяем по F3. |
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Пт Дек 07, 2007 09:41   |
|
Полезность: Нет оценки
|
sergius_79 пишет: | Это почему же? А если в периоде запуска задать trunc() + нужное время? |
Спасибо. А если некое задание нужно запустить дважды, трижды... в сутки в фиксированное время? - только дублировать записи для этого задания с разными параметрами времени запуска?
Предыдущее суждение (от 06.11) базировалось на ответе, полученном в ЦФТ: "Это особенности системы запуска заданий Oracle. У задания есть 2 параметра - NEXT_DATE и INTERVAL , после запуска задания вычисляется выражение INTERVAL и после успешного завершения задания вычисленное значение становится новым NEXT_DATE.
Если же задание по каким-то причинам не смогло стартовать, предпринимаются попытки запустить его еще несколько (16) раз через все возрастающие промежутки времени. Соответственно , если очередная попытка увенчается успехом , то новое значение NEXT_DATE будет вычисленно именно от времени старта этой попытки. Таким образом , гарантировать что задание будет запускаться всегда в одно и то же время в общем случае нельзя." |
|
 |
sergius_79 Участник со стажем
Вступление в Клуб: 08.07.2007
|
Вт Дек 11, 2007 06:47   |
|
Полезность: 1
|
trunc(sysdate) + decode(to_char(sysdate, 'HH24'), '10', 15/24, '15', 20/24, '20', 34/24)
Это если обязательно через запуск по расписанию нужно работать. Ну и лучше для верности в decode все 24 часа учесть на всякий случай...
Если я не прав, поправьте, но уверен - работать будет! |
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Вт Дек 11, 2007 10:51   |
|
Полезность: Нет оценки
|
sergius_79 пишет: | trunc(sysdate) + decode(to_char(sysdate, 'HH24'), '10', 15/24, '15', 20/24, '20', 34/24)
Это если обязательно через запуск по расписанию нужно работать. Ну и лучше для верности в decode все 24 часа учесть на всякий случай...
Если я не прав, поправьте, но уверен - работать будет! |
Вероятно, вы правы ,но видимо совет дан не для интервала запуска, т.к. получаем сообщение
Код: | Неправильное выражение для интервала запуска...
ORA-06550: Строка 1, столбец 43:
PLS-00204: функция или псевдо-столбец 'DECODE' могут быть использованы только внутри оператора SQL
ORA-06550: Строка 1, столбец 7:
PL/SQL: Statement ignored |
|
|
 |
faded Участник со стажем
Вступление в Клуб: 17.09.2007
|
Вт Дек 11, 2007 12:49   |
|
Полезность: Нет оценки
|
"запустить задание трижды в определенное время" - если время работы операции не пересекается: в окошке интервал запуска вызываю (далее пример) Z$IBSO_GATE_GATE_LIB.GET_NEXT_TIME4JOB. GET_NEXT_TIME4JOB - функция ТБП IBSO_GATE операции GATE_LIB возвращающая значение типа DATE_TIME. дальше по-моему все понятно - счетчик до 3 и его анализ в функции.
если время пересекается и вообще для универсальности - некий job который по неким правилам запускает текстовые задания по расписанию
это конечно не просто настройка а некое программирование. но по-моему достаточно тривиальное. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|