0

我们有一个组合,其中包含一个具有顺序路由规则的调解器,以支持 bpel。

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

在调查过程中,我们发现:

  1. 数据源池未用尽 (SOA_INFRA)
  2. SOA 服务器和数据库服务器上的 CPU 什么都不做(5-10% 的使用率)
  3. 请求到达中介和 bpel 之间有 15 秒的延迟。

似乎还有其他一些有限的资源,例如同时运行的最大 bpel 实例数。但我们无法找到它以及如何调整它。

如何调整 SOA 11g 以更快地处理并发请求?

谢谢!

4

1 回答 1

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

于 2014-03-27T20:55:25.560 回答