我们有一个复合体,其中包含一个带有顺序路由规则的中介,后面是bpel。
当单个请求发送到复合时,它的处理速度非常快(min = 600ms,max = 2s)。 但是当我们发送60个并发请求时,处理速度要慢得多(min = 2s,avg = 6s,max = 25s)。
在调查期间,我们发现:
似乎还有一些其他有限的资源,例如同时运行的最大bpel实例数。但我们无法找到它以及如何调整它。
如何调整SOA 11g以便能够更快地为并发请求提供服务?
谢谢!
答案 0 :(得分:1)
默认情况下,BPEL组件是“异步”的,因为消息首先被持久化到soainfra数据库,然后使用调度程序调用线程调用(甚至在同步 - 请求/回复组件上)。
请参阅以下Oracle文档,将BPEL流程更改为真正同步并在现有线程中运行:http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/soa_transactions.htm#CHDBIDAA
如果您不想弄乱BPEL事务属性,请参阅以下Oracle文档以增加调度程序调用线程的数量:http://docs.oracle.com/cd/E25054_01/core.1111/e10108/bpel.htm#BABBGEFA