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
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 ---
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"
The actual statement in the script that does the setting is "priocntl -e -c FX -p 60 -m 60 $sbindir/ndsd"