1. Which versions of saposcol exist for AIX?
There are two types of saposcol on AIX: saposcol based on Spmi librariesand saposcol based on perfstat libraries.
The platform specific coding in the Spmi versions of saposcol is no longer maintained and it is strongly suggested to any customer not to use the saposcol based on Spmi libraries and instead use the perfstat based saposcol. For more information please refer to the Note 526694.
Spmi based saposcol has to be used only in case R/3 system is still
running under AIX 4.3.2 since the perfstat library api is available onlyfrom AIX 4.3.3 onwards.
2. What do I need to take into account when using EXTSHM=ON paramete with saposcol?
The EXTSHM environment variable is allowing a process to attach to more then 11 shared memory segments (if they are created by EXTSHM-enabled processes). The program needs the variable EXTSHM set before it is loaded. If you attempt to set the variable after the program is loaded, it will have no effect.
In other words, if a shared memory segment is to be attached by a process in a manner that allows it to coexist in a 256MB segment with other shared memory regions, then this segment (and the other ones) must have been created with EXTSHM=ON active.
That means, if one wants to put the saposcol shared memory region (with key 0x4dbe) into a segment with other shared memory segments, it must have been created by a 32-bit process with EXTSHM=ON active. This shared memory segment is created by the first started application. It is either R/3 or saposcol. If R/3 system starts up first and meets the requirements (it is 32-bit and has EXTSHM=ON) then it does not matter if later started saposcol is 32- or 64-bit or if it has EXTSHM=ON
because R/3 has already created the shared memory segment properly.
However, typically (by default in the start scripts) saposcol starts up first and creates the shared memory segment. In this case it must be a 32-bit saposcol and have EXTSHM=ON.
To check whether a shared memory segment was created with EXTSHM=ON, you could use kdb:
# ipcs -m| grep 4dbe
m 131082 0x00004dbe --rw-rw-rw- root dba
The second column shows the id, in this case, 131082. Take the corresponding hex value: (hex of 131082 is 2000a)
# echo "ipc 2 2 2000a" | kdb | grep shm_extshm
shm_extshm)8)8 00000001
Unfortunately, you must be the root user for this.
3. Which version of saposcol should be used depending on the R/3 release and AIX version?
Please use the following table to find the correct version:
------------------------------------------------------------------------ R/3 Kernel-Version Library Recommended Saposcol
AIX-Version on SAP Market Place.http://service.sap.com/swdc -> Download ->Support Packages and Patches -> Entry by Application Group
------------------------------------------------------------------------
R/3 KERNEL 3.1I_COM 32-BIT:
4.3.2 Spmi
-> SAP Application Components
-> SAP R/3-> SAP R/3 3.1I
-> R/3 Kernel 3.1I_COM 32-BIT
-> AIX 32bit
-> Database Independent
-> SAPOSCOL
4.3.3 Perfstat -> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D 32-BIT
-> AIX 32bit
-> Database independant
-> SAPOSCOL433 (*1)
5.1 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D_EXT 32-BIT
-> AIX 32bit
-> Database independant
-> SAPOSCOL
5.2/5.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.40
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
SAP KERNEL 4.0B_COM 32-BIT:
4.3.2 Spmi
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.0B
-> SAP KERNEL 4.0B_COM 32-BIT
-> AIX 32bit
-> Database independant
-> SAPOSCOL
4.3.3 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D 32-BIT
-> AIX 32bit
-> Database independant
-> SAPOSCOL433 (*1)
5.1 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D_EXT 32-BIT
-> AIX 32bit
-> Database independant
-> SAPOSCOL
5.2/5.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.40
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
SAP KERNEL 4.0B_COM 64-BIT:
4.3.2 Spmi
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.0B
-> SAP KERNEL 4.0B_COM 64-BIT
-> AIX 64bit
-> Database independant
-> SAPOSCOL
4.3.3 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D 64-BIT
-> AIX 64bit
-> Database independant
-> SAPOSCOL433 (*1)
5.1 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D_EXT 64-BIT
-> AIX 64bit
-> Database independant
-> SAPOSCOL
5.2/5.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.40
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
SAP KERNEL 4.5B 32-BIT:
4.3.2 Spmi
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.5B
-> SAP KERNEL 4.5B 32-BIT
-> AIX 32bit
-> Database independant
-> SAPOSCOL
4.3.3 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D 32-BIT
-> AIX 32bit
-> Database independant
-> SAPOSCOL433 (*1)
5.1 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D_EXT 32-BIT
-> AIX 32bit
-> Database independant
-> SAPOSCOL
5.2/5.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.40
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
SAP KERNEL 4.5B 64-BIT:
4.3.2 Spmi
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.5B
-> SAP KERNEL 4.5B 64-BIT
-> AIX 64bit
-> Database independant
-> SAPOSCOL
4.3.3 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D 64-BIT
-> AIX 64bit
-> Database independant
-> SAPOSCOL433 (*1)
5.1 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D_EXT 64-BIT
-> AIX 64bit
-> Database independant
-> SAPOSCOL
5.2/5.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.40
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
SAP KERNEL 4.6D 32-BIT:
4.3.2 Spmi SAP R/3-> SAP R/3 4.6C
-> Binary Patches
-> SAP KERNEL 4.6D 32-BIT
-> AIX
-> Database independant
-> SAPOSCOL
4.3.3 Perfstat SAP R/3->SAP R/3 4.6C
-> Binary Patches
-> SAP KERNEL 4.6D 32-BIT
-> AIX
-> Database independant
-> SAPOSCOL433 (*1)
5.1 Perfstat SAP R/3-> SAP R/3 4.6C
-> Binary Patches
-> SAP KERNEL 4.6D_EXT 32-BIT
-> AIX
-> Database independant
-> SAPOSCOL
5.2/5.3 Perfstat SAP WEB AS-> SAP WEB AS 6.40
-> Binary Patches
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
SAP KERNEL 4.6D 64-BIT:
4.3.2 Spmi
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> SAP KERNEL 4.6D 64-BIT
-> AIX 64bit
-> Database independant
-> SAPOSCOL
4.3.3 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D 64-BIT
-> AIX 64bit
-> Database independant
-> SAPOSCOL433 (*1)
5.1 Perfstat
-> SAP Application Components
-> SAP R/3-> SAP R/3 4.6C
-> Entry by Component
-> SAP KERNEL 4.6D_EXT 64-BIT
-> AIX 64bit
-> Database independant
-> SAPOSCOL
5.2/5.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.40
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
SAP KERNEL 6.20 32-BIT:
5.1 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.20
-> SAP KERNEL 6.20 32-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
5.2/5.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.40
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
SAP KERNEL 6.20 64-BIT:
4.3.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.20
-> SAP KERNEL 6.20 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
5.1 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.20
-> SAP KERNEL 6.20 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
5.2/5.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.40
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
SAP KERNEL 6.40 64-BIT:
5.2/5.3 Perfstat
-> SAP NetWeaver
-> SAP NetWeaver components (< SAP NW 04)
-> SAP WEB AS-> SAP WEB AS 6.40
-> SAP KERNEL 6.40 64-BIT
-> AIX_64
-> Database independant
-> SAPOSCOL
*1 - Note the 433 extention in the name of corresponding *CAR file (e.g. SAPOSCOL433_69-10000759.CAR)
4. Which version of saposcol should be used when two different R/3
systems are running on the same host?
Example 1. Two R/3 systems reside on a single AIX 4.3.3 server:
First R/3 system: 4.5B 32-bit WITH "EXTSHM=ON"
Second R/3 system: 4.6D 64-bit
In this case a 32-bit saposcol maus be taken. It is recommended to
take the saposcol from the location listed for SAP KERNEL 4.5B 32-BIT
and AIX 4.3.3.
Example 2. Two R/3 systems reside on a single AIX 5.1/5.2 server:
First R/3 system: 4.5B 32-bit WITHOUT "EXTSHM=ON"
Second R/3 system: 4.6D 64-bit
In this case a 32- or 64-bit sapsocol built for AIX 5.1 should be
used. It is recommended to take the saposcol from the location listed
for SAP KERNEL 4.6D 64-BIT and AIX 5.1/5.2
5. How can I identify the problems with the saposcol on AIX?
Before starting problem analysis with the saposcol, the procedure on how
the performance data are delivered into R/3 and the components that participate in it should be taken into account.
First, the performance data are delivered by the saposcol into shared
memory (saposcol is running on the operating system level independantly
on the R/3 system). Then the R/3 system accesses the corresponding
shared memory region and takes the data from it.
To identify the problem, all these parts should be checked one by one
(shared memory, saposcol process, R/3). The following questions should
be answered:
1. Can you see the data in the ST06 transaction?
If you can not see the data in the transaction ST06 it means that they
either do not exist in the shared memory or R/3 system can not access
the corresponding part of shared memory.
2. Is shared memory for saposcol created correctly?
To check it please start the command:
# ipcs -ma | grep 4dbe
you should see the entry similar to the following:
# m 257 0x4dbe rw-rw-rw- root sapsys root sapsys 1
263864 2490 5991 10:29:29 10:29:29 16:21:32
3. Is the saposcol process running on the operating system level?
To check it please start the command:
# ps -ef | grep saposcol
you should see the entry similar to the following:
#root 2491 1 0 Feb 19 ? 42:35 /usr/sap/SID/SYS/exe/run/saposcol
4. Is the correct version of saposcol used?
To check the version please start the command:
# saposcol -v
You could see the entries like:
Saposcol Version: COLL 20.79 03/08/22 46D - AIX Spmi v3.62 32bit 020221
That is 4.6D 32-bit saposcol based on Spmi libraries
or
Saposcol Version: COLL 20.78 03/05/20 46D - AIX v4.11 5L-64 bit 030521
That is 4.6D 64-bit saposcol based on perfstat libraries and built for
AIX 5.1/5.2
Please compare the results with the table from Q3.
5. Are the permissions for sapsocol correct?
Please refer to the Note 548699 for the detailed instructions.
6. Does the saposcol deliver the data to the shared memory?
For that please start the command on the operating system level:
# saposcol -ma
You should see the data on disks, memory, CPU, etc. like e.g:
[...]
------------------------- CPU --------------------------------------
cpus: 2
usr: 2% sys: 3% idle: 95% = 0% (true idle) + 0% (io-wait)
ldavg1: 0.00 ldavg5: 1.33 ldavg15: 1.46
int/s: 617 sysc/s: 1004 cs/s: 208
[...]
7. Are the any errors in the dev_w* trace files regarding the shared memory access?
In case R/3 has the problem with accessing the saposcol shared memory
key you would normally see the error:
"Saposcol not runnig? shared memory not available". In this case please check the dev_w* trace files for corresponding error message. This problem normally occurs with 32-bit R/3 system and incorrectly implemented EXTSHM=ON solution. Please check the Notes 95454, 174882 for the detailed instructions.