Избегайте тайм-аута в SOA 11g с внедрением Java более 5 минут

Я хочу запустить композит с внедрением Java в Oracle SOA 11g, в котором есть действие по внедрению Java, которое может длиться дольше тайм-аута SOA (в настоящее время 5 минут).

Я попытался обезвожить процесс BPEL прямо перед и после встраивания Java, но если встраивание займет более 5 минут, весь экземпляр выйдет из строя. Я даже попробовал инструкцию checkpoint(); для принудительного обезвоживания изнутри встраивания, но в 11g она вроде не действует, хотя и не выдает ошибки при развертывании композита, из-за бага в 11g.

Есть ли способ гарантировать, что время ожидания моего композита никогда не истечет?
Имейте в виду, что:

  • Я не могу выполнять действия по встраиванию Java с помощью простых блоков BPEL
  • Я не могу разбить вложение на большее количество блоков встраивания и обезвоживать их между ними, так как есть одна инструкция Java, которая может занять более 5 минут.
  • Я не могу изменить значение 5 минут для тайм-аута SOA

person scristalli    schedule 18.02.2015    source источник
comment
Я спрошу завтра одного из моих друзей-инженеров SOA и посмотрю, что он скажет.   -  person Joe    schedule 19.02.2015


Ответы (1)


Если время ожидания истекло, возможно, отправьте сообщение jms, и пусть компонент сообщения запустит Java и опубликует его возврат. Попросите ожидающий входящий jms-адаптер Bpel опрашивать новое опубликованное сообщение. Это означает, что вам, возможно, придется сделать это полностью асинхронно, если время ожидания процессоров набора SOA истекло. Этот сообщение также может помочь. Обратите внимание и на другие ссылки внизу.

В версии 12c время ожидания транзакции теперь можно обойти с помощью поддержки noTransaction в BPEL. Добавьте следующее свойство в компонент BPEL в композитном.xml: notSupported

person Joe    schedule 19.02.2015