Is Oracle's PeopleSoft Really a Multi-Threaded Application?

Perhaps the answer to this question is irrelevant to many of the PeopleSoft end users - but I assume it is important for the administrators to know what kind of application they are dealing with.

Here is a snapshot of the process statistics (prstat output) for the PeopleSoft application server processes running on a Solaris 10 system:

   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP      
 10864 psft      353M  235M sleep   60   10   0:13:42 1.5% PSAPPSRV/11
 10855 psft      353M  235M sleep    2   10   0:13:55 1.5% PSAPPSRV/11
 10846 psft      353M  235M sleep    3   10   0:14:04 1.5% PSAPPSRV/11
 10870 psft      353M  235M sleep    0   10   0:13:50 1.5% PSAPPSRV/11
 10873 psft      353M  235M sleep    1   10   0:13:57 1.4% PSAPPSRV/11
 10852 psft      353M  235M sleep    0   10   0:13:57 1.4% PSAPPSRV/11
 10858 psft      353M  235M sleep   60   10   0:13:47 1.3% PSAPPSRV/11
 10849 psft      349M  231M cpu0    20   10   0:13:55 1.3% PSAPPSRV/11
 10867 psft      353M  235M sleep   60   10   0:13:53 1.3% PSAPPSRV/11
 10861 psft      349M  231M sleep   60   10   0:13:56 1.2% PSAPPSRV/11

Notice the number of LWPs (represented by NLWP in the snapshot) that are associated with each of those PSAPPSRV processes. Just by looking at the above snapshot, one may under the impression that the PSAPPSRV (PeopleSoft Application Server process) is a multi-threaded process because it appears that there are 11 worker threads actively processing the user requests.

To dig a little deeper, prstat utility on Solaris provides the ability to check the statistics for each of the light-weight processes (LWPs) that are associated with a process (here I'm assuming that the intended audience can differentiate a process from a light-weight process). With the help of -L option of the prstat, Solaris reports the statistics for each LWP that is associated with a given process. Let's have a close look at those stats.

  PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/LWPID
10864 psft      353M  235M cpu32    0   10   0:01:37 1.5% PSAPPSRV/1
10864 psft      353M  235M sleep   59    0   0:00:00 0.0% PSAPPSRV/11
10864 psft      353M  235M sleep   29   10   0:00:00 0.0% PSAPPSRV/10
10864 psft      353M  235M sleep   28   10   0:00:00 0.0% PSAPPSRV/9
10864 psft      353M  235M sleep   28   10   0:00:00 0.0% PSAPPSRV/8
10864 psft      353M  235M sleep   59    0   0:00:00 0.0% PSAPPSRV/7
10864 psft      353M  235M sleep   59    0   0:00:00 0.0% PSAPPSRV/6
10864 psft      353M  235M sleep   51    2   0:00:00 0.0% PSAPPSRV/5
10864 psft      353M  235M sleep   59    0   0:00:00 0.0% PSAPPSRV/4
10864 psft      353M  235M sleep   29   10   0:00:00 0.0% PSAPPSRV/3
10864 psft      353M  235M sleep   59    0   0:00:00 0.0% PSAPPSRV/2

Notice all the PIDs in the first column. That's right - it is the same pid, 10864, across different lines. It confirms that the above snapshot is the process stats breakdown by LWPs for a given process. Now check the output under the TIME column. That column represents the cumulative execution time for the process -- LWP, in this case. Except for the LWP #1, the exec time for rest of the LWPs is zero i.e., even though the PSAPPSRV process spawned 10 more LWPs, in reality, they are not doing any work at all. When I tried to find the reason {from my counterpart at Oracle Corporation} for the creation of multiple LWPs, I was told that the multiple LWPs are a side effect of loading JRE(s) into the process address space during the run-time. Also it appears that the PeopleSoft application server processes (PSAPPSRV) can process only one user request (transaction) at a time. It is the limitation of the PeopleSoft Enterprise by design.

So the bottomline is: PeopleSoft application server processes (PSAPPSRV) are not multi-threaded even though they appear to be multi-threaded from the operating system perspective.

Before we conclude, be aware that the discussion in this blog post applies only to the PeopleSoft application server processes, PSAPPSRV. You cannot generalize it to the whole PeopleSoft Enterprise. For example, application engine processes (PSAESRV) that run under the control of the Process Scheduler are actually multi-threaded processes. However expanding the discussion around Process Scheduler/Application Engine is beyond the scope of this blog post.

Acknowledgements:
Sanjay Goyal

(Originally posted on blogger at:
http://technopark02.blogspot.com/2008/03/is-peoplesoft-really-multi-threaded.html)
Comments:

Thanks a lot for this blog...helped me solve a critical issue!!

Posted by seo on March 09, 2009 at 04:37 AM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Benchmark announcements, HOW-TOs, Tips and Troubleshooting

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today