2009-07-16 18 views
1

我正嘗試使用Oracle SOA BPEL同步HR服務和本地數據庫之間大約1000名員工的數據。我使用findEmp調用獲取所有員工的ID,並通過empCount時間循環訪問相同HR服務中的getEmp(empID),並在每個循環中更新/插入我們的數據庫。在大約60名員工離職後,這個過程是一個異步的過程。我應該如何重新設計流程?用於數據同步的BPEL

+0

我創建了一個調用findEmp和另一個使用getEmp(id)同步單個emp的進程。我在一個循環中調用了對後者的單向調用,沒有更多的超時。 – Surya 2009-08-26 17:59:42

回答

1

發生超時是因爲您的BPEL代碼中沒有任何脫水點。 Oracle BPEL需要在Java事務超時之前脫水。 如果您使用Oracle BPEL數據庫適配器,您實際上可以一次提交多個對象以便處理到數據庫,只需在數據庫適配器的元素中添加多個對象即可。這可能會有很大幫助,因爲您可以一次獲取所有數據,然後一次寫入所有數據。

此外,您可以擴展Oracle BPEL的事務超時 - 它是transaction-manager.xml中的配置參數(還有一些需要在10.1.3.3.x上執行的EJB超時調整& 10.1.3.4。 X)。 Oracle BPEL文檔告訴你如何改變這個變量。