title: Job Monitoring & History category: Scheduling tags: scheduling, monitoring, history, errors, diagnostics priority: Normal
Job Monitoring & History
IdentityCenter tracks every automated job execution through the JobHistoryListener, a Quartz.NET listener that records start time, end time, duration, status, and item counts for every job. This article covers how to view job history, diagnose failures, set up alerts, and monitor performance trends.
Job History Listener
The JobHistoryListener is a Quartz.NET IJobListener that automatically intercepts every job execution. It records:
| Field | Description |
|---|---|
| Job Name | The name of the Quartz job that executed |
| Job Type | The class name (e.g., SyncProjectJob, PolicyEvaluationJob) |
| Start Time | When the job began executing |
| End Time | When the job finished (or failed) |
| Duration | Elapsed time from start to end |
| Status | Running, Completed, Failed, or Cancelled |
| Items Processed | Total items handled by the job |
| Items Succeeded | Items completed without errors |
| Items Failed | Items that encountered errors |
| Error Message | Error description if the job failed |
| Trigger | What initiated the job (Scheduled, Manual, API) |
No configuration is required. The listener is registered automatically at application startup.
Viewing Job History
From the Processing Center
Navigate to Processing Center (/admin/processing-center) and select the Job History section. This view shows the most recent job executions with:
- Job name and type
- Status badge (color-coded: green for Completed, red for Failed, yellow for Running)
- Start time and duration
- Items processed, succeeded, and failed
- Trigger source
Filtering
Use the Job Type dropdown to filter history by a specific job type:
| Filter | Shows |
|---|---|
| All Job Types | Every execution across all types |
| SyncProjectJob | Only directory sync executions |
| PolicyEvaluationJob | Only compliance policy evaluations |
| SystemMaintenanceJob | Only maintenance tasks |
| ReportGenerationJob | Only scheduled report generation |
| EmailQueueProcessingJob | Only email processing runs |
Diagnosing Failed Jobs
When a job fails, the history record includes the error message and stack trace. Common failure causes and their resolutions:
Database Connectivity
| Symptom | Cause | Resolution |
|---|---|---|
| "A connection was successfully established..." then timeout | SQL Server overloaded | Check SQL Server performance; review concurrent job scheduling |
| "Cannot open database" | Database name incorrect or unavailable | Verify connection string in application settings |
| "Login failed for user" | Credential issue | Verify SQL Server credentials and permissions |
LDAP and Directory Issues
| Symptom | Cause | Resolution |
|---|---|---|
| "The LDAP server is unavailable" | Domain controller unreachable | Check network connectivity and DNS resolution |
| "A referral was returned from the server" | Cross-domain query without GC | Use Global Catalog port (3268/3269) for cross-domain queries |
| "The operation timed out" | LDAP query too broad or slow DC | Narrow the search scope or increase timeout in connection settings |
| "The supplied credential is invalid" | Service account password expired | Update the service account password in the connection configuration |
Email Service Issues
| Symptom | Cause | Resolution |
|---|---|---|
| "No connection could be made" | SMTP server unreachable | Verify SMTP server address and port in email settings |
| "Authentication failed" | SMTP credentials incorrect | Update SMTP username and password |
| "The operation has timed out" | SMTP server slow or blocked | Check firewall rules for outbound SMTP traffic |
General Issues
| Symptom | Cause | Resolution |
|---|---|---|
| "Out of memory" | Job processing too many items at once | Reduce batch size or add memory to the server |
| "Task was cancelled" | Job exceeded timeout or was manually stopped | Review timeout settings; check if another admin cancelled the job |
Job Statistics
The Processing Center provides aggregate statistics over the last 30 days:
| Metric | Description |
|---|---|
| Total Executions | Total number of job runs in the last 30 days |
| Successful | Jobs that completed without errors |
| Failed | Jobs that encountered errors |
| Currently Running | Jobs executing right now |
| Success Rate | Percentage of successful executions (displayed as a score card) |
The Job Statistics section breaks these numbers down by job type, so you can see which job types have the highest failure rates.
Setting Up Failure Alerts
To receive notifications when jobs fail:
- Navigate to System Center and configure email settings (SMTP server, sender address)
- Enable job failure notifications in the system settings
- Specify the recipient email addresses for alert notifications
- When a job fails, IdentityCenter sends an email containing:
- Job name and type
- Failure timestamp
- Error message
- Link to the job history detail
Tip: Configure alerts for critical jobs (sync, policy evaluation, email queue) at minimum. Non-critical maintenance jobs can be reviewed in the weekly operations report.
Performance Monitoring
Track job duration trends to identify performance degradation:
Duration Baselines
Establish baseline durations for each job type when the system is running smoothly:
| Job Type | Typical Duration (Small Env) | Typical Duration (Large Env) |
|---|---|---|
| SyncProjectJob | 30 seconds - 2 minutes | 5 - 30 minutes |
| PolicyEvaluationJob | 1 - 5 minutes | 10 - 60 minutes |
| SystemMaintenanceJob | 30 seconds - 2 minutes | 2 - 10 minutes |
| ReportGenerationJob | 5 - 30 seconds | 1 - 5 minutes |
| EmailQueueProcessingJob | 1 - 10 seconds | 10 - 60 seconds |
Warning Signs
- Job duration gradually increasing over weeks (indicates growing data or index degradation)
- Jobs that previously completed in minutes now taking hours
- Increasing failure rate for a specific job type
- Multiple jobs failing simultaneously (likely a shared resource issue like database or network)
Best Practices
- Review failed jobs daily -- Make checking job history part of your morning routine. Unaddressed failures compound over time.
- Set up alerts for critical jobs -- Sync failures mean stale data; policy evaluation failures mean undetected violations.
- Stagger heavy jobs -- Do not schedule large sync projects and full policy evaluations at the same time.
- Monitor duration trends -- A sync job that used to take 2 minutes but now takes 20 suggests index maintenance is needed.
- Investigate repeated failures -- A job that fails once may be a transient issue; three consecutive failures indicate a configuration problem.
- Use Run Now for testing -- After fixing a configuration issue, manually trigger the job to verify the fix before waiting for the next scheduled run.
- Keep log cleanup active -- The
LogCleanupJobprevents the job history table from growing indefinitely.
Next Steps
- Schedule Manager -- Configure and manage automated schedules
- Processing Center -- View real-time job queue and running processes
- Database Maintenance -- Index and statistics maintenance to keep jobs fast
- Common Issues -- General troubleshooting guide