soa suite 11g Обработка запросов bpel медленная, когда отправляется много параллельных запросов

У нас есть композит, содержащий один посредник с правилом последовательной маршрутизации, который нужно оставить позади.

Когда одиночный запрос отправляется в композит, он обрабатывается довольно быстро (min=600 мс, max=2 с). Но когда мы отправляем 60 одновременных запросов, обработка происходит намного медленнее (min=2 с, avg=6 с, max=25 с).

В ходе расследования мы выяснили, что:

  1. Пулы источников данных не были исчерпаны (SOA_INFRA)
  2. Процессоры на серверах SOA и серверах баз данных ничего не делали (использование 5-10%)
  3. между запросом посредника и задержкой в ​​bpel существует 15-секундная задержка.

Кажется, что есть некоторые другие ограниченные ресурсы, например, максимальное количество экземпляров bpel, работающих одновременно. Но мы не можем его найти и как его настроить.

Как настроить SOA 11g, чтобы быстрее обслуживать параллельные запросы?

Спасибо!

1 ответ

По умолчанию компоненты BPEL являются "асинхронными" в том смысле, что сообщение сначала сохраняется в базе данных soainfra, а затем вызывается с использованием потоков вызова диспетчера (даже в компонентах sync - request/reply).

См. Следующий документ Oracle для изменения истинной синхронизации процесса BPEL и его запуска в существующем потоке: http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/soa_transactions.htm

Если вы не хотите связываться со свойствами транзакции BPEL, обратитесь к следующему документу Oracle, чтобы узнать, как увеличить количество потоков диспетчера: http://docs.oracle.com/cd/E25054_01/core.1111/e10108/bpel.htm

Другие вопросы по тегам