Separating Readers and Writers

FlexNet Manager Suite 2023 R1 (On-Premises)
The import and processing of inventory information is divided into two stages that are controlled by separate code entities within FlexNet Manager Suite:
  • Compliance "readers" collect data that has been uploaded to the central application server, and write it into staging tables within the operations databases.
  • Compliance "writers" take the data from the staging tables, normalizing it where required, and write the results into the operational tables in the compliance database. They perform recognition of newly-inventoried evidence against the ARL, and evaluate any pending automated purchase processing. Thereafter they recalculate license consumption (or 'reconciliation'), using the most recently updated data.

It is possible to run the compliance readers and writers in tandem, such that every 'read' is promptly followed by an immediate 'write' and reconciliation. However, the write and recalculate processes can be resource intensive, slowing performance for other tasks. Keeping in mind that inventory data may be incoming from multiple different sources (FlexNet inventory agent, third-party inventory tools, Active Directory, business imports, and so on), allowing a write and recalculate after every single data load may become problematic.

For this reason, the batch scheduler allows for triggering compliance readers and writers separately, completely independent of one another.

In its default operation, the batch scheduler handles this sequencing automatically.

However, if you are manually scheduling various processes, or running processes from the command line, you should be aware of the distinction between various tasks (described in Batch Scheduler Command Line). For example:
  • This command imports inventory from the single default connection for inventory collected by FlexNet inventory agent, and immediately runs the writers (transferring data into the compliance database) and then running the license consumption calculations:
    ShadowHost.exe
    BatchProcessTaskConsole.exe run InventoryImport ---s """FlexNet Manager Suite"""
  • This command loads the same inventory to the staging tables, but does not include the writing to the compliance database nor the license consumption calculations:
    ShadowHost.exe
    BatchProcessTaskConsole.exe run InventoryImportReaders ---s """FlexNet Manager Suite"""
    You may then choose to run a number of other imports (readers) from other inventory connections, and only later run the writers and recalculation (see InventoryImportWriters).
If you are doing your own scheduling for these processes, you should allow the batch scheduler to minimize the number of writer and recalculation tasks that are run. This ensures that your automation integrates successfully with other imports that may be triggered by (for example) an upload from an inventory beacon or an import of a CSV file through the web interface. The way to give the batch scheduler that freedom is to add the ChainWritersMessage parameter to the readers command. For example, this command (executed by Microsoft Task Scheduler, and therefore no longer using the console version of the executable) runs all inventory imports (because it no longer has the restriction to the default connection), one after another as appropriate; and only when all are completed does it schedule the writers and recalculation:
ShadowHost.exe
BatchProcessTask.exe run InventoryImportReaders -p "ChainWritersMessage=true"

FlexNet Manager Suite (On-Premises)

2023 R1