+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
Critical

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

When a user opens a PeopleSoft component, the PIA sends a request via JOLT to a PSAPPSRV process. PSAPPSRV loads the component definition, executes PeopleCode events (RowInit, FieldChange, SavePreChange, etc.), fetches data via SQL, and returns the rendered page.

Each instance handles one request at a time. Configure Min/Max Instances based on your concurrent user count — typically 1 instance per 40–60 concurrent users.

⚙️ Instances: 3–10 ✅ Handles: All interactive page requests
PSQCKSRV
Quick Server Process
Handles fast, lightweight read-only operations to prevent queue starvation
High Priority

PSQCKSRV provides a dedicated fast lane for lightweight requests — search operations, prompt lookups, and auto-complete field fills — preventing them from competing with heavier PSAPPSRV requests.

Without PSQCKSRV, a quick department lookup would sit in the same queue as a complex payroll save. This dedicated process keeps the user experience responsive even under heavy load.

Do not disable PSQCKSRV to save resources — doing so causes prompt lookups to queue behind long-running operations, causing noticeable UI lag.

⚙️ Instances: 2–4 ✅ Handles: Prompts, lookups, search dialogs
PSQRYSRV
Query Server Process
Dedicated handler for PS Query Manager and connected queries
High Priority

PSQRYSRV handles all requests from PeopleSoft Query Manager. When a user runs a PS Query interactively or via a scheduled process, the request routes to PSQRYSRV rather than PSAPPSRV.

This isolation is critical — PS Query requests are often long-running and can return large result sets. Isolating them prevents a report with hundreds of thousands of rows from starving out interactive users.

PSQRYSRV also handles Connected Queries (introduced in PeopleTools 8.51) which are even more resource-intensive, making this isolation even more valuable.

⚙️ Instances: 2–3 ✅ Handles: PS Query, Connected Queries, Query Scheduler
PSSAMSRV
Security Access Manager Server
Handles authentication, token validation, and permission list lookups
Critical

PSSAMSRV is the Application Server's security authority. It validates user authentication tokens, resolves permission lists, and caches security data so other processes don't need individual database calls to check permissions.

When a user logs in, PSSAMSRV validates their credentials, retrieves their roles and permission lists, and caches this security context. Subsequent requests reference the cache — significantly improving performance at scale.

PSSAMSRV also executes Signon PeopleCode — custom authentication logic (LDAP lookups, conditional access) fires here. If PSSAMSRV goes down, new logins will fail.

⚙️ Instances: 1–2 ✅ Handles: Login, SSO, Permission lists, Signon PeopleCode
PSANALYTICSRV
Analytics Server Process
Supports Pivot Grids and embedded analytics within PeopleSoft pages
Optional

PSANALYTICSRV was introduced to support PeopleSoft's Pivot Grid framework — the embedded charting and analytics capability available from PeopleTools 8.52 onwards.

It performs analytics-layer processing — aggregating data across dimensions, computing totals, and preparing chart data — before returning it to PIA for rendering.

If your PeopleSoft implementation does not use Pivot Grids or embedded analytics, PSANALYTICSRV can be disabled to free system resources.

⚙️ Instances: 1–2 ✅ Handles: Pivot Grids, embedded charts, analytics dashboards
PSBRKHND
Integration Broker Handler
Routes inbound messages from the Integration Gateway into the App Server
IB Required

PSBRKHND is the Application Server-side entry point for Integration Broker synchronous messages. When the Integration Gateway receives an inbound SOAP or REST request, it passes the message to PSBRKHND via JOLT.

PSBRKHND routes the message to the appropriate service operation handler, manages the request-response cycle, and returns the response back through the gateway to the calling system.

It works in conjunction with PSPUBHND and PSSUBHND to form the complete Integration Broker processing pipeline.

⚙️ Instances: 1–3 ✅ Handles: Synchronous IB messages, inbound service operations
PSSUBHND
Subscription Handler
Processes inbound asynchronous messages destined for PeopleSoft
IB Required

PSSUBHND processes inbound asynchronous Integration Broker messages — messages that external systems have published into PeopleSoft integration queues that PeopleSoft needs to consume.

When an external system sends a data payload to PeopleSoft, the message lands in the IB queue. PSSUBHND picks up these queued messages and executes the registered subscription PeopleCode handler.

PSSUBHND processes messages asynchronously — the external sender does not wait for processing to complete, enabling high-volume integrations without bottlenecks.

⚙️ Instances: 1–3 ✅ Handles: Inbound async messages, subscription PeopleCode
PSPUBHND
Publication Handler
Dispatches outbound asynchronous messages from PeopleSoft to external systems
IB Required

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

When PeopleCode publishes a message (e.g., employee record saved, notifying payroll system), PSPUBHND picks it up from the queue, applies configured transforms, and dispatches it via the Integration Gateway.

PSPUBHND also handles retry logic for failed deliveries — if a target system is temporarily unavailable, it retries per the configured schedule so messages are never lost.

⚙️ Instances: 1–3 ✅ Handles: Outbound async messages, publication dispatch, retry logic
JSL / JSH / JRAD
JOLT Listener & Relay Processes
TCP communication layer between PIA (WebLogic) and the Tuxedo App Server
Critical

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

Each new connection is assigned to a JOLT Station Handler (JSH) which manages that session's lifecycle — multiplexing service requests to the appropriate Tuxedo server processes.

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

⚙️ Instances: 1 JSL / N JSH ✅ Handles: All PIA ↔ App Server TCP communication
WSL / WSH
Workstation Listener & Handler
Two-tier connectivity for Application Designer and admin tools
Admin/Dev

WSL and 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.

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.

In modern environments most user interaction is browser-based. However, PeopleSoft admins and developers regularly use Application Designer in two-tier mode for development, configuration, and patching work.

⚙️ Instances: 1 WSL / N WSH ✅ 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