DBMS_JOB - это интерфейс к Административному планировщику Taks (ATS) Db2-LUW для некоторой совместимости с Oracle RDBMS.Однако вы также можете использовать ATS напрямую, независимо от DBMS_JOB, через ADMIN_TASK_ADD и связанные с этим процедуры.
Мой опыт показывает, что db2acd (процесс, который реализует автономные действия, включая ATS), ненадежен, особенно когда неправильно настроены ulimits, ион молча не будет работать при некоторых обстоятельствах.У него также есть 5-минутное пробуждение для проверки новых заданий, которые могут нарушить работу, и требует уже активированной базы данных, что неудобно для некоторых случаев использования.
Я бы не рекомендовал использовать Db2 ATS для функциональности уровня приложения,Полнофункциональные корпоративные планировщики существуют по веским причинам.
Для параллельных вызовов я бы использовал инструмент корпоративного планирования, если он доступен, или при сбое, который использует планировщик, предоставляемый операционной системой либо на Db2-сервере, либо в худшем случае.на стороне клиента, следя за тем, чтобы в обоих случаях каждый вызов хранимой процедуры представлял собой свое собственное запланированное задание со своим собственным соединением Db2.
Используя соединение Db2 для вызова хранимой процедуры, иодновременно планируя их, они работают параллельно, если их действия не вызывают взаимных конфликтов.
Помимо вышесказанного, я полагаю, что ATS будет запускать задания параллельно, при условии, что определения заданий верны.Изучите содержимое административных представлений ADMIN_TASK_LIST и ADMIN_TASK_STATUS и подтвердите с записями db2diag (diaglevel 4 может дать более подробную информацию, даже если вы должны использовать его только временно).
Призывы к SQL PL (или PL / SQL)хранимые процедуры являются синхронными относительно вызывающей стороны, что означает, что Db2-соединение блокируется до тех пор, пока хранимая процедура не вернется.Вы не можете «сделать сеанс доступным», если он ожидает завершения хранимой процедуры, но вы можете открыть новое соединение.
Существуют различные опции для хранимых процедур, написанных на C, C ++ или Java.или C ++ / CLR.У них больше свободы.Существуют и другие варианты решений для обмена сообщениями / на основе брокера.Это зависит от доступных навыков, наборов инструментов и опыта.Но в целом разумнее было бы просто.