powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / 12.2.0.3 :|
13 сообщений из 63, страница 3 из 3
12.2.0.3 :|
    #39876824
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашелся Workaround: указывать INTERVAL при создании задания
К сожалению, не всегда есть возможность поменять код
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39876844
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровЧто еще хреновей -- не полностью съэмулировали поведение DBMS_JOB
Спасибо, Вячеслав. Слава богу мы отвалились от 19с ещё раньше.
Вячеслав ЛюбомудровНашелся Workaround: указывать INTERVAL при создании задания
К сожалению, не всегда есть возможность поменять код
Это не обход проблемы. Это дюжина гвоздей в крышку гроба dbms_job.
Эти козлы забыли написать в доке, что dbms_job, на самом деле, desupported.


P.S. Саян, похер в похеровницах остался надеяться, "чтобы он стал наиболее стабильным (хотелось бы, конечно, надеяться"?
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39876852
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicЭти козлы забыли написать в доке, что dbms_job, на самом деле, desupported.Написали might beNote:The DBMS_JOB package has been superseded by the DBMS_SCHEDULER package, and support for DBMS_JOB might be removed in future releases of Oracle Database.
Странно, что, несмотря на многолетние рекомендации мигрировать c dbms_job, в синтаксисе матвью так и не появилась кляуза с поддержкой синтаксиса расписания dbms_scheduler.
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39876863
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-ElicЭти козлы забыли написать в доке, что dbms_job, на самом деле, desupported.Написали might beНе передёгивай:19сsupport for DBMS_JOB might be removed in future releases of Oracle Database.Т.е. в 19c "support" задокументирован.

Note:has been superseded byЛадно, сэмулировать next_date (уверен, и broken) они обосрались. Так и в самом DBMS_SCHEDULER подобного механизма нет. Кому они десяток лет ездят по ушам с "superseded"?

У меня сделанный ещё в 7.3 функционально достаточный планировщик с гибкими расписаниями прекрасно работает до сих пор. А его возможности тем более не покрываются калечным DBMS_SCHEDULER-ом.
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39876876
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicЛадно, сэмулировать next_date (уверен, и broken) они обосрались. Так и в самом DBMS_SCHEDULER подобного механизма нет.Ну как нет
Установка NEXT_DATE/BROKEN в DBMS_SCHEDULER (PLSQL_BLOCK) нормально работает
Просто для DBMS_SCHEDULER задокументированное поведение: "If repeat_interval is not specified, the job runs only once at the specified start date"
Т.е. при пустом REPEAT_INTERVAL в принципе не допускается запуск более одного раза, а вычисленное в коде значение NEXT_DATE просто игнорируется, хотя точно так же биндится и, соответственно, доступно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
DECLARE job BINARY_INTEGER := :job;
  next_date TIMESTAMP WITH TIME ZONE := :mydate;
  broken BOOLEAN := FALSE;
  job_name VARCHAR2(128) := :job_name;
  job_subname VARCHAR2(128) := :job_subname;
  job_owner VARCHAR2(128) := :job_owner;
  job_start TIMESTAMP WITH TIME ZONE := :job_start;
  job_scheduled_start TIMESTAMP WITH TIME ZONE := :job_scheduled_start;
  window_start TIMESTAMP WITH TIME ZONE := :window_start;
  window_end TIMESTAMP WITH TIME ZONE := :window_end;
  chain_id VARCHAR2(14) :=  :chainid;
  credential_owner VARCHAR2(128) := :credown;
  credential_name  VARCHAR2(128) := :crednam;
  destination_owner VARCHAR2(128) := :destown;
  destination_name VARCHAR2(128) := :destnam;
  job_dest_id varchar2(14) := :jdestid;
  log_id number := :log_id;
BEGIN   dbms_lock.sleep(10); next_date := sysdate+1/24; 
   :mydate := next_date; 
 IF broken THEN :b := 1; ELSE :b := 0; END IF;
END;
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39876894
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровElicЛадно, сэмулировать next_date (уверен, и broken) они обосрались. Так и в самом DBMS_SCHEDULER подобного механизма нет.Ну как нетНу как же, обосраться-таки обосрались?
А по поводу "механизм есть" и "Workaround" - напрашивающийся interval=>'null' не срабатывает. Но любой "нетривиальный" фэйк срабатывает:
Код: plsql
1.
, interval=>'null+null'

Т.е. мне как разработчику с next_date можно будет жить.

Может и они досообразят, как доэмулировать. Через пару лет :|
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39882207
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще одна задница с DBMS_SCHEDULER в 19c
Код: 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.
SQL>  exec dbms_scheduler.create_job('JOB_111', 'PLSQL_BLOCK', 'dbms_session.sleep(10)', 0, systimestamp-interval '1' day, 'sysdate+1', enabled=>false)

PL/SQL procedure successfully completed.

ftcpsi> select last_start_date, next_run_date, run_count from dba_scheduler_jobs where job_name='JOB_111';

LAST_START_DATE      NEXT_RUN_DATE         RUN_COUNT
-------------------- -------------------- ----------
                                                   0

ftcpsi> exec dbms_scheduler.enable('JOB_111')

PL/SQL procedure successfully completed.

ftcpsi> select last_start_date, next_run_date, run_count from dba_scheduler_jobs where job_name='JOB_111';

LAST_START_DATE      NEXT_RUN_DATE         RUN_COUNT
-------------------- -------------------- ----------
                     29-10-2019 17:29:12           0

ftcpsi> exec dbms_scheduler.drop_job('JOB_111')

PL/SQL procedure successfully completed.

ftcpsi> exec dbms_scheduler.create_job('JOB_111', 'PLSQL_BLOCK', 'dbms_session.sleep(10)', 0, systimestamp-interval '1' day, 'sysdate+1', enabled=>true)

PL/SQL procedure successfully completed.

ftcpsi> select last_start_date, next_run_date, run_count from dba_scheduler_jobs where job_name='JOB_111';

LAST_START_DATE      NEXT_RUN_DATE         RUN_COUNT
-------------------- -------------------- ----------
28-10-2019 17:31:09  29-10-2019 17:31:09           1

ftcpsi> exec dbms_scheduler.drop_job('JOB_111')

PL/SQL procedure successfully completed.
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39882212
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровЕще одна задница с DBMS_SCHEDULER в 19c
Уверен, что раньше было не так?
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39882255
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39986857
Melkomyagkii_newbi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров
Да


SR не заводили?
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #39986905
Фотография Rb-Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы столкнулись с большой неприятностью - без ошибок, просто все jobs перестали выполняться
Patch 28805242: SCHEDULER JOB SUDDENLY STOPS RUNNING
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
12.2.0.3 :|
    #40122488
amadis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Баг 28805242 полечен в 19.8
...
Рейтинг: 0 / 0
12.2.0.3 :|
    #40122600
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBMS_JOB промаплен в DBMS_SCHEDULER с багами в части таймзоны. Причём баги видоизменялись где-то в районе 19.10.
Из-за чего нужно эти баги учитывать, чтобы добавлять компенсирующее смещение как при submit-е, так и при запросе к *_jobs.
...
Рейтинг: 0 / 0
13 сообщений из 63, страница 3 из 3
Форумы / Oracle [игнор отключен] [закрыт для гостей] / 12.2.0.3 :|
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]