Fix (APAR): PQ78479 Status: Fix Release: 5.0.2 Operating System: Linux PPC,Linux Intel,Linux 390 Supersedes Fixes: PQ76804 CMVC Defect: PQ78479 Byte size of APAR: 45922 Date: 2003-09-19 Abstract: Process ID (PID) varies in admin console runtime view and when requested through scripting Description/symptom of problem: The issue seen is that the process ID for servers (on the runtime) panel will generally vary with each refresh. The same issue can be seen through wsadmin scripting, when a server mbean is looked up and the PID is requested. The problem stems from the most common way Linux implements threading (the LinuxThreads model)in glibc. Basically, Linux uses the same kernel constructs for both threads and processes (fork() and pthread_create() are both implemented ontop of the kernel call clone(). The only difference is in the flags that get passed to indicate resource sharing). This causes some unusual side-effects, such as each Linux Thread also gets assigned a unique PID. This causes confusion and problems with many standard UNIX style system calls, such as getpid(), waitpid(), and so on. The problem seen is caused by getpid() always returning the PID of the thread, not the main process ID (The thread running the main() of the program). A solution to identifying the main PID, regardless of which thread does the look has been implemented into the JNI process management code to correct the PID returns. With this fix, the PID will always be the main one, and will be consistant. Directions to apply fix: NOTE: YOU MUST FIRST DOWNLOAD THE UPDATE INSTALLER TOOL IN ORDER TO INSTALL A FIX. The Fix Installer can be downloaded from the following link: http://www-3.ibm.com/software/webservers/appserv/support/index.html 1) Create temporary "fix" directory to store the jar file: UNIX: /tmp/WebSphere/fix Windows: c:\temp\WebSphere\fix 2) unzip the PQ78479.zip zipfile. It has three jars in it, one specific to each of the Linux architectures suppored. Please pick the one appropriate for your system and copy the jar file to the directory. 3) Shutdown WebSphere 4) Follow the Fix installation instructions that are packaged with the Fix Installer on how to install the Fix. If you selected the wrong version (wrong jar), the e-fix installer will refuse to install it. Simply correct it by copying the right one into the directory and removing the invalid one, then attempt the install again. 5) Restart WebSphere 6) The temp directory may be removed. Directions to remove fix: NOTE: FIXES MUST BE REMOVED IN THE ORDER THEY WERE APPLIED. DO NOT REMOVE A FIX UNLESS ALL FIXES APPLIED AFTER IT HAVE FIRST BEEN REMOVED. YOU MAY REAPPLY ANY REMOVED FIX. Example: If your system has fix1, fix2, and fix3 applied in that order and fix2 is to be removed, fix3 must be removed first, fix2 removed, and fix3 re-applied. 1) Shutdown WebSphere 2) Follow the instructions that are packaged with the Fix Installer on how to uninstall the Fix. 3) Restart WebSphere Directions to re-apply fix: 1) Shutdown WebSphere 2) Follow the Fix installation instructions that are packaged with the Fix Installer on how to install the Fix. If you selected the wrong version (wrong jar), the e-fix installer will refuse to install it. Simply correct it by copying the right one into the directory and removing the invalid one, then attempt the install again. 3) Restart WebSphere Additional Information: PQ78479.zip contains: PQ78479_linuxi386.jar, PQ78479_linux390.jar, and PQ78479_linuxPPC.jar. PQ78479_linuxi386.jar is for x86 based systems, such as an xSeries box. PQ78479_linuxPPC.jar is for PowerPC based systems, such as iSeries and pSeries PQ78479_linux390.jar is for 390 and zSeries hardware. This fix can be installed on-top of any of the releases from 5.0.0 up to 5.0.2.