Error starting the service 'ndsd', Error can not start ndsd, start manually with non root install

  • 7000558
  • 04-Jun-2008
  • 26-Apr-2012

Environment

non-root install of eDirectory 882 on Solaris
Sun Sparc server with Multiple CPU's
Using ndsconfig to configure eDirectory
Using ndsmanage to configure eDirectory

Situation

On a Solaris box with multiple CPU's you may get the following error after attempting a ndsconfig new, or configuring a new instance via ndsmanage. (After you have entered all the configuration info and the next step is to start ndsd).
  • Getting error "error starting the service 'ndsd', Error can not start ndsd, start manually"
  • No information added to the ndsd.log for the instance
  • ndsconfig new will not complete
  • Using ndsmanage to configure an instance will not complete



Resolution

Modify the ndsd script located in the extracted non root install directory at ./eDirectory/etc/init.d/ndsd.

Look for the lines in the ndsd script:

--- Begin Paste ---
StartNdsd () {
# If this is Solaris 9 or Solaris 10 then setup the memory manager
if [ "$SUNOS_VERSION" = "5.9" -o "$SUNOS_VERSION" = "5.10" ]; then
SetupMemManager
priocntl_available=1
else
priocntl_available=0

--- End Paste ---

Modify the line "
priocntl_available=1" and change it to "priocntl_available=0"

Now it should look like this:
--- Begin Paste ---
StartNdsd () {
# If this is Solaris 9 or Solaris 10 then setup the memory manager
if [ "$SUNOS_VERSION" = "5.9" -o "$SUNOS_VERSION" = "5.10" ]; then
SetupMemManager
priocntl_available=0
else
priocntl_available=0
--- End Paste ---



Additional Information

On solaris 5.9 or later with multi-cpus, edirectory uses the Fixed Priority scheduling(882). This will not work on a non-root instance. And needs to set the variable to 0.

The actual statement in the script that does the setting is "priocntl -e -c FX -p 60 -m 60 $sbindir/ndsd"