BPEL для синхронизации данных - PullRequest
1 голос
/ 16 июля 2009

Я пытаюсь использовать Oracle SOA BPEL для синхронизации данных около 1000 сотрудников между службой HR и нашей локальной базой данных. Я получаю идентификаторы всех сотрудников с помощью вызова findEmp и перебираю через него empCount раз для getEmp (empID) из той же службы HR и обновляю / вставляю в нашу базу данных в каждом цикле. Это истекает после примерно 60 нечетных сотрудников, хотя этот процесс является асинхронным процессом. Как мне изменить дизайн процесса?

1 Ответ

1 голос
/ 30 июля 2009

Время ожидания истекает, потому что в вашем коде BPEL нет точек обезвоживания. Oracle BPEL должен быть обезвожен до истечения времени ожидания транзакции Java. Если вы используете адаптер Oracle BPEL DB, вы можете фактически отправить много объектов одновременно для обработки в базу данных, просто поместив более одного элемента в элемент из адаптера DB. Это может очень помочь, так как вы можете получить все свои данные сразу, а затем записать все сразу.

Кроме того, вы можете продлить тайм-аут транзакции для Oracle BPEL - это параметр конфигурации в Transactions-manager.xml (также есть несколько настроек тайм-аутов EJB, которые необходимо выполнить в 10.1.3.3.x & 10.1.3.4.x ). Документы Oracle BPEL сообщают вам, как изменить эту переменную.

...