Scheduling and Monitoring
The Calculate Licensing Position transformation should run on a schedule. This page covers what to schedule, when, and how to monitor it.
What to Schedule
A standard SAM schedule:
| Job | Frequency | Time Window |
|---|---|---|
| Network Discovery | Nightly | Off-peak (e.g., 02:00) |
| Load Now (recognition + load) | After discovery | 03:00 |
| Calculate Licensing Position | After Load Now | 04:00 |
| Recognition Database Update | Weekly | Sunday 01:00 |
| Create OEM Licenses | Weekly | Sunday 03:00 |
The order matters: Calculate runs after Load Now, which runs after Discovery. If Calculate runs before fresh discovery is loaded, the position reflects yesterday's state.
Setting Up the Schedule
In xAssets, scheduled jobs use the standard batch job mechanism:
- Navigate to Admin → Batch Jobs → Schedules.
- Create a new schedule for each transformation, with the time window you want.
- Set the Calculate Licensing Position with appropriate Start Date and End Date — typically the start of the current month and today, with the parameters parameterized to recompute dynamically each night.
For the parameter pattern that auto-rolls (Start Date = first of current month each night), see the Configuration Guide on transformation parameters.
Calculation Parameters in a Scheduled Run
For nightly scheduled runs:
| Parameter | Recommended Value |
|---|---|
| Start Date | First of current month (computed dynamically) |
| End Date | Today (or end of current month) |
This recalculates only the open period each night. Historical periods stay stable.
If you need monthly recalculation of just-closed periods (e.g., on the 5th of each month, recalculate last month's position one final time before treating it as closed), schedule a separate job for that.
Monitoring
Real-Time
The Admin → Batch Jobs page shows currently running, recently completed, and scheduled jobs. Open it to see:
- Whether the latest Calculate ran successfully
- How long it took
- Any errors in the log
For routine monitoring, a quick check at the start of each business day is enough — if the job ran clean overnight, no action.
Failure Alerts
Configure email notifications on batch job failure:
- Admin → Batch Jobs → schedule for Calculate Licensing Position
- Set notification email for failures
- Test by deliberately running with a bad parameter (and revert)
For larger operations, route the alerts to a monitoring system (PagerDuty, Opsgenie) rather than email.
What to Look For
Common operational signals from the batch job log:
| Signal | What It Means |
|---|---|
| Job duration suddenly longer | Data volume has grown; performance review may be needed |
| "Missing required field in affinity rules" | Someone changed a calculation rule that references a missing field — see Customizing the Calculation: Testing Rule Changes |
| Job failed midway | Database deadlock, timeout, or environmental issue — check SQL Server logs |
| Job ran but Last Calculation Run timestamp on the Licenses query did not update | The calculation completed but the post-processing step may have failed — review the log for errors |
When the Job Should NOT Run
Two scenarios where you should temporarily pause the scheduled calculation:
- During a vendor audit. The position is locked at the audit date; nightly recalculation could rewrite numbers in the audit response. Pause until the audit is resolved. See Daily Tasks: Audit Preparation.
- During maintenance windows where the database is being patched. Move the schedule to before/after the window.
To pause: disable the schedule (don't delete it) and re-enable when ready.
Related Reading
- Configuration Guide: Batch Jobs — the platform's scheduling mechanism
- Configuration Guide: Schedules — schedule configuration in detail
- Running the Calculation — manual runs
- Performance at Scale