Policy Server : CPU Spike : CleanServerCmds Error

Document ID : KB000052760
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

SiteMinder Policy Server is consuming high CPU and I have to restart the service in order to solve the CPU spike.
I noticed at that time in the Policy Server logs :
[5279/46][Wed Jan 06 2010 08:44:04][SmPolicyServer.cpp:1095][ERROR] Exception in JournalThread. Text: Policy store failed operation 'CleanServerCmds' for object type 'Policy store provider'. LDAP Error Doing ServerCommand_Search: 85: Timed out
How can I solve this?

Solution:

The problem you face is that the Policy Server reaches timeout by searching object in class:

smservercommand4

because there are too much of such objects.

Running that command will give you the amount of stored objects:

ldapsearch ?D "cn=Directory Manager" ?w <password> -h <policystorehost> -p <port> \
-b ou=PolicySvr4,ou=siteminder,ou=netegrity,o=netegrity \
objectclass=smservercommand4 | grep dn: | wc -l

Then, running that command will give you the list of all of the DNs of every Management Command object:

ldapsearch -D "cn=Directory Manager" -w <password> -h <host> -p <port> \
-b ou=PolicySvr4,ou=siteminder,ou=netegrity,o=netegrity \
objectclass=smservercommand4 smServerCommandOID4 \
| awk '/^smServerCommandOID4/ { print \
"smServerCommandOID4="$2",ou=PolicySvr4,ou=siteminder,ou=netegrity,o=netegrity" }'

Then, you will need to delete these with the following procedure:

  1. Stop all of the Policy Servers except one;

  2. Execute the delete command (on unix, by piping the above list command into "ldapdelete"; on windows, capture the list of DN's into a text file first);

  3. Restart the one Policy Server;

  4. Start all the remaining Policy Servers.