English

Error: ArcSDE gsrvr startup fails 'gsrvr: error while loading shared libraries'

Error Message

The following error occurs when ArcSDE gsrvr startup fails. In the sde service log, sde_[sde_service_name] log, an error similar to the following is reported:

Code:
/data1/sde/sdeexe90/bin/gsrvr: error while loading shared libraries:
libsdeora10gsrvr93.so: cannot open shared object file: No such file or directory
[Thu Jan 1 00:00:00 2009] [0] [GIOMGR] Error (-1):Couldn't Start Server Task.

Cause

Variable substitution in the path of variables defined in the dbinit.sde file is not permitted.

For example, consider the following dbinit.sde file:

Code:
set SDEHOME=/data1/sde/sdeexe90
set ORACLE_HOME=/data1/oracle/9.2.0
set LD_LIBRARY_PATH=$SDEHOME/lib: $ORACLE_HOME/lib


When the giomgr starts, the variable values are not substituted:

Code:
% sdemon -o info -I vars | grep LD_LIBRARY_PATH
LD_LIBRARY_PATH=$SDEHOME/lib:$ORACLE_HOME/lib


The literal values of '$SDEHOME' and '$ORACLE_HOME' prevent the loader from resolving references to dynamic libraries, causing gsrvr startup to fail and consequently blocking user connections.

Solution or Workaround

When setting up ArcSDE on a UNIX/Linux platform, variables can be set in the dbinit.sde file, but be aware that variable substitution cannot be used.

  • For example, in the dbinit.sde file, the following line is not valid:

    Code:
    set LD_LIBRARY_PATH=$SDEHOME/lib:$ORACLE_HOME/lib


    The full path should be shown as follows:

    Code:
    set LD_LIBRARY_PATH=/data1/sde/sdeexe90/lib:/data1/oracle/9.2.0/lib


  • ArcSDE takes the environment variables from the shell of the user who starts ArcSDE. To this list of environment variables, it adds the variables that are set in the dbinit.sde file. If the variable already exists in the user's shell, ArcSDE uses the information from dbinit.sde instead.
  • On UNIX/Linux platforms, to use variable substitution, it is recommended to set the SDE variables in a shell environment (i.e., .cshrc, .profile, .login, etc.) instead of using the dbinit.sde file.

Related Information