|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
Добрый день. Помогите пожалуйста разобраться с созданием джоба по событию. Задача: нужно как то создать событие в Oracle (которое не будет ждать конца выполнения процедуры), на которое будет реагировать JOB и запускать необходимую процедуру с параметрами. Перечитав множество литературы, так и не понял как это всё реализовать! Может у кого то есть опыт с такой реализацией? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 11:18 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
DBMS_JOB, DBMS_SCHEDULER https://docs.oracle.com/database/121/ARPLS/d_job.htm#ARPLS019 https://docs.oracle.com/database/121/ARPLS/d_sched.htm#ARPLS72235 DBMS_SCHEDULER вроде как помодней, но у DBMS_JOB (хоть он в новых версиях съэмулирован через DBMS_SCHEDULER) есть одна непревзойденная фишка -- задание будет запущено только после COMMIT, и проигнорируется при ROLLBACK ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 11:23 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров, спасибо за ссылки. я их уже давно перечитал. мне не ясна сама методология. Как создать событие и каким образом на это событие будет реагировать джоб или шедуллер? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 12:01 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
Тогда, наверное, стоит более подробно рассказать, что хочется Просто создать JOB внутри процедуры, чтоб он выполнялся параллельно с выполнением основного потока, создать (из процедуры) задание, которое запустится по завершении процедуры и подтверждения транзакции или вообще какой-то внешний процесс (который сам по себе задание), который отслеживает выполняемые в текущий момент операторы и запускающий определенное задание при определенных условиях ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 12:18 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
ArtemS Вячеслав Любомудров, спасибо за ссылки. я их уже давно перечитал. мне не ясна сама методология. Как создать событие и каким образом на это событие будет реагировать джоб или шедуллер? совершенно верно спрашиваете (имхо) методологию (кроме прочего ..) помогают понять примеры например, событие (например) создание (например) таблицы (например) в схеме вашего пользователя например пусть посредством шедулера отправит sms (например) владельцу схемы с её именем и подробностями .. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 12:45 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
Вячеслав Любомудров, весь смысл заключается в том, что бы в процессе выполнения одной процедуры был инициирован вызов второй процедуры с параметрами и не нужно ждать ее завершения. Запустили вторую процедуру и забыли за нее, не смотря на то что она будет выполняться пол часа или два часа! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 14:23 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
orawish, не могу найти внятный пример и по этой причине нет чёткого понимания методологии! на сколько я сейчас понял, нужно изначально создать TYPE с описанными полями, потом создать queue_table, потом создать queue и запустить его. Потом создать "программу" DBMS_SCHEDULER.CREATE_PROGRAM(..) которая будет инициировать запуск необходимой мне процедуры. Далее создать DBMS_SCHEDULER.CREATE_JOB(..) который будет инициировать запуск "программы" + указывается какой queue использовать. Если даже весь процесс я правильно описал, тогда не понятно, для чего параметр event_condition при создание джоба и как передать параметры в программу? да и как потом порождать эти события? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 14:35 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
ArtemS, в старых(древних) версиях достаточто было DBMS_JOB.SUBMIT с учетом, что нужен commit ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
07.07.2021, 14:53 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
Stax ArtemS, в старых(древних) версиях достаточто было DBMS_JOB.SUBMIT с учетом, что нужен commit ..... stax я в прошлой доработке как раз с подобной задачей столкнулся . и DBMS_JOB.SUBMIT в моем случае наиболее удобным показался. никаких лишних приседаний. единственный минус - прибить такой процесс сложнее. но работает как часы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 13:13 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
Бросил гиблое дело разобраться с созданием джоба по событию и создал процедуру которая создает джоб через пакет шедуллера после отрабатывания автоматически удаляется. то что мне по сути и нужно было! Вот пример процедуры, может кому то понадобиться: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.
Процедура может создавать джобы в разных схемах, но не забывает о грантах! Модератор: Используйте тег SRC ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 14:46 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
ArtemS Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 16:31 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
Elic, а сложно было немного подраскинуть мыслями и понять что тут не просто RAISE, а была интерфейсная процедура подсистемы логирования, которая разработана сторонней организацией и согласно договорным отношениям я не имею права где либо ее публиковать? смысл публикации примера процедуры не в обработки ошибок типа OTHERS, а сама реализация необходимого инструмента! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 17:09 |
|
Подскажите пожалуйста, как создать JOB по событию
|
|||
---|---|---|---|
#18+
ArtemS а сложно было немного подраскинуть мыслями и понять что тут не просто RAISE, а была интерфейсная процедура подсистемы логирования, которая разработана сторонней организацией и согласно договорным отношениям я не имею права где либо ее публиковать? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2021, 19:44 |
|
|
start [/forum/topic.php?fid=52&fpage=16&tid=1880049]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 151ms |
0 / 0 |