BAM Service
The BAM service is responsible for transferring all generated log files into the BAM database and cleaning old data from the BAM database. It replaces the old Process BAM files and BAM Cleanup Job method jobs.
Purpose and Features
As stated above, the old jobs are replaced by a separate service for 2 reasons: improving performance and not using any execution slots within the Ometa framework.
The old jobs took up execution slots within the framework, meaning that every time a BAM file process or BAM cleaning method was started, some other method may needed to wait and would be queued by the BCM service, slowing down the entire execution of a framework solution. With the help of the separate BAM service, that is solved. It runs all jobs and actions outside the framework, so log file processing and database cleaning won't take up any precious BCM slots anymore.
Additional features are also added:
- Some basic database maintenance tasks to improve query execution;
- The BAM service will be able to slow down its own processing speed based on process priority when the CPU load becomes too high.
- Use a partitioned log table if SQL Server supports it, see the Minimum SQL Server Requirements.
Partitioned Log Table
Starting from Microsoft SQL Server 2012 and 2014 Enterprise editions, SQL Server 2016 (all editions) and Azure SQL Database, the BAM logging system will be able to use partitioning of the log table to improve performance and data cleaning.
The application of partitioning on the log table is transparent for ordinary use of those tables, like retrieving or inserting data. SQL Server will take care of the logistics behind the scenes of selecting the proper partition(s) when running queries. Only for specific use cases, the BAM service will directly access specific partition(s) but that isn't considered normal use from the point of view from the rest of the framework.
The BAM service can detect automatically whether the framework setup has created a partitioned log table or not, and will adapt accordingly. There is no need to add specific configuration for any logic to handle partitions to start.
Keep in mind that when other SQL Server versions are used, the framework will fall back to the default log table structure without partitioning.
For more information about this feature, please consult the articles below for the details.
Detailed Information
Subsections with detailed information:
- File Processing
- Database Cleaning
- Operating Mode
- Database Maintenance Tasks
- Configuration
- Questions and Troubleshooting
Important
Only the functionality and feature set described in this section will remain backwards compatible in future releases.
Any other non-documented part currently present in the BAM Service may be subject to change in upcoming releases. Using those elements in a portal solution is at your own risk as an update to a later version of the framework may cause unforeseen breaking changes.