CftClub.ru
Клуб специалистов ЦФТ-Банк

Ошибка при запуске операции в отдельном job - е

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Интеграция с внешними подсистемами
Предыдущая тема :: Следующая тема  
Автор Сообщение
jamil
Участник - экстремал


Вступление в Клуб: 11.08.2014
СообщениеПт Апр 17, 2015 13:17   Ошибка при запуске операции в отдельном job - е Ответить с цитатой
Полезность: Нет оценки
Задача следующая есть операция, которая на вход получает 2 даты и филиал и по этим критериям ищет кредиты (плановые, фактические операции и т.д.) и заливает их линком в базу другой системы. Теперь необходимо запускать эту операцию сразу для всех филиалов за один день в отдельном потоке.
Чтобы она отрабатывала во всех филиалах сразу, чтобы не ждать окончание для каждого филиала.
нашел такую конструкцию

Код:
sJOB_ACTION:='
        declare
            plp$RESULT_2    PLS_INTEGER;
        begin
            plp$RESULT_2 := RTL.OPEN;
            Z$UNIVERS_IMP_MY_OPER.DOG_DAY_EXECUTE(THIS=>null, PLP$CLASS=>null, P_DATE1=>to_date('''||str_date||''', ''dd.mm.yyyy''), P_DATE2=>to_date('''||str_date||''', ''dd.mm.yyyy''), P_PLAN=>true, P_FACT=>true);
        end;';

dbms_scheduler.create_job(job_name => 'JOB_1',
        job_type => 'PLSQL_BLOCK',
        job_action => sJOB_ACTION);
       
dbms_scheduler.run_job('JOB_1', FALSE);


создает job и запускает в одельном потоке. Если в цыкле запустить этот блок, то создаст и запустить job, но job сразу вылетает с ошибкой. Трейс лог оракла пишет следующее.

Errors in file /u01/app/oracle/diag/rdbms/ibso/ibso/trace/ibso_j004_5365.trc:
ORA-12012: чХьязп ъЮь прБчьАъчшщущьь вптпщьО "IBS"."JOB_1"
ORA-01017: щуруЮщч ьэО ъчшЛвчрпБушО/ъпЮчшЛ; рЕчт р АьАБуэЦ впъЮуИпуБАО
ORA-06512: щп "IBS.RTL", line 4749
ORA-06512: щп line 5

Если запустить этот job в текущей сессии
Код:
dbms_scheduler.run_job('JOB_1', true);


то отработает нормально, но принцип многопоточности исчезнет.

Может кто сталкивался с этим вопросом.

Версия ТЯ 7.1.1.6.
chesnok
Участник со стажем


Вступление в Клуб: 25.03.2010
СообщениеПн Апр 20, 2015 05:52    Ответить с цитатой
Полезность: Нет оценки
Я бы посоветовал посмотреть "Выполнение текстовых заданий". Пример использования в ::[END_OD_OPERATION].[END_OD_JOB]
Random
Эксперт


Вступление в Клуб: 27.06.2011
СообщениеПн Апр 20, 2015 11:14   Re: Ошибка при запуске операции в отдельном job - е Ответить с цитатой
Полезность: Нет оценки
Во-первых, rtl.open не предназначен для регистрации сессии в job-ах. Для этого есть executor.lock_open
Во-вторых, начиная с ТЯ 7.3.7.4 запуск операций из очередей, которые минуют платформу развития, будет ликвидирован. Собственно, это была дырка, и она будет закрыта. Пользуемся текстовыми заданиями, заданиями по расписанию и фоновыми процессами.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Интеграция с внешними подсистемами Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru