+91-7678211866  info@peppertechsolutions.com

PeopleSoft App Server Processes Explained: What Each Process Does & Why It Matters (2024)
PeopleSoft Administration

PeopleSoft App Server Processes Explained: What Each Process Does & Why It Matters

A deep-dive reference for PeopleSoft administrators — every Tuxedo server process in the Application Server domain, its exact role, tuning levers, and how to troubleshoot it when things go wrong.

📅 Updated: November 2024 ⏱ 14 min read 🏷 PeopleTools · App Server · Tuxedo

If you've ever run psadmin and looked at the list of server processes for an Application Server domain, you've probably seen names like PSAPPSRV, PSQCKSRV, PSQRYSRV, PSSAMSRV, and a handful of others — and wondered exactly what each one does and whether you need them all.

This article answers that question comprehensively. We'll go process by process, explaining the purpose of each, when it fires, what happens if it goes down, and how to configure it correctly for your environment. This is the reference guide every PeopleSoft admin needs bookmarked.

10+Distinct server processes in a typical App Server domain
TuxedoMiddleware platform managing all App Server processes
psappsrv.cfgSingle config file controlling every process parameter
PT 8.4+Architecture stable since PeopleTools 8.44

What Is the PeopleSoft Application Server?

The PeopleSoft Application Server is the middle tier in PeopleSoft's three-tier architecture. It sits between the web server (PIA on WebLogic) and the database (Oracle, SQL Server, or DB2), and it is responsible for all business logic execution.

When a user navigates a PeopleSoft page, submits a form, or runs a query, the request travels from the browser → WebLogic PIA → Application Server → Database, and the response travels back the same chain. The Application Server executes PeopleCode, enforces security, manages sessions, handles caching, and translates user actions into SQL that hits the database.

💡 Key Concept The Application Server is not a single monolithic process. It is a collection of specialised Tuxedo server processes, each with a distinct role. Understanding what each one does is fundamental to administration, performance tuning, and troubleshooting.
Browser
WebLogic / PIA
→ JOLT →
App Server Domain
(Multiple Tuxedo Processes)
→ SQL →
Database

Figure 1: Request flow through the PeopleSoft three-tier architecture

How Oracle Tuxedo Manages Processes

Oracle Tuxedo (formerly BEA Tuxedo) is the transaction-processing middleware that runs the Application Server. It acts as a process manager, message router, and load balancer for all the server processes defined in your domain.

Every Application Server domain is defined by a configuration file — psappsrv.cfg — which Tuxedo reads at boot time to know which processes to start, how many instances of each to run, and what service queue each process listens on. Tuxedo also monitors each process and can automatically restart it if it crashes.

The BBL — Bulletin Board Liaison

The BBL (Bulletin Board Liaison) is Tuxedo's master process. It maintains the in-memory bulletin board — a shared data structure that tracks all registered services, available server processes, and their load. Every other Tuxedo server process registers with the BBL at startup. If the BBL dies, the entire domain goes down. It is automatically restarted by the Tuxedo monitor daemon.

PBBR — Bulletin Board Router

In multi-node Tuxedo configurations (MP mode), the PBBR bridges bulletin boards across machines. In single-node SHM (Shared Memory) mode — which most PeopleSoft environments use — PBBR is not active.

PSAPPSRV — The Core Application Server

PSAPPSRV
Main Application Server Process
Handles all interactive PeopleCode execution and page rendering logic

PSAPPSRV is the workhorse of the entire Application Server domain. It is responsible for processing the vast majority of user-initiated requests that involve PeopleCode execution — opening pages, saving records, performing component-level business logic, and interacting with the database.

When a user opens a PeopleSoft component (a page), the PIA sends a request via JOLT to a PSAPPSRV process. PSAPPSRV loads the component definition from its cache (or the database if not cached), executes any relevant PeopleCode events (RowInit, SearchInit, FieldChange, SavePreChange, etc.), fetches the required data rows via SQL, and returns the rendered page data to PIA.

Because PSAPPSRV handles complex, multi-step operations that can involve many PeopleCode events and multiple database round-trips, it is typically configured with more instances than other server processes. Each instance handles one request at a time — there is no threading within a single PSAPPSRV process.

Critical Process Typical instances: 3–10 Handles: All interactive page requests

Configuration Parameters for PSAPPSRV

[PSAPPSRV]
;=======================================================
; Min Instances=      Minimum server processes to start
; Max Instances=      Maximum server processes (scale up)
; Service Timeout=    Seconds before a hung request is killed
; Recycle Count=      Requests before process auto-restarts (memory mgmt)
; Allowed Consec Service Failures= Before process is taken down
;=======================================================
Min Instances=3
Max Instances=7
Service Timeout=300
Recycle Count=5000
Allowed Consec Service Failures=2
✅ Tuning Tip Set Recycle Count to 5,000–10,000 to automatically recycle processes and prevent memory bloat over time. If users are reporting slow page loads, check whether PSAPPSRV processes are near their max instances — you may need to increase Max Instances.

PSQCKSRV — The Quick Server

PSQCKSRV
Quick Server Process
Handles fast, lightweight read-only operations to prevent queue starvation

PSQCKSRV exists to handle a specific class of lightweight requests — primarily search operations, prompt lookups, and auto-complete field fills — that would otherwise compete for the same queue as heavier PSAPPSRV requests.

Without PSQCKSRV, a quick prompt lookup (e.g., looking up a list of departments as a user fills in a field) would sit in the same queue as a complex payroll page save. PSQCKSRV provides a dedicated fast lane for these low-cost operations, keeping the user experience responsive even when PSAPPSRV is under load.

PSQCKSRV executes PeopleCode but is optimised for short-duration requests. It has its own Tuxedo service queue separate from PSAPPSRV, so lightweight requests are never stuck behind heavy ones.

Important Process Typical instances: 2–4 Handles: Prompts, lookups, search dialogs
⚠️ Watch Out Disabling PSQCKSRV to save resources is a common mistake. Without it, prompt lookups and search operations queue behind long-running PSAPPSRV requests, causing noticeable UI lag — especially in high-concurrency environments.

PSQRYSRV — The Query Server

PSQRYSRV
Query Server Process
Dedicated handler for PS Query Manager and connected queries

PSQRYSRV handles all requests coming from PeopleSoft Query Manager — the ad-hoc reporting tool built into PIA. When a user runs a PS Query (either interactively or via a scheduled process), the request routes to PSQRYSRV rather than PSAPPSRV.

This separation is critical for performance. PS Query requests are often long-running and can return large result sets. By isolating them to PSQRYSRV, Oracle ensures that a user running a report with hundreds of thousands of rows cannot starve out users doing interactive page work on PSAPPSRV.

PSQRYSRV also handles Connected Queries — a feature introduced in PeopleTools 8.51 that allows multiple related queries to be run together and joined at the application layer. These are even more resource-intensive, making the isolation benefit of PSQRYSRV even more significant.

Important Process Typical instances: 2–3 Handles: PS Query, Connected Queries, Query Scheduler

PSSAMSRV — The Security & Auth Manager

PSSAMSRV
Security Access Manager Server
Handles authentication, token validation, and permission list lookups

PSSAMSRV is the Application Server's security authority. It is responsible for validating user authentication tokens, resolving permission lists, and caching security data so that every other server process doesn't need to make individual database calls to check permissions.

When a user first logs into PeopleSoft, PSSAMSRV validates their credentials (or the SSO token from the web server), retrieves their roles and permission lists from the database, and caches this security context. Subsequent requests from that user reference the cached security data in PSSAMSRV rather than hitting the database again — significantly improving performance at scale.

PSSAMSRV also handles Signon PeopleCode — any custom authentication logic that fires at login is executed here. If your organisation has custom authentication events (e.g., LDAP lookups, conditional access rules), they run through PSSAMSRV.

Critical Process Typical instances: 1–2 Handles: Login, SSO, Permission lists, Signon PeopleCode
💡 Architecture Note PSSAMSRV maintains an in-memory security cache. If you make changes to roles or permission lists for a user, those changes may not take effect until the user logs out and back in, or until the PSSAMSRV cache is refreshed (either by process recycle or cache flush via PSADMIN).

PSANALYTICSRV — Analytics Server

PSANALYTICSRV
Analytics Server Process
Supports Pivot Grids and embedded analytics within PeopleSoft pages

PSANALYTICSRV was introduced to support PeopleSoft's Pivot Grid framework — the embedded charting and analytics capability available from PeopleTools 8.52 onwards. When a user opens a page that contains a Pivot Grid or accesses the Pivot Grid Wizard, the rendering and data-aggregation work is handled by PSANALYTICSRV.

This process performs the analytics-layer processing — aggregating data across dimensions, computing totals, and preparing chart data — before returning it to PIA for rendering. Like PSQRYSRV, isolating this work prevents analytics-heavy operations from impacting interactive page performance.

If your PeopleSoft implementation does not use Pivot Grids or embedded analytics, PSANALYTICSRV can be disabled to free system resources. However, on deployments using PeopleSoft Insights or fluid analytics dashboards, it is essential.

Conditional Process Typical instances: 1–2 Handles: Pivot Grids, embedded charts, analytics dashboards

PSBRKHND — The Broker Handler

PSBRKHND
Integration Broker Handler
Routes inbound messages from the Integration Gateway into the App Server

PSBRKHND is the Application Server-side entry point for Integration Broker synchronous messages. When the Integration Gateway receives an inbound SOAP or REST request from an external system, it passes the message to PSBRKHND via JOLT. PSBRKHND then routes the message to the appropriate service operation handler for processing.

For synchronous service operations (those that return an immediate response), PSBRKHND manages the request-response cycle — it dispatches the message, waits for the handler to execute, and returns the response back through the gateway to the calling system.

PSBRKHND works in conjunction with PSPUBHND and PSSUBHND (described below) to form the complete Integration Broker processing pipeline within the Application Server domain.

IB Process Typical instances: 1–3 Handles: Synchronous IB messages, inbound service operations

PSSUBHND — The Subscription Handler

PSSUBHND
Subscription Handler
Processes inbound asynchronous messages destined for PeopleSoft

PSSUBHND processes inbound asynchronous Integration Broker messages — messages that external systems have published into the PeopleSoft integration queues and that PeopleSoft needs to consume and act on. These are the "subscriber" side of PeopleSoft's publish/subscribe integration model.

When an external system sends a data payload to PeopleSoft (for example, a third-party HR system pushing employee updates), the message lands in the Integration Broker queue. PSSUBHND picks up these queued messages and executes the registered subscription PeopleCode handler — which might update records, trigger workflows, or call other components.

PSSUBHND processes messages asynchronously, which means the external sender does not wait for processing to complete. This decoupling is what allows high-volume integrations to operate reliably without creating bottlenecks.

IB Process Typical instances: 1–3 Handles: Inbound async messages, subscription PeopleCode

PSPUBHND — The Publication Handler

PSPUBHND
Publication Handler
Dispatches outbound asynchronous messages from PeopleSoft to external systems

PSPUBHND is the outbound counterpart to PSSUBHND. It handles the dispatching of outbound asynchronous Integration Broker messages — messages that PeopleSoft has published and that need to be delivered to external systems.

When PeopleCode publishes a message (for example, when an employee record is saved and PeopleSoft needs to notify an external payroll system), PSPUBHND picks up the published message from the queue, applies any configured transforms, and dispatches it to the target node via the Integration Gateway.

PSPUBHND also handles retry logic for failed deliveries — if a target system is temporarily unavailable, PSPUBHND will attempt redelivery according to the configured retry schedule, ensuring messages are not lost during transient outages.

IB Process Typical instances: 1–3 Handles: Outbound async messages, publication dispatch, retry logic

JOLT Listener (JSL) & JOLT Relay Adapter (JRAD)

JSL / JSH / JRAD
JOLT Listener & Relay Processes
TCP communication layer between PIA (WebLogic) and the Tuxedo App Server

JOLT (Java Object Linking and Tuxedo) is the proprietary protocol that PIA uses to communicate with the Application Server. The JOLT Station Listener (JSL) is the Tuxedo process that listens on a configured TCP port for incoming JOLT connections from WebLogic.

When a new PIA connection arrives, JSL spawns or assigns a JOLT Station Handler (JSH) to manage that specific connection's lifecycle. JSH acts as the persistent connection manager for one WebLogic-to-Tuxedo session — multiplexing individual service requests within that connection to the appropriate Tuxedo server processes.

The JOLT Relay Adapter (JRAD) is used in multi-machine Tuxedo configurations to relay JOLT traffic between machines. In single-machine SHM deployments it is typically not required.

The JSL port (default 9000) must be open between the WebLogic server and the Application Server host — this is one of the most common firewall-related issues when setting up a new PeopleSoft environment.

Infrastructure Process JSL port: typically 9000 Handles: All PIA ↔ App Server TCP communication

WSL / WSH — Workstation Listener & Handler

WSL / WSH
Workstation Listener & Handler
Legacy two-tier connectivity for tools like Application Designer

The Workstation Listener (WSL) and Workstation Handler (WSH) handle direct TCP connections from PeopleSoft two-tier client tools — primarily Application Designer, Data Mover, and Configuration Manager when running in two-tier mode (connecting directly to the App Server rather than through PIA).

In modern PeopleSoft environments, most user interaction is browser-based and goes through PIA. However, PeopleSoft administrators and developers regularly use Application Designer in two-tier mode for development, configuration, and patching work — and this is what WSL/WSH supports.

WSL listens on a configurable port (default 7000) for incoming tool connections. Each connection is assigned to a WSH instance for the duration of the session. Like JSL/JSH, WSL manages connection multiplexing and WSH manages individual sessions.

Admin/Dev Process WSL port: typically 7000 Handles: Application Designer, Data Mover, Config Manager (2-tier)

Process Summary Reference Table

Process Full Name Primary Function Typical Instances Critical?
BBL Bulletin Board Liaison Tuxedo master process; service registry & domain health 1 (always) 🔴 Yes
PSAPPSRV App Server PeopleCode execution, interactive page processing 3–10 🔴 Yes
PSQCKSRV Quick Server Prompt lookups, search dialogs, lightweight reads 2–4 🟡 High
PSQRYSRV Query Server PS Query Manager & Connected Queries 2–3 🟡 High
PSSAMSRV Security Access Manager Authentication, permission lists, security cache 1–2 🔴 Yes
PSANALYTICSRV Analytics Server Pivot Grids, embedded analytics dashboards 1–2 🟢 Optional
PSBRKHND Broker Handler Synchronous Integration Broker message routing 1–3 🟡 If using IB
PSSUBHND Subscription Handler Inbound async IB messages & subscription handlers 1–3 🟡 If using IB
PSPUBHND Publication Handler Outbound async IB message dispatch & retry 1–3 🟡 If using IB
JSL / JSH JOLT Station Listener/Handler PIA → App Server TCP communication via JOLT 1 JSL / N JSH 🔴 Yes
WSL / WSH Workstation Listener/Handler Two-tier tool connections (App Designer, Data Mover) 1 WSL / N WSH 🟡 For dev/admin

Key Configuration in psappsrv.cfg

All App Server process settings live in psappsrv.cfg, located in $PS_CFG_HOME/appserv/<domain>/. Here are the most important parameters every admin should know:

; ── Database Connection ──────────────────────────────────
[Database Options]
DBName=HRPRD
DBType=ORACLE
UserId=PS
UserPswd={encrypted}
ConnectId=people
ConnectPswd={encrypted}
ServerName=

; ── Cache Settings ───────────────────────────────────────
[Cache Settings]
CacheBaseDir=/u01/ps/cfg/appserv/HRPRD/CACHE
EnableServerCache=1
CacheDir=0

; ── Trace / Debugging ────────────────────────────────────
[Trace]
TraceFile=/u01/ps/cfg/appserv/HRPRD/LOGS/appsrv_%SERVER%.tracesql
TraceSQL=0          ; Set to 15 to trace SQL (dev only — never in prod)
TracePC=0           ; Set to 4076 to trace PeopleCode (dev only)

; ── PSAPPSRV ─────────────────────────────────────────────
[PSAPPSRV]
Min Instances=3
Max Instances=7
Service Timeout=300
Recycle Count=10000
Allowed Consec Service Failures=2

; ── PSQCKSRV ─────────────────────────────────────────────
[PSQCKSRV]
Min Instances=2
Max Instances=4
Service Timeout=90
Recycle Count=10000

; ── PSQRYSRV ─────────────────────────────────────────────
[PSQRYSRV]
Min Instances=2
Max Instances=3
Service Timeout=600
Recycle Count=10000

; ── JOLT ─────────────────────────────────────────────────
[JOLT Listener]
Port=9000
Min Handlers=3
Max Handlers=10
Min Connections=3
Max Connections=50
⚠️ Never Enable SQL or PeopleCode Trace in Production TraceSQL and TracePC generate enormous log files and severely degrade performance. Enable them only in development or when actively debugging a specific issue, and turn them off immediately after.

Tuning & Sizing Guidelines

How Many PSAPPSRV Instances Do You Need?

A common rule of thumb is to start with 1 PSAPPSRV instance per 40–60 concurrent users and adjust based on monitoring. Use the PSADMIN "Server Status" menu or Tuxedo's tmadmin utility to watch queue depth — if requests are consistently waiting in the PSAPPSRV queue, increase Max Instances.

Memory Considerations

Each PSAPPSRV process consumes roughly 200–500 MB of RAM depending on your application's cache footprint. Size your App Server host with enough physical memory to accommodate all processes across all domains (including Process Scheduler) with headroom to spare. Swapping is fatal to App Server performance.

Recycle Count

Setting a Recycle Count (e.g., 10,000 requests) causes processes to restart themselves periodically, which prevents memory fragmentation from accumulating over days or weeks of uptime. This is a lightweight operation — Tuxedo starts a replacement process before killing the recycled one, so there is no user-visible interruption.

Service Timeout

The Service Timeout is the maximum number of seconds Tuxedo allows a single request to run before killing it. For PSAPPSRV, 300 seconds is the default and usually appropriate. For PSQRYSRV, you may want to extend this (e.g., 600–900 seconds) to accommodate long-running queries without premature timeout.

Troubleshooting Process Issues

Process Won't Start

Check APPSRV_MMDD.LOG in the domain logs directory. The most common causes are incorrect database credentials in psappsrv.cfg, a missing or stale PID file, or a port conflict (another process already using the JSL or WSL port).

PSAPPSRV Processes Cycling Repeatedly

If PSAPPSRV processes are restarting frequently, look for Allowed Consec Service Failures being hit. This typically means a specific PeopleCode operation is throwing an unhandled exception and crashing the process. Enable TracePC temporarily in a non-production environment to identify the failing code path.

Queue Depth Building Up

Use psadmin > 4 (Server Status) to see active vs. queued requests per process type. Sustained queue depth means you need more instances or your requests are running slower than expected. Profile slow SQL using TraceSQL=15 in dev to identify bottlenecks.

PSSAMSRV Security Cache Issues

If users report permission changes not taking effect, flush the PSSAMSRV cache via psadmin > Purge Cache or bounce the PSSAMSRV process. This forces the security manager to reload all permission lists from the database on next request.

Integration Broker Messages Stuck

Check PSSUBHND and PSPUBHND process health first. Then review the IB Monitor at PeopleTools > Integration Broker > Monitor. Messages stuck in "Started" status usually indicate a handler crash — review the application server log for stack traces.

Frequently Asked Questions

Q: What is the difference between PSAPPSRV and PSQCKSRV?
PSAPPSRV handles all full page operations — opening components, saving data, running complex PeopleCode business logic. PSQCKSRV handles lightweight, fast operations like prompt lookups and search results. The split prevents quick requests from being stuck behind slow ones.
Q: Can I run an App Server domain without PSQRYSRV?
Technically yes, but it is not recommended. Without PSQRYSRV, PS Query requests will queue against PSAPPSRV, meaning a long-running report can delay all interactive users. PSQRYSRV is cheap to run (2 instances typically) and the performance isolation it provides is well worth it.
Q: How do I check how many PSAPPSRV instances are currently active?
Run psadmin, select your domain, then choose option 4 (Server Status). This shows all configured processes, their current status (active/inactive), the number of running instances, and the current queue depth. You can also use Tuxedo's tmadmin tool directly for more detailed metrics.
Q: What happens if PSSAMSRV goes down?
If PSSAMSRV is down, users cannot log in — new authentication requests will fail. Existing logged-in users with valid cached sessions may continue to work briefly, but new logins and any operation that requires a fresh security check will fail. Tuxedo will attempt to automatically restart PSSAMSRV, but if it cannot, the domain must be recycled.
Q: Do I need the Integration Broker processes (PSBRKHND, PSSUBHND, PSPUBHND) if I'm not using Integration Broker?
If you are not using Integration Broker at all, these processes can be disabled in psappsrv.cfg to free resources. However, some PeopleSoft features (including certain Fluid components and notification frameworks in newer PeopleTools versions) use IB internally, so verify with Oracle documentation for your specific PeopleTools version before disabling them.
Q: What is the correct order to start and stop an App Server domain?
Always start via psadmin which handles the correct Tuxedo boot sequence. To stop cleanly, use the "Shutdown with timeout" option rather than killing processes manually — this allows in-flight requests to complete. Killing Tuxedo processes manually can corrupt the bulletin board and require a forced cleanup before the domain can restart.
PeopleSoft Admin Training

Master PeopleSoft App Server Administration from the Ground Up

Learn to configure, tune, and troubleshoot every App Server process with hands-on lab access, real PeopleSoft environments, and expert-led instruction.

30+ Hours Instructor-Led Training
Real-Time Lab Access
PeopleTools Upgrade & Patching
Interview & Resume Support

📞 Call / WhatsApp +91-7678211866
📧 Email info@peppertechsolutions.com
#PeopleSoft #AppServer #PSAPPSRV #Tuxedo #PeopleTools #PeopleSoftAdmin #EnterpriseERP #Oracle #IntegrationBroker #PerformanceTuning