21 Tuning Oracle Business Activity Monitoring
You can tune Oracle Business Activity Monitoring (BAM) to optimize its performance in monitoring business services and processes in the enterprise.
- About Oracle Business Activity Monitoring
Oracle Business Activity Monitoring (BAM) provides the tools for monitoring business services and processes in the enterprise. - Tuning BAM Server Parameters
You can improve performance of the BAM server by following certain tuning recommendations. - Other Tuning Strategies
If Oracle BAM is running more slowly than expected, you can try other tuning strategies.
Parent topic: SOA Suite Components
About Oracle Business Activity Monitoring
Oracle Business Activity Monitoring (BAM) provides the tools for monitoring business services and processes in the enterprise.
It allows correlation of market indicators to the actual business process and to change business processes quickly or taking corrective actions if the business environment changes.
Oracle BAM also provides the necessary tools and runtime services for creating dashboards that display real-time data inflow and define rules to send alerts under specified conditions.
For information on how to monitor your BAM installation's performance, see Monitoring Oracle BAM Performance in Monitoring Business Activity with Oracle BAM.
Parent topic: Tuning Oracle Business Activity Monitoring
Tuning BAM Server Parameters
You can improve performance of the BAM server by following certain tuning recommendations.
BAM performance largely depends on the performance of the following components:
-
The Weblogic Server. See Tuning Performance of Oracle WebLogic Server.
-
Metadata Service. See Tuning Oracle Metadata Service.
-
Coherence. See Administering Oracle Coherence.
-
ADF. See Tuning Oracle Application Development Framework (ADF).
-
Database Settings. See Tuning Database Parameters.
-
Java Virtual Machines (JVMs). See Tuning Java Virtual Machines (JVM) in Tuning Performance of Oracle WebLogic Server.
-
Oracle Platform Security Service. See Tuning Oracle Fusion Middleware Security.
BAM performance also depends on good data object design strategies at design time and on having good data object purging strategies at runtime.
While BAM 12c can support much larger transaction volumes (data arrival rates into BAM), BAM 12c is an operational analytics product, not a business intelligence product.
Hence, it is recommended that data that is of analytical value for operational decision-making be kept in BAM. For most customers, this means storing about 5-30 days of transactional data in BAM. Resting data sizes typically comparable to a data warehouse are not useful for operational decision-making, so such data volumes do not constitute a mainstream use case for BAM 12c.
The tuning suggestions listed and described in Table 21-1 can be used to improve performance of the BAM Server:
Table 21-1 Essential BAM Server Tuning
Parameter | Problem | Tuning Recommendation | Trade-offs |
---|---|---|---|
Default: |
The number of concurrent connection to the data source consistently reaches max limit. |
Increase count as long as the performance continues to scale linearly. This is set at the WebLogic level. The value can be determined mainly based on the number of processors, listening source threading model and max concurrent request settings of embedded servers. |
Increasing the count will most likely increase the system resources usage. |
Default: |
Viewsets are lingering after the DC connection is lost. |
Decrease the expiry time value so that viewsets do not linger. See Monitoring Viewsets in Monitoring Business Activity with Oracle BAM for information on how to find and modify this parameter. |
None. |
Default: |
You need granular diagnostic logs to identify a problem. OR Your system is running fine and you do not need detailed logs. |
Keeping the default of For more information on using the BAM Diagnostic Framework, see Using the BAM Diagnostic Framework in Monitoring Business Activity with Oracle BAM. |
If your system slows down, you do not have detailed logs to identify a problem. |
Default: |
You want to migrate a SOA Suite installation with BAM to High Availability. Because BAM is a real-time system, you should enable ASM. |
ASM is used so High Availability can occur faster than WSM. Given that BAM is a real-time system, ASM is required for BAM HA. |
None. |
Default: |
Oracle BAM is running slowly and an out-of-memory exceptions occur. |
Increase the heap size to 2 GB. Use the following command with the -Xms2048m and -Xmx2048m arguments:
|
Increasing the JVM heap size for BAM could affect other SOA components. For more heap size tuning tips, see Tuning Tips for Heap Sizes in Tuning Performance of Oracle WebLogic Server. |
Parent topic: Tuning Oracle Business Activity Monitoring
Other Tuning Strategies
If Oracle BAM is running more slowly than expected, you can try other tuning strategies.
Parent topic: Tuning Oracle Business Activity Monitoring
Creating an Index Column
If throughput of data into a data object from an Enterprise Message Source or other source is slow, create an index column for the primary key column. See Adding Index Columns in Monitoring Business Activity with Oracle BAM for more information.
Parent topic: Other Tuning Strategies
Tuning Loggers
The default Oracle Diagnostic Logging Level for all loggers is Notification
. For stress testing and production environments, consider using the lowest acceptable logging level, such as ERROR
or WARNING
.
The loggers in BEAM that can affect BAM performance are as follows:
oracle.beam.common.alertsengine oracle.beam.server.service.alertsengine oracle.beam.Common oracle.beam.cqservice oracle.beam.composer com.oracle.beam oracle.beam.datacontrol oracle.beam.datacontrol.management oracle.beam.server.service.ems oracle.beam.messaging oracle.beam.server.service.persistence oracle.beam.server.service.reportcache oracle.beam.security oracle.beam.mbean oracle.beam.shared oracle.beam.server oracle.beam.impexp.t2p oracle.beam
For information about locating these loggers and changing their Oracle Diagnostic Logging Level, see Configuring Log Files in Administering Oracle SOA Suite and Oracle Business Process Management Suite.
Parent topic: Other Tuning Strategies
Tuning Continuous Query Service
The Continuous Query Service (CQS) is a BAM-specific wrapper around the Continuous Query Language (CQL) engine within the Oracle Complex Event Processing Service Engine. The CQS is a pure push system: query results are delivered automatically. The CQS supports both stream (non-persistent) and archived relation (persistent) data objects.
When you create a query, the CQS sets up tables in the CQL engine, registers the query, and listens for data changes from the persistence engine. The query result is processed in the CQL engine, then pushed to the CQS and on to the report cache.
For information on how to monitor continuous queries for performance issues, see Monitoring Continuous Queries in Monitoring Business Activity with Oracle BAM. Once you understand how your current system is performing, you can try to improve performance by tuning the knobs described in Table 21-2. Note that for most of these parameters, tuning for performance means losing diagnostic information.
Table 21-2 Tuning the Continuous Query Service
Parameter | Problem | Tuning Recommendation |
---|---|---|
Default: None |
You have arbitrarily designated simple data objects as stream, archived stream, and archived relation, and are not sure what to do. |
Categorize your data objects as stream if you do not care about historical data. See Data Object Types in Monitoring Business Activity with Oracle BAM for detailed descriptions of each data object type and relation. |
Default: Disabled |
By default, data object retention is not set. Many rows in the data object cause performance issues. |
Customer can set Data Object retention in the Data Object Retention tab to specify how many days they want to keep the data in a Data Object. When the specified number of days has elapsed, the data rows are automatically purged. See Setting Data Retention in a Data Object in Monitoring Business Activity with Oracle BAM for information on how to find and change this setting. |
|
Data parsing is slow for archived stream data objects. |
Specify a smaller Replay Unit or a lower Replay Amount to reduce the amount of past data retained in memory. This reduces the time and memory to parse data retrieved from the database. |
|
You have chosen to turn an Active Data query into a continuous query and are receiving out-of-memory exceptions. |
Decrease the time window size on the Active Data stream. This restricts the amount of memory the window uses to store elements. To get an idea of how much the window size affects memory usage, consider a scenario where the Window Size = 1 hour (RANGE 1 hour) and the event size = 100 bytes. If the event rate is 1000 events / second, then the window will contain 1000 * 3600 events when it is full. The memory consumed is 1000 * 3600 * 100 bytes = ~340 MB. See Enabling Active Data in a View in Monitoring Business Activity with Oracle BAM for information on how to configure the window size on an active data view. |
Default: Unchecked |
You have checked the box for Active Data Collapsing to make data aggregation active. You want more frequent snapshots or need to free up memory. |
Define a smaller Interval to make the view update more frequently and to reduce the amount of aggregated data stored in memory. You can maximize your memory usage by taking note of the evaluation interval, the event size, and the event rate. Given the following values:
The maximum size of the aggregated view is 5 * 60 * 1000 = 300,000 events = ~28 MB. See Using Active Data in Monitoring Business Activity with Oracle BAM for information on finding the Active Data Collapsing setting. |
Default: |
Continuous queries on dimension tables are slow and consuming memory. |
Check this property to activate it. This indicates that the data in this dimension table changes infrequently. For information on specifying slow-changing dimensions for a data object, see Specifying Slow-Changing Dimensions for a Data Object in Monitoring Business Activity with Oracle BAM. |
Default: |
You are experiencing out-of-memory exceptions and most of your queries are continuous. |
Use schedule query (SQL) where you do not expect frequent output. This saves memory because SQL involves JDBC resources while CQL stores data in memory. |
Parent topic: Other Tuning Strategies