3.5 Tuning Scalability and Performance

Oracle BAM 12c recommends the following best practices for optimal performance and scalability.

  • Oracle BAM 12c is designed for High Availability and Scalability. High Availability and Scalability can be increased by adding additional servers. Additional servers increase High Availability by providing healthier servers to fail-over to in the event one server fails. As long as one BAM server is running, BAM will continue to function. Additional servers provide greater throughput as work is load-balanced across all available servers in the BAM cluster. For more information, see the Oracle Fusion Middleware Enterprise Deployment Guide for Oracle SOA Suite.

  • For input scalability, multiple EMS can be started on different servers to improve throughput.

  • Customers should consider using batching capabilities to improve performance. See Batching Operations to Group Multiple Events Into a Single Operation for more information.

  • CQL queries are load balanced using project as a base. All queries for a given project would reside on the same server. When a server crashes, CQL queries will be moved onto a different server.

  • Limit the number of CQL queries as they tend to require large quantities of heap memory.

  • Ensure that Oracle BAM is in its own cluster of dedicated machines. If the solution includes BPEL or BPM, use separate machines for BPEL and its storage to avoid contention.

  • For High Availability solutions, make sure your servers are on the same network.

  • Ensure that the application context is the same for Oracle BAM Web Services if the web service interface is used for pushing data into BAM.

  • Tune the database completely, including adding indexes, partition table by day, parallel execution and use DBIM (Database In-Memory). DBIM will accelerate access to the data because only the required columns (columnar storage) will be visited. In addition, for cases where filtering occurs but the filter is not very selective, DBIM is a little like having an index per column. For the queries that perform simple aggregations, DBIM can also accelerate aggregation.