Who has not met this scenario before?
All of a sudden, events which should change a ticket status do not run at the expected time.
Or SDM auto-close does not process at the correct time, or even does not run.
And recycling SDM usually restores the correct functioning (those events start running correctly) for some time, and then the problem happens again after a few days or hours.
This is usually related to the Animator process being overloaded.
What to Check and How to Fix it
When such behavior happens and there is not an error occurring, that is, SDM has been running for some time and no new event was added to SDM or was changed, it is most likely that the Animator process needs a tuning.
- Check if errors similar to the following appear in the stdlog:
"animator_nxd 7832 ERROR callback.c 521 2945 objects registered; exceeds 575% of slump object hash size of 512"
If you are running on Conventional installation, it runs on the Primary server. If running Advanced Availability, it runs on the Background server.
To fix this, check in NX.ENV if variable SLUMP_HASH has animator set.
If yes, it may require an increase in value. If not, it should be added at the end of the line.
E.g.: @NX_SLUMP_HASH=domsrvr(131072) web(65536)... bpvirtdb_srvr(2048) animator(4096)
Important: The same change must be applied to NX.env_nt.TPL so the change is not lost when running pdm_configure.
- Add a dedicated DBAgent to the Animator table
Search for the following in NX.ENV: @NX_VIRTDB_AGENT11=BU_TRANS
Add the following line to it: @NX_VIRTDB_AGENT12=Animator
- The DBAgent number should be set according to the last dbagent number existent in your current configuration.
- Here it also applies to add this setting to NX.env_nt.TPL so the change is not lost when running pdm_configure.
- Add a dedicated domsrvr to the Animator process.
You should evaluate your environment prior to doing it, by verifying if you have enough resources (Memory and CPU) for doing it.
Note that adding a new domsrvr process requires running pdm_configure on the Primary or the Background server.
If all is fine, after adding the new domsrvr process, it is necessary to map it in the pdm_startup file so SDM can recognize that new domsrvr process needs to be used by the Animator process.
For this example, we will consider domsrvr:02 as the name of the new domsrvr process:
- Locate the following two files under NX_ROOT$\Service Desk\pdmconf:
- In both of these files, search for #define ANIMATOR_NXD(_TAG) and edit the command to:
command="$NX_ROOT/bin/animator_nxd -d 'domsrvr:02'"
Now, SDM needs to be recycled so the changes are recognized.
Have all a great week!