Process Model – Oracle iPlanet Webserver

Each instance of Oracle iPlanet Webserver (previously called as Sun ONE Webserver involves multiple processes. Process at each level provides limited level of High-Availability of subprocesses.

The startup & shutdown sequence for iplanet webserver is as shown in the below figure.

 

The watchdog process spawns the primordial process, which in turn spawns one or more worker processes. The worker process listens for HTTP requests and process the user requests.

If the worker process(es) crashes or terminates abnormally, the primordial process is responsible for restarting another worker process. If the primordial process itself terminates abnormally, then the watchdog restarts another primordial process.

On UNIX platforms, a Web Server instance has exactly one watchdog process, one primordial process, and one or more worker processes.

On Windows platforms, each instance has exactly one watchdog process and one worker process. There is no separate primordial process on Windows and each instance cannot start more than one worker process.

The primordial and worker processes are both named webservd. The name of the watchdog process is webservd-wdog.

The following illustration provides the good understanding of Process handling of each iplanet instance.

Linux Environment 

1. Start Admin Server & test instance. We can see the total of 6 processes for the admin & test instance, each creating 3 processes.  

 
2. watchdog process id for test instance is 3230. Kill watchdog process using “kill -9 3230”. 


Server instance doesn’t create any new watchdog process. test server works with the watchdog process.Watchdog process is not created as shown in the process hierarchy and the process list.

 
3.Primordial process id is 3231. Kill the Primordial process using “kill -9 3231”. Process Hierarchy is as shown below.

When the Primordial process is terminated, no new primordial process is created, since the watchdog process doesn’t exists. Even worker process also gets terminated.

4. Since all the processes related to the test instance is terminated, the test instance isnt running. So, start the test instance. We can again see 6 processes created for admin & test servers.

5. Kill the Primordial process using the “kill – 9 3516” command. Since watchdog process is active and running, it keeps track of primordial process. Primordial process with process id 3637 is created.  Even new worker process(id is 3638) is created. 
 

6. Kill the worker process using the “kill-9 3638” command. New worker process(with id 3739) is created. 

 Summary
As clearly illustrated with the possible scenarios, we can summarize as:
           Watchdog process keeps an eye on the primordial process.
            Primordial process keeps track of the worker process.

 

Windows Environment

We see only 2 process for each instance in case of Windows as shown below. There is no Primordial process. We have watchdog and worker processes for test instance and the Admin server.

When the worker process(id is 4392) is terminated, watchdog process creates new worker process (id is 4872).