Operate the API and Scheduler
Check connectivity, inspect active work and verify deliberate scheduler controls.
Check the ATRS API and scheduler, inspect current work and confirm that the server is ready to run reports.
Before you begin
Complete Authentication and Token Management. The PowerShell examples use $AtrsBaseUrl and $AtrsHeaders from that guide. Run the steps in order in the same PowerShell session. Use your installation’s address and identifiers in place of the examples.
Use administrative credentials with the required permissions. Confirm which server you are addressing before starting or stopping its scheduler.
Operations at a glance
| Question | Operation | Response |
|---|---|---|
| Is the API reachable? | Ping | Number 1; no token required. |
| Is the scheduler running? | IsSchedulerRunning | Boolean. |
| What is in the API queue? | GetExecutionQueue | Queue records. |
| What work is currently running? | GetCurrentlyExecuting | Process-monitor records. |
| What schedules are due? | AllDue | Due Today — All view. |
| What capacity is available? | GetNumberOfFreeThreads | Object containing Result. |
| Where is configuration stored? | GetConfigPath | JSON string containing a path. |
Check connectivity and scheduler state
$AtrsPing = Invoke-RestMethod -Method Get -Uri "$AtrsBaseUrl/api/Service/Ping" -TimeoutSec 30
$AtrsRunning = Invoke-RestMethod -Method Get `
-Uri "$AtrsBaseUrl/api/Service/IsSchedulerRunning" -Headers $AtrsHeaders -TimeoutSec 30
$AtrsPing
$AtrsRunningExpect 1 and a boolean. Ping verifies the listener; scheduler state describes scheduled processing. Neither proves Tableau access or report delivery.
Start or stop the scheduler
Choose the intended action, send it once and verify the resulting state:
$AtrsAction = Read-Host "Scheduler action: StartScheduler or StopScheduler"
if ($AtrsAction -notin @("StartScheduler","StopScheduler")) { throw "Choose a listed action" }
Invoke-RestMethod -Method Get -Uri "$AtrsBaseUrl/api/Service/$AtrsAction" `
-Headers $AtrsHeaders -TimeoutSec 30
$AtrsRunning = Invoke-RestMethod -Method Get `
-Uri "$AtrsBaseUrl/api/Service/IsSchedulerRunning" -Headers $AtrsHeaders -TimeoutSec 30
Write-Host "Scheduler running: $AtrsRunning"StartScheduler and StopScheduler return an empty successful response. Keep these state-changing GET operations out of health probes, prefetching and automatic retry policies.
The API service must already be running. Starting the scheduler cannot start an unavailable API listener. Stopping it does not prove all active or externally submitted work has finished.
Inspect the queue and active work
$AtrsQueue = Invoke-RestMethod -Method Get `
-Uri "$AtrsBaseUrl/api/Schedule/GetExecutionQueue" -Headers $AtrsHeaders -TimeoutSec 30
$AtrsActive = Invoke-RestMethod -Method Get `
-Uri "$AtrsBaseUrl/api/SystemMonitor/GetCurrentlyExecuting" -Headers $AtrsHeaders -TimeoutSec 30
$AtrsDue = Invoke-RestMethod -Method Get `
-Uri "$AtrsBaseUrl/api/SystemMonitor/AllDue" -Headers $AtrsHeaders -TimeoutSec 30
$AtrsQueue | ConvertTo-Json -Depth 50
$AtrsActive | ConvertTo-Json -Depth 50
$AtrsDue | ConvertTo-Json -Depth 50Queue records include retained completed runs as well as current API activity. Active-work records describe processes. Due schedules are planned work, not proof of execution or delivery. Correlate execution IDs, process IDs and server names appropriately.
For an execution you submitted, follow its ExecutionId through monitoring and recovery.
Check execution capacity
$AtrsCapacity = Invoke-RestMethod -Method Get `
-Uri "$AtrsBaseUrl/api/Schedule/GetNumberOfFreeThreads" -Headers $AtrsHeaders -TimeoutSec 30
$AtrsCapacity.ResultThe value is a current-server snapshot, clamped at zero. The default capacity is four, subject to configuration. It does not reserve a slot; another submission can consume capacity before your next request.
Schedule processes, rendering processes and data-driver row threads are different controls. Monitor Tableau-side limits and machine resources as well. Queue/capacity reads can also perform cleanup of old entries.
Find the configuration path
$AtrsConfigPath = Invoke-RestMethod -Method Get `
-Uri "$AtrsBaseUrl/api/Service/GetConfigPath" -Headers $AtrsHeaders -TimeoutSec 30
$AtrsConfigPathThe response is a path string, possibly a network path. It is not file contents or a download URL. Access to the path requires separate filesystem permissions.
Perform maintenance checks
Before maintenance, record scheduler state, active work, queued submissions and expected deliveries. Coordinate applications that can submit work and inspect partial output before retrying interrupted runs.
After maintenance, repeat Ping, authenticated scheduler state, activity and capacity checks. Run an intended test schedule and inspect its output before resuming normal delivery.
In collaboration environments, verify access and output on each affected server. Configure collaboration through the ATRS administration workflow; UpdateCollaborationSettings can change connection settings and terminate processes, so it is outside these routine checks.
Troubleshooting
| Symptom | Next action |
|---|---|
| API does not respond | Check the API service and network connection. |
| Scheduler is stopped | Review maintenance state before deliberately starting it. |
| Capacity is zero | Inspect current activity; zero alone is not a service failure. |
| Queue is empty but reports are running | Inspect the process monitor and schedule history separately. |
Updated about 11 hours ago