Skip to main content
Matrix42 Self-Service Help Center

Background processing for license management


The goal of a license management tool is transparency about status of compliance regarding deployed and used software. For that purpose, different data is imported from different sources regarding technical and contractual facts. Based on organizational structures and other master data the system calculates which and how many licenses are required and reconciles that information with the purchased licenses.  This calculation is made in the background, usually invisible to the license administrator or other users that work with the tool. However, it is required that they understand how the imported data is aggregated, consolidated and reconciled. This article explains how the system is processing the data. 

Logical Process

The "journey" from technical data to license compliance includes several steps to aggregate the data and consolidate the resulting information before the final reconciliation with available licenses.

Logical Schema

Technical Process

The technical process is illustrated below in a simplified way. It involves three components that work together processing all data: 

Technical Schema (default)

As of product version 9.1.3 the technical process supports an optional component for requirement consolidation that can be enabled in the settings of the license management application. This optional component can improve the processing of larger amounts of data significantly. See this article below for more details about the functional details and  this article for more information how to enable or disable the optional processing. 

Interactive Business Logic: This part of the system works together with the presentation layer of the system communicating with the user, presenting data and translating his requests into corresponding changes. Some changes need additional processing by the background logic to update the status of license compliance (e.g. consolidate license requirements or adjust entitlements). 

Batch Data Processing Engine: This engine is executed based on a schedule on a daily cycle. Its purpose is processing mass data imported from external sources with technical data (e.g. computer inventory, Active Directory groups or master data). It is recommended to adjust the schedule on every system to the needs according to the executed imports, i.e. first import relevant data and run batch processing only afterwards. The corresponding activation is named "License Management - Data Batch Processing".  

This engine performs following steps:  

  1. Checking for inconsistencies and correcting them accordingly (pre-validation) 
  2. Validating imported licenses (if status is not set) 
  3. Assigning licenses that are not associated to a software product and have a manufacturer part number according to the LIS catalog 
  4. Checking expiration of the validity period for licenses, maintenance and license pools 
  5. Assigning or ignoring unclassified fingerprints according to LIS catalog (software recognition)
  6. Creating, updating or deleting license requirements
    • from installed applications 
    • from AD group memberships 
    • from license requirement rules  
  7. Validating imported license requirements (empty status) 
  8. Confirming unconfirmed license requirement records from approved service bookings 
  9. Checking failed compliance and triggering compliance rules if alert option is enabled
  10. Checking for inconsistencies and correcting them accordingly (pre-validation)

It is important to understand that both, Interactive Business Logic and Batch Data Processing may need an additional finalizing processing for consolidation and entitlement. Accordingly, if the use case in the user interface is completed or the batch processing engine has  finished, not all information in the system might be already finally updated. Both components may fill internal queue tables, so that further processing can be accomplished asynchronously without obstructing other necessary actions. 

Consolidation & Entitlement Engine: This engine "sits" in the Windows Service "Matrix42 Common" and implements a queue watcher, constantly looking for work items submitted from the two cooperating components introduced above. This operation consolidates license requirements according to different options (e.g. second copy, side-by-side, suite) and finally reconciles the effective license requirements against the license inventory based on license models and license pools, reservations and restrictions. 

Optional Requirement Consolidation

The technical process including the optional requirement consolidation is illustrated below in a simplified way. It adds a workflow based component for fast consolidation of license requirements. With this option, the consolidation queue is not used and the queue processing engine is working solely on entitlements.

This option can be enabled or disabled in settings of the Licenses application. See this article for details.  

LCM Background Processing (optional).png 

The workflow for requirement consolidation can be found in system Administration as "LicenseManagement.ProcessDemands 1.0". 

It is important to understand that the workflow is executed from (1) the batch processing engine and (2) on a "every-minute" schedule. In both cases the workflow checks if any license requirements are in status "New". If this is the case, the workflow collects all those records and processes them in a single step. 


Users have more transparency about currently executing processing on the dashboard of the Licenses application. Here it's visible if any of the involved background processing components is currently busy or not.  This view is available as of product version 10.0.2 only.


Further Information

  • About license assignment see this article.
  • About consolidation of license requirements in general see this article.
  • About consolidation of license requirements by suites see this article.
  • Was this article helpful?