powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / аналог job в oracle для DB2 for iSeries
16 сообщений из 16, страница 1 из 1
аналог job в oracle для DB2 for iSeries
    #37780045
kalupator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
iSeries 6.1
Language SQL.
Подскажите, пожалуйста, может кто-нибудь уже сталкивался. При миграции с Oracle на DB2 for iSeries необходимо перенести sql-код, который создает job'ы.
В oracle job'ы это отложенные задания, которые выполняются в отдельной сессии. Могут дергать хранимки, функции и т.д.
Есть ли нечто подобное для DB2 for iSeries.
Спасибо!
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37782066
Serg0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если Вы имеете ввиду возможность в БД выполнить CREATE JOB, то такого нет, в iSeries это делается на уровне операционки - пишите программу и запускаете разово через SBMJOB, или в системном шедулере, который в базовой поставке достаточно убог.
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37872394
kalupator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serg0,

Вся соль именно в том, что мне нужно запустить job (вызов хранимки) именно средствами SQL, к командам аэски доступа нет. Только коннект к базе и только language sql. Неужели средствами SQL нереально создать отложенное задание?

Проблема актуальна как никогда! Прошу помощи сообщества!
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37872505
Serg0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если речь именно про отложенные задания, то мне такие способы не известны. Единственное, что приходит на ум - использовать шедулер из фичепака для WebSphere Application Server, если таковой установлен и доступен, но и там нужен доступ к операционке, чтобы создать таблицы для шедулера и дать на них права.

если шедулер не нужен, то запустить из SQL можно как хранимку, так и системную команду.
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37872567
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serg0,

А если написать один раз CL-ку с параметрами (кстати, шедулер в AS-ке очень даже ничего) , зарегистрировать её как хранимую процедуру и вызывать CALL - поможет? Сам так не делал, но RРG как хранимые когда-то давно использовал. Вот тут что-то такое можно почерпнуть на стр. 529, 763 - http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/db2/rbafzmst.pdf (Правда один раз, как минимум, надо не только language sql)
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37872749
kalupator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serg0,

авторесли шедулер не нужен, то запустить из SQL можно как хранимку, так и системную команду.

Шедулер не нужен. И вызвать из SQL хранимку конечно не проблема. Проблема в том, как не ждать выполнения ХП, а запутсить ее в отдельной сессии, потоке.

Суть такая.

Есть ХП. Она запускает другую ХП, которая работает секунд 5-7. Но мне не важен результат и ждать эти 7 секунд я не могу. В Оракле спасали jobы. Поэтому сейчас стоит задача не столько в конкретном планировании задач, сколько запуска второй ХП параллельно первой.
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37872959
kalupator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор сколько запуска второй ХП параллельно первой

Даже не параллельного выполнения. А просто постановки в очередь на выполнение. т.е. не ждать результата выполнения второй ХП внутри первой. А просто поставить в очередь ее выполнение.
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37873132
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kalupator,

мысли вслух...

процедура ( LANGUAGE CL ) содержит что-то типа

SBMJOB JOB(SPECIAL) JOBD(MYLIB/MYJOBD) CMD(CALL PGM(MYLIB/MYPROG) PARM(&VAR1 &VAR2 ...))

и создаётся как внешняя ( IBM Redbook SG24-4249-03 )

- соответственно сабмитит задание с программой MYLIB/MYPROG (LANGUAGE RPG) , которая содержит что-то уже типа -


C/EXEC-SQL
C+ SELECT, UPDATE, CALL, DELETE * .........
C/END-EXEC

- вот только результат работы - надо предусмотреть вывод в табличку (ну я бы так сделал)....
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37873386
kalupator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
knudsen,

Спасибо, это действительно выход.
Единственное, подскажите пожалуйста, возможно ли из Language SQL процедуры дернуть LANGUAGE CL процедуру?
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37873754
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kalupator,

Как любую процедуру ... CALL PROC1(:VAR1, :VAR2 ...) - главное, чтобы она была зарегистрирована как хранимая процедура (внешняя - в документации есть как сделать). А из RPG тоже можно вызывать всякие командочки CL, да и SQL-вставочки попроще делать....в своё время баловался...
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37874189
Serg0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kalupatorknudsen,

Спасибо, это действительно выход.
Единственное, подскажите пожалуйста, возможно ли из Language SQL процедуры дернуть LANGUAGE CL процедуру?

1. Если у вас в проекте где-то используется ODBC-JDBC, то вызывать системные команды-программы можете и напрямую, без регистрации - "CL: CHGOBJOWN ....".
2. то же самое, что и в п.1 можете сделать и из SQL хранимки, но если есть параметры, то будут проблемы:
-"CALL QTEMP/MYPGM()" - пройдет
-"CALL QTEMP/MYPGM('TEST')" - нет
3. Ну, и поскольку CL всё таки доступен, можете наоборот из CL вызывать хранимку: CALL PGM(QZDFMDB2) PARM('CALL PROCEDURE (''BACK'', ''DOOR'')'), а для "отвязки" - через SBMJOB
4. Триггер на таблицу в которую вы будете складывать либо параметры вызова, либо полные строки вызова, а из триггера делайте что угодно...
5. есть такая штука как STRSQLSTM для вызова из CL произвольных SQL операторов

Для этого
Есть ХП. Она запускает другую ХП, которая работает секунд 5-7. Но мне не важен результат и ждать эти 7 секунд я не могу. В Оракле спасали jobы. Поэтому сейчас стоит задача не столько в конкретном планировании задач, сколько запуска второй ХП параллельно первой.

я бы выбрал сервисную табличку и триггер
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37875450
kalupator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serg0,

Большое спасибо!

авторя бы выбрал сервисную табличку и триггер
а можно поподробнее про сервисные таблицы, где можно взглянуть на документацию, примеры?
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37875782
Serg0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"сервисные", это я по отношению к вашему проекту, не к ОС ;-)
т.е. просто таблица с единственным назначением - опосредованный (через триггер) вызов процедуры/программы...
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37877660
kalupator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serg0,

но ведь тогда триггер будет работать в той же сессии и том же потоке и мне так же придется ждать эти 7 секунд.
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37880144
Serg0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kalupator,
не совсем понимаю, почему придется ждать и почему сессия должна быть той же самой.
Срабатывает триггер, запускает job...
job запущенный триггером и job сессии это 2 разные, независимые друг от друга среды исполнения.
на sbmjob, запускаемый триггером можете вообще транзакционность(commitment control, в терминах AS400) отключить.
...
Рейтинг: 0 / 0
аналог job в oracle для DB2 for iSeries
    #37880327
knudsen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kalupator,

3. Ну, и поскольку CL всё таки доступен, можете наоборот из CL вызывать хранимку: CALL PGM(QZDFMDB2) PARM('CALL PROCEDURE (''BACK'', ''DOOR'')'), а для "отвязки" - через SBMJOB
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / аналог job в oracle для DB2 for iSeries
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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