# Server Definitions

> Browse PeopleSoft Process Scheduler Server Definitions, monitor live running tasks, and inspect daemon settings.

---

LLMS index: [llms.txt](/llms.txt)

---

<div id="pslens-context-panel" class="card border-info mb-4 d-none">
  <div class="card-header bg-light text-info py-2 fw-bold d-flex align-items-center border-bottom border-info-subtle">
    <i class="bi bi-info-circle-fill me-2"></i>
    <span>Tailored Operational Context</span>
  </div>
  <div class="card-body p-0">
    <ul class="list-group list-group-flush">
      <li id="row-db" class="list-group-item d-flex align-items-center justify-content-between py-2 d-none">
        <strong>Target Database:</strong>
        <span id="ctx-db" class="badge bg-secondary font-monospace">&mdash;</span>
      </li>
      <li id="row-type" class="list-group-item d-flex align-items-center justify-content-between py-2 d-none">
        <strong>Context Type:</strong>
        <span id="ctx-type" class="badge bg-light text-dark border font-monospace text-uppercase">&mdash;</span>
      </li>
      <li id="row-severity" class="list-group-item d-flex align-items-center justify-content-between py-2 d-none">
        <strong>Alert Severity:</strong>
        <span id="ctx-severity" class="badge">&mdash;</span>
      </li>
      <li id="row-time" class="list-group-item d-flex align-items-center justify-content-between py-2 d-none">
        <strong>Triggered Time:</strong>
        <span id="ctx-time" class="text-muted small">&mdash;</span>
      </li>
      <li id="row-details" class="list-group-item py-2 d-none">
        <strong id="label-details" class="d-block mb-1">Firing Context:</strong>
        <code id="ctx-details" class="d-block p-2 bg-light border rounded small" style="white-space: pre-wrap; word-break: break-all;">&mdash;</code>
      </li>
    </ul>
  </div>
</div>

<script>
  (function() {
    const params = new URLSearchParams(window.location.search);
    const metadata = params.get('metadata');
    if (!metadata) return;

    try {
      
      const base64 = metadata.replace(/-/g, '+').replace(/_/g, '/');
      const jsonStr = decodeURIComponent(escape(window.atob(base64)));
      const data = JSON.parse(jsonStr);

      if (data) {
        let hasData = false;

        if (data.db) {
          document.getElementById('ctx-db').textContent = data.db;
          document.getElementById('row-db').classList.remove('d-none');
          hasData = true;
        }

        if (data.type) {
          document.getElementById('ctx-type').textContent = data.type;
          document.getElementById('row-type').classList.remove('d-none');
          hasData = true;
        }

        if (data.severity) {
          const severityBadge = document.getElementById('ctx-severity');
          const severity = data.severity.toLowerCase();
          severityBadge.textContent = severity.toUpperCase();
          if (severity === 'critical') {
            severityBadge.className = 'badge bg-danger';
          } else if (severity === 'warning') {
            severityBadge.className = 'badge bg-warning text-dark';
          } else {
            severityBadge.className = 'badge bg-info';
          }
          document.getElementById('row-severity').classList.remove('d-none');
          hasData = true;
        }

        if (data.t) {
          const date = new Date(data.t * 1000);
          document.getElementById('ctx-time').textContent = date.toLocaleString();
          document.getElementById('row-time').classList.remove('d-none');
          hasData = true;
        }

        if (data.details) {
          document.getElementById('ctx-details').textContent = data.details;

          
          const labelDetails = document.getElementById('label-details');
          if (data.type === 'object') {
            labelDetails.textContent = 'Object Metadata Details:';
          } else if (data.type === 'report') {
            labelDetails.textContent = 'Report Description:';
          } else {
            labelDetails.textContent = 'Firing Context:';
          }

          document.getElementById('row-details').classList.remove('d-none');
          hasData = true;
        }

        if (hasData) {
          document.getElementById('pslens-context-panel').classList.remove('d-none');
        }
      }
    } catch (e) {
      console.error('Failed to parse operational context metadata:', e);
    }
  })();
</script>


## What It Is

Server Definitions represent the Process Scheduler Servers that are defined inside PeopleSoft. These servers execute the batch processes (like Application Engines, SQRs, etc.) and manage scheduling recurrences and daemon processes.

psLens allows you to search and browse server definitions to see how a server is configured, check its live heartbeat status, see active running processes, review what process classes and categories it is authorized to run, check operational schedules, and view its notification routing.

## Search Page

URL: `/servers?db={database}`

* **Search:** Search for server definitions by name (prefix match, e.g., `PRCS%`).
* **Metadata Card:** Shows the description, operating system, daemon status, and modification timestamps.

## Detail Page

URL: `/servers/{SERVERNAME}?db={database}`

The Detail Page displays:

* **Server Status:** Shows real-time heartbeat and diagnostics from `PSSERVERSTAT` including:
  * Current status (Running, Down, Suspended, Overloaded, etc.) with relative "time ago" timestamps.
  * CPU and Memory utilization.
  * Free disk space and thresholds.
  * AE/OE Server counts.
* **Active Running Processes:** Live grid of active processes (Initiated, Processing, Running) currently executing on the server from `PSPRCSRQST`.
* **Server Definition Properties:** Displays configuration metrics like version, sleep time, heartbeat frequency, max concurrent API aware/unaware tasks, distribution node details, CPU/Memory threshold configs, and load balancing/redistribution option choices.
* **Server Daemon Details:** Shows daemon configuration:
  * Enabled state, daemon group, sleep time, recycle counts.
  * Active daemon process instance (with direct link to its Process Monitor view).
* **Process Categories:** Authorized process categories with priority and max concurrent execution counts.
* **Process Types:** Specific process types the server is configured to run, categorized by operating system, priority, and concurrent limits.
* **Server Operation Times:** Scheduled operation windows when the server is active (24/7 or day/time ranges).
* **Status Notifications:** List of users and roles notified upon server status changes (e.g., when the server goes down or encounters an error), displaying active status flags as checkboxes.
* **Export as Markdown:** Export the entire server definition structure and live status/child tables as a markdown file.
