我正在尝试使用Oracle SOA BPEL来同步HR服务和本地数据库之间约1000名员工的数据。我通过findEmp调用获取所有员工的ID,并从同一个HR服务循环到empCount次,获取getEmp(empID),并在每个循环中更新/插入到我们的数据库中。在大约60多名员工之后,这个过程超时了,尽管这个过程是一个异步过程。我该如何重新设计流程?
答案 0 :(得分:1)
由于您的BPEL代码中没有任何脱水点,因此发生超时。 Oracle BPEL需要在Java事务超时之前脱水。 如果您使用的是Oracle BPEL数据库适配器,您实际上可以一次提交许多对象以便处理数据库,只需在数据库适配器的元素中放置多个对象即可。这可能会有很大帮助,因为您可以一次获取所有数据,然后立即全部写入。
此外,您可以扩展Oracle BPEL的事务超时 - 它是transaction-manager.xml中的配置参数(还需要对10.1.3.3.x和10.1.3.4中需要执行的EJB超时进行一些调整。 X)。 Oracle BPEL文档告诉您如何更改此变量。