Back to Scheduling
Scheduling

Job Monitoring & History

19 views

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:

  1. Navigate to System Center and configure email settings (SMTP server, sender address)
  2. Enable job failure notifications in the system settings
  3. Specify the recipient email addresses for alert notifications
  4. 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

  1. Review failed jobs daily -- Make checking job history part of your morning routine. Unaddressed failures compound over time.
  2. Set up alerts for critical jobs -- Sync failures mean stale data; policy evaluation failures mean undetected violations.
  3. Stagger heavy jobs -- Do not schedule large sync projects and full policy evaluations at the same time.
  4. Monitor duration trends -- A sync job that used to take 2 minutes but now takes 20 suggests index maintenance is needed.
  5. Investigate repeated failures -- A job that fails once may be a transient issue; three consecutive failures indicate a configuration problem.
  6. 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.
  7. Keep log cleanup active -- The LogCleanupJob prevents the job history table from growing indefinitely.

Next Steps

Tags: scheduling monitoring history errors diagnostics

Was this article helpful?

Related Articles

Schedule Manager