Inter Process Communication with Unix Operating System - How Peoplesoft Uses them?
First of all, I am going to tell you something about IPC System on Unix Operating System and how it is related managing a Peoplesoft based environment.
I took this topic first since PeopleSoft uses this for the application server and Process Scheduler server level; we need to know IPC System to understand how these PeopleSoft server processes work. We normally face issues related to this during our real-time supporting a Peoplesoft environment. A process, in Unix perspective, is a running program, created by the fork() system call. That’s all.
We can say, processes are created by ‘forking’. Forking means a new process is getting created. Obviously it also means we have a parent process to create a child process. So, there exists a process, a running program in Unix system, which creates a sub-process. These two are parent and child processes.
I am trying to explain the Unix IPC System with relate to Peoplesoft server components.
Peoplesoft Application Server has many processes. You will be knowing almost all of them, for example:
BBL, PSAPPSRV, PSSAMSRV, PSQRYSRV, PSQCKSRV, JSL, WSL, Integration Broker server processes etc.
Peoplesoft Application Server is said to be the core of Peoplesoft Internet Architecture (PIA). It has two components; Peoplesoft services and Peoplesoft server processes.
The Peoplesoft server processes needs to communicate among themselves using IPC System on the Unix Operating System.
That’s why, understanding IPC System in Unix, is one of the important items to be familiar with. Basically, Unix processes communicate using socket. Some of the important IPC Sockets are (We are talking about System V IPC here):
Named Pipes etc
Whenever booting Peoplesoft Server processes, if it complains that already “Server Exists”, most likely, there are some IPC resources not cleanly closed. In that case, it is better to lost down all the “ipcs”, and then using these Peoplesoft Shell scripts.
Peoplesoft provides a shell script for handling IPC in Unix Operating System.
The script is called “ipcrmall.sh”. This script needs to be run as below:
./ipcrmall.sh psoft psoftgrp
Here ‘psoft’ is user account that peoplesoft runs. ‘psoftgrp’ is group name.
Here I assume the following: You have only ONE Peoplesoft domain running using “psoft” account. For multiple domains running on the same user account (which is not a good practice!), you need to follow different approach for multiple domains (I will tell you later about this!) After we run this command, there is a new shell script getting created “killipc.sh”,you need ro run this script to remove the IPC that peoplesoft uses.
If you open “ipcrmall.sh” shell script, you can very easily understand, following three commands are useful:
“ipcs -m” – Lists all the Shared Memory in the System
“ipcs -s” – Lists all the Semaphores in the System
“ipcs -q” – Lists all the Message Queues in the System
Tuxedo uses these three IPC mechanisms for inter-process communication.