PSAE vs PSAESRV
You might not have realized it but there are two ways an Application Engine program can run in PeopleSoft — one is by making use of PSAE and another is by making use of PSAESRV.
Let us have a look at what are the differences between PSAE and PSAESRV as well as what are the best use cases of each of them.
PSAE vs PSAESRV
A PeopleSoft Application Engine program makes use of psae.exe (PSAE) for execuation. psae.exe is located in PS_HOME\bin\client\winx86 location, for example D:\psft\pt\ps_home8.57.06\bin\client\winx86
PSAESRVs are process scheduler server processes, which start when you boot a process scheduler domain. By default, psprcs.cfg starts 3 PSAESRVs. Below is the PSAESRV section from the psprcs.cfg file, wherein default max instances for PSAESRV are specified. The number of PSAESRV instances specified here should match the max concurrency in the server definition for Application Engine programs.
[PSAESRV]
;=========================================================================
; Settings for Application Engine Tuxedo Server
;=========================================================================
;————————————————————————-
; The max instance should reflect the max concurrency set for process type
; defined with a generic process type of Application Engine as defined
; in the Server Definition page in Process Scheduler Manager
Max Instances=3
When you start a process scheduler domain, you can check the status of PSAESRVs.
PSAESRVs are enabled by default in the process scheduler configuration menu. To enable or disable PSAESRV, you need to use option 4 of the Process Scheduler Administration menu in PSADMIN.
In most of the cases, you’re better off disabling PSAESRV from the process scheduler configuration. Let us also consider a few situations, which may help you decide whether you need PSAESRVs enabled or disabled.
1. When you run an application engine program with PSAESRV disabled, the AE will take a a few seconds longer to start (time delay may be range from millisecond to seconds depending on your hardware and software configuration). So, if your application has situations wherein hundreds or application engine programs may get initiated in a short period of time – you should enable PSAESRV.
2. In situations when a process scheduler shuts down, a launched psae processes (corresponding to the running Application Engine processes) will keep running until finish as they are running outside of process scheduler. If you’re using PSAESRV, the process will error out because of process scheduler shutdown.
3. When PSAE runs, it creates a database connection and when the process completes, it disconnects from the database, which also releases resources from the process and the database session. This also helps prevent any possible memory leakage problem that may occupy the precious system memory. PSAESRVs on the other hand continue to accumulate memory over time and release memory upon restart or process scheduler domain or as per the PSAESRV Recycle Count parameter in the psprcs.cfg file.
4. Process Scheduler start or stop takes longer with PSAESRV enabled because it has to start/stop those many PSAESRVs. More the number of max instances of PSAESRVs specified, more time it takes to start/stop a process scheduler domain.
Also refer to this post by David Kurtz on the same topic.
We ceased using PSAESRV because it was not releasing Java resources (files created/opened by Java via PeopleCode) as expected. PSAESRV appears to keep a JVM associated with it all the time, but With PSAE the JVM spawns and dies when with the App Engine, which solved our problem. Also quicker to boot the environment. Downside is losing ability to see which step the App Engine is up to in process monitor.