当发送许多并发请求时,soa套件11g bpel请求处理很慢

时间:2013-07-30 10:37:14

标签: soa oracle-soa

我们有一个复合体,其中包含一个带有顺序路由规则的中介,后面是bpel。

当单个请求发送到复合时,它的处理速度非常快(min = 600ms,max = 2s)。 但是当我们发送60个并发请求时,处理速度要慢得多(min = 2s,avg = 6s,max = 25s)。

在调查期间,我们发现:

  1. 数据源池未用尽(SOA_INFRA)
  2. SOA服务器和数据库服务器上的CPU无效(使用率为5-10%)
  3. 请求来到调解员和bpel之间有15秒的延迟。
  4. 似乎还有一些其他有限的资源,例如同时运行的最大bpel实例数。但我们无法找到它以及如何调整它。

    如何调整SOA 11g以便能够更快地为并发请求提供服务?

    谢谢!

1 个答案:

答案 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