Oracle: BPEL-> Java Callout-> BPEL: как сделать так, чтобы они принадлежали одному и тому же дереву вызовов в EM? - PullRequest
0 голосов
/ 14 сентября 2011

BPEL-процесс содержит вызов Java для выполнения логики, которую было бы непрактично делать в BPEL.

Этот вызов Java в свою очередь вызывает другой рабочий процесс BPEL (с вызовом DII WS).

BPEL1 -> (Java Embedding) -> Java code -> (SOAP call) -> BPEL2

Все работает нормально, за исключением одной раздражающей детали: когда стек вызовов просматривается в Enterprise Manager, эти два BPEL-процесса не связаны (то есть не отображаются в виде одного дерева). Это приводит к некоторым задержкам и путанице при устранении неполадок.

Когда тот же дочерний BPEL вызывается с использованием обычного шага вызова, процессы связываются.

Вопрос: как BPEL передает родительскую информацию дочернему процессу? Я бы подумал, что это какой-то заголовок HTTP или SOAP, и я скоро его выясню. Хотя я надеюсь, что кто-то уже сталкивался с этим вызовом и просто наметил мне все необходимые шаги. : -)

1 Ответ

0 голосов
/ 16 сентября 2011

По моему опыту, использование java-встраивания в BPEL (с IBM или Oracle BPEL engine) не подходит для комплексного использования.

Я бы скорее попытался выполнить свою сложную логику в компоненте java SCA, вызываемом BPEL.

Реализация Java-компонента SCA называется «пружинный компонент».

Вы можете сделать следующий поток:

BPEL1 -> Java spring component -> BPEL2

Провода могут быть прямыми или через мыло.

Дерево экземпляров EM генерируется с уникальным идентификатором экземпляра. Когда вы сделали свой мыльный вызов из своего кода Java, вы не можете распространять этот идентификатор.

Эта передача идентификатора управляется механизмом SCA

...