Solucionar problemas de un servicio de ArcSDE
La mayoría de los problemas asociados con el inicio del servicio de ArcSDE ocurren debido a un problema con el entorno del sistema. Con frecuencia, faltó realizar un paso fundamental durante la instalación o configuración del software.
Las sugerencias para la solución de problemas en este tema hacen referencia a varios comandos de administración diferentes. Consulte la Referencia de comandos de administración que se instala con el servidor de aplicación de ArcSDE para obtener detalles sobre cómo utilizar estos comandos.
Identificar los problemas
-
Visor de eventos de Windows
Para instalaciones en un sistema operativo Windows, puede utilizar el Visor de eventos de Windows para buscar posibles problemas. El Visor de eventos de Windows proporciona la información de diagnóstico que también puede ayudar a explicar los problemas de inicio de ArcSDE. Para utilizar el Visor de eventos de Windows
- Abra el Panel de control.
- En el menú del Panel de control, haga doble clic en Herramientas administrativas.
- En el menú de Herramientas administrativas, haga clic en Servicios de componentes.
- En el menú de Servicios de componentes, expanda la carpeta Visor de eventos y seleccione la opción Aplicación.
- Busque un icono de señal de stop en rojo en la columna Tipo y el nombre correspondiente del servicio de ArcSDE en la columna Origen. Haga doble clic en la entrada del servicio de ArcSDE para que aparezca la ventana Detalle del evento.
- La ventana Detalle del evento incluye una descripción del problema.
-
Archivos de registro de errores
ArcSDE y todos los sistemas de administración de bases de datos (DBMS) compatibles rastrean las actividades al escribir mensajes de eventos en los archivos de registro ASCII. Los archivos de registro se pueden examinar para hacer un seguimiento de los errores que han ocurrido. ArcSDE escribe en dos archivos de registro: el giomgr_<servicio>.log y el sde_<servicio>.log. (Si está utilizando una conexión directa, la aplicación escribe mensajes de error en sdedc_<dbms>.log en lugar del archivo sde_<servicio>.log del servidor de aplicaciones).
- El archivo giomgr_<servicio>.log
El archivo giomgr_<servicio>.log es un archivo ASCII que contiene una entrada para todas las actividades del proceso giomgr. (<servicio> es el nombre del servicio de ArcSDE). Cada vez que un usuario se conecta o intenta conectarse al servicio de ArcSDE, se registra un mensaje. Cuando el usuario se desconecta, se registra otro mensaje. El archivo giomgr_<servicio>.log también captura los procedimientos de inicio y apagado del servicio de ArcSDE. Sin embargo, este archivo no contiene mensajes de error específicos; simplemente muestra la actividad del proceso giomgr.
- El archivo sde_<servicio>.log
Siempre que un proceso gsrvr detecta un problema, el servicio de ArcSDE registra una entrada en el archivo sde_<servicio>.log. En algunos casos, los mensajes son advertencias; y otras veces señalan errores del servicio de ArcSDE que deben tratarse. Cuando examine el archivo sde_<servicio>.log, tenga en cuenta que, cuando ocurran errores en el proceso del servicio de ArcSDE, los mensajes se escribirán en este archivo. En algunos casos, una aplicación de ArcSDE informa sobre un problema relacionado con ArcSDE, pero este evento no aparece en el archivo sde_<servicio>.log. Esto se debe a que el error le ha ocurrido al cliente de ArcSDE y no al servidor. A partir de la versión 9.3, el archivo sde_<servicio>.log también almacena información cuando se envía una solicitud de conexión mal formulada. Esto puede indicar que alguien está intentando entrar ilegalmente en el servidor. La entrada puede parecerse a la siguiente:
[Mon Mar 05 09:35:14 2007] [0] [GIOMGR] Invalid connection request length of -2147477504 from [10.47.6.5:32923] [Mon Mar 05 09:35:14 2007] [0] [GIOMGR] Could Not Get XDR Request.
Observe que la entrada de registro muestra la dirección IP que realiza la solicitud de conexión. En el mensaje, se devolvió "No se puede obtener la solicitud XDR" porque el giomgr no pudo aceptar o interpretar la solicitud de conexión debido a que la longitud no era válida. El archivo sde_<servicio>.log se trunca cada vez que el servicio de ArcSDE se detiene y vuelve a iniciarse.
- Archivos de registro de errores del DBMS
Cada DBMS tiene su propia forma de registrar errores. Consulte la guía de administración de DBMS correspondiente para determinar cómo su DBMS registra los errores.
- El archivo giomgr_<servicio>.log
Solucionar problemas en el servicio de ArcSDE en servidores UNIX
Problemas de variable de ruta del sistema
Si las variables de ruta del sistema no están configuradas correctamente o no están configuradas, puede obtener los siguientes errores. Revise cómo establecer las variables de ruta para su DBMS en la Guía de instalación del servidor de aplicación ArcSDE específica.
- Si la variable de entorno PATH no incluye el directorio $SDEHOME/bin, se informa el siguiente mensaje de error:
sdemon: Command not found
- Si la variable de entorno de ruta de biblioteca no incluye el directorio $SDEHOME/lib, se informa el siguiente mensaje de error:
ld.so.1: sdemon: fatal: libsde90.so: open failed: No such file or directory Killed
- Si el entorno de ruta de biblioteca no incluye el directorio necesario de biblioteca de DBMS, se informa un mensaje de error similar al siguiente:
ld.so.1: /ultra1/ora10gexe/bin/giomgr: fatal: libclntsh.so\: open failed: No such file or directory Killed Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings and dbinit.sde.
Problemas con el permiso de archivo temporal
Si existe algún archivo temporal de ArcSDE y no es propiedad del administrador de ArcSDE, se devuelve el siguiente mensaje de error:
ERROR: Cannot Initialize Shared Memory (-79) Delete /tmp/<service name> and /tmp<service name>.lock if present. Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings and dbinit.sde.
Para corregirlo, elimine los archivos temporales /tmp/<nombre de servicio> y /tmp/<nombre de servicio>.lock. Por ejemplo, si el nombre del servicio es esri_sde, debe eliminar los archivos /tmp/esri_sde y /tmp/esri_sde.lock. Es posible que deba iniciar sesión como usuario raíz para eliminar estos archivos.
Se han eliminado los archivos de /tmp
Si después de que se inicia el servicio de ArcSDE los archivos almacenados en el directorio /tmp se eliminan, el servicio de ArcSDE no funcionará cuando un usuario se conecte o se desconecte. El servicio depende de los archivos de protocolo de socket de UNIX que se crean en el directorio /tmp. Como regla, no debe eliminar los archivos en el directorio /tmp. Sin embargo, si debe eliminarlos, no debe cerrar el servicio de ArcSDE después de hacerlo. Consulte Detener un servicio de ArcSDE local en Linux o UNIX, Detener un servicio de ArcSDE local en Windows o Detener un servicio de ArcSDE remoto para obtener instrucciones sobre cómo hacerlo.
Problemas relacionados con el DBMS
- Si el DBMS no se inició, recibirá un mensaje de error similar al siguiente:
init_DB DB_instance_open_as_dba: -51 DBMS error code: 1034 ORA-01034: ORACLE not available Could not start ArcSDE - Check Network, $SDEHOME disk, DBMS settings, and dbinit.sde.
Asegúrese de que la instancia de la base de datos se haya iniciado e inténtelo nuevamente.
- Si la contraseña de administrador del servicio ArcSDE no es correcta, recibirá un mensaje de error similar al siguiente:
init_DB DB_instance_open_as_dba: -93 DBMS error code: 1017 ORA-01017: invalid username/password; login denied Could not start ArcSDE – Check Network, $SDEHOME disk, DBMS settings, and dbinit.sde.
Vuelva a emitir el comando utilizando la contraseña correcta. Si olvidó la contraseña, debe ponerse en contacto con el administrador de base de datos para restablecerla.
- Si el administrador del servicio de ArcSDE no existe, recibirá un mensaje de error similar al siguiente:
init_DB DB_instance_open_as_dba: -93 DBMS error code: 1017 ORA-01017: invalid username/password; login denied Could not start ArcSDE – Check Network, $SDEHOME disk, DBMS settings, and dbinit.sde.
Con la mayoría de los DBMS admitidos ArcSDE requiere que haya presente un administrador del servicio de ArcSDE en la base de datos. Si no es así, usted o el administrador de base de datos debe crear uno.
El error SE_OUT_OF_MUTEXES (-109) en un servidor Solaris
El sistema operativo Solaris utiliza archivos para implementar los semáforos compartidos POSIX que utiliza ArcSDE. Si estos archivos se apartan después de un error del sistema operativo o un corte de suministro eléctrico, a veces pueden causar problemas. La ubicación de estos archivos está controlada por el sistema operativo Solaris. Los puede encontrar en el directorio /tmp o /var/tmp como se muestra a continuación:
/tmp/.SEMD/ SDE_9.0_<instance>_iomgr_shared_semaphore /tmp/.SEML/ SDE_9.0_<instance>_iomgr_shared_semaphore
o bien,
/var/tmp/.SEMD/ SDE_9.0_<instance>_iomgr_shared_semaphore /var/tmp/.SEML/ SDE_9.0_<instance>_iomgr_shared_semaphore
Después de un error del sistema operativo, si no puede iniciar el servicio de ArcSDE y recibe un error -109, probablemente se debe a que existen los dos archivos de semáforo compartidos. Si encuentra alguno de estos archivos en la ubicación /tmp o /var/tmp, elimínelo e intente iniciar el servicio de ArcSDE nuevamente.
Solucionar problemas en el servicio de ArcSDE en servidores Windows
A continuación se presentan los errores que generalmente se detectan cuando se inicia un servicio de ArcSDE en Windows. La lista incluye los números de error, según corresponda, y las causas probables.
997 Error al iniciar el servicio esri_sde
Este error puede ocurrir con un instalación o configuración del servidor de la aplicación ArcSDE incorrecta o incompleta:
"ESRI_sde service failed during initialization. Please check event log or error log files. Error starting ESRI_sde service(997) Could not start ArcSDE — Check Network, $SDEHOME disk, DBMS settings"
Solución
- Confirme que está introduciendo la contraseña correcta del usuario administrador del servicio ArcSDE. Si se utiliza una contraseña incorrecta, verá un error -93 en el sde.errlog.
- Quite por completo el servicio de ArcSDE actual y cree un nuevo servicio.
- Elimine el servicio mediante sdeservice –o delete.
- Verifique el registro para buscar claves de servicio huérfanas. Busque en los siguientes directorios y elimine la clave o carpeta [esri_sde] si existe:
HKEY_LOCAL_MACHINE > SOFTWARE > Esri > ArcInfo > ArcSDE > ArcSDE for [DBMS] > [service_name]
HKEY_LOCAL_MACHINE > SYSTEM > ControlSet001 > Services > [service_name]
HKEY_LOCAL_MACHINE > SYSTEM > ControlSet002 > Services > [service_name]
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > [service_name]
- Debe reiniciar el equipo del servidor para que los cambios al registro tengan efecto.
- Escriba set en un símbolo del sistema y verifique que %SDEHOME%\bin sea la primera entrada en la variable de entorno PATH (PATH=%SDEHOME%\bin;...).
- Verifique que el nombre del servicio de ArcSDE y el número de puerto en el archivo %SDEHOME%\etc\services.sde coincidan con la entrada en el archivo C:\WINNT o WINDOWS\system32\drivers\etc\services.
- Navegue hacia el directorio %SDEHOME%\bin y vuelva a crear sdeservice mediante sdeservice –o create.
- Ejecute sdeservice –o list y verifique que el nombre del servicio y la ruta SDEHOME sean correctos.
Si hay dos barras invertidas (\\) en la ruta SDEHOME o una barra invertida (\) al final de la ruta, quítela manualmente.
- En el símbolo del sistema, reinicie el servicio de ArcSDE mediante sdemon –o start o net start <nombre_servicio>.
1068 Error de dependencia
No se puede encontrar el DBMS al que intenta conectarse el servicio de ArcSDE. Las causas más probables de este problema son
- El servicio de DBMS no se ha iniciado.
- Se ha quitado el servidor de DBMS.
- Es incorrecta la información de conexión del DBMS que se introdujo cuando se creó el servicio de ArcSDE.
Asegúrese de que el servidor de DBMS exista y el servicio esté iniciado, y verifique la información de conexión del DBMS para corroborar que es correcta. Si el error persiste, utilice el comando sdeservice para eliminar el servicio de ArcSDE existente y volver a crearlo.
1069 Error de inicio de sesión
Generalmente este error implica que el usuario de Windows que inició el servicio de ArcSDE no es un administrador de Windows o un usuario avanzado de Windows. Otra posibilidad es una contraseña incorrecta.
Si no se utiliza la cuenta del administrador del sistema para iniciar el servicio, asegúrese de que la cuenta de usuario pertenece al administrador o al grupo de usuarios avanzados.
1072 Registro ocupado
Algo ocurre en el registro relacionado con la entrada de servicio de ArcSDE. Es posible que se haya ejecutado el sdeservice con la operación de eliminar, o que el servicio se haya abierto con el editor del registro. Como alternativa, puede haber un problema con el proveedor de base de datos de Vinculación e incrustación de objetos (OLE DB).
1075 Se eliminó la dependencia del servicio
El servicio de ArcSDE no puede encontrar el servicio de DBMS al que debe conectarse. Asegúrese de que el servicio de DBMS existe y se inició. Si el problema persiste, utilice el comando sdeservice para eliminar y volver a crear el servicio de ArcSDE.
2140 Error interno de Windows
El servicio de ArcSDE no pudo completar el proceso de inicio. Examine el archivo de registro de errores sde (%SDEHOME%\etc\sde_<instancia_sde>.log) para obtener posibles pistas de por qué el servicio de ArcSDE no se inicia.
Posibles causas y soluciones
- No hay una entrada para la instancia en el archivo de servicios del sistema. Busque en el archivo de servicios del sistema una entrada que corresponda a la instancia ArcSDE que intenta iniciar.
- No coinciden las entradas en el archivo de servicios del sistema y el archivo de servicios de ArcSDE. Verifique que la entrada en el archivo de servicios del sistema sea la misma que la entrada en el archivo %SDEHOME%\etc\services.
- Es posible que no se pueda leer la última línea del archivo de servicios del sistema si no termina con un carácter de final de línea. Si la entrada se encuentra en la última línea del archivo de servicios del sistema, verifique que la línea termine con un carácter de retorno de carro.
- El componente TCP/IP puede estar dañado. Reinstale el componente TCP/IP. Consulte la documentación de Windows o el sitio de soporte de Microsoft para obtener detalles sobre cómo hacerlo.
- La contraseña del administrador del servicio ArcSDE se introdujo incorrectamente. Si es así, utilice sdeservice –o modify –r SDE_DBA_PASSWORD para corregirla.
- Intenta conectarse a la geodatabase con un servicio de ArcSDE mediante un usuario autenticado de Windows, pero el usuario autenticado de Windows no tiene permiso para acceder a la carpeta que contiene el archivo gsrvr.exe en el servidor de ArcSDE. Un usuario que es administrador de Windows en el servidor de ArcSDE debe otorgar permisos READ y EXECUTE en la carpeta %SDEHOME%\<dbms>exe al inicio de sesión de Windows que intenta realizar la conexión.
Error al inicializar gsrvr.exe - DLL o Error de la aplicación gsrvr.exe -: No se puede iniciar la aplicación correctamente
En Windows, el servicio de ArcSDE se inicia como un escritorio no interactivo. La cantidad máxima de memoria de almacenamiento dinámico asignada a los escritorios no interactivos está limitada por un parámetro de inicialización de Windows denominado SharedSection. Si recibe este mensaje de error, es posible que deba cambiar el parámetro SharedSection.
El parámetro CONNECTIONS de la tabla SERVER_CONFIG (sde_server_config en SQL Server y PostgreSQL) también restringe el número de conexiones simultáneas que se pueden hacer a la geodatabase y es probable que deba aumentarlo.
- Memoria de almacenamiento dinámico
La cantidad máxima de memoria de almacenamiento dinámico disponible para todos los escritorios, interactivos y no interactivos, es de 48 megabytes. Como la cantidad de memoria es finita, debe tener cuidado cuando ajusta el parámetro SharedSection. Si el servicio de ArcSDE se inicia como una cuenta de dominio, el gsrvr.exe asigna desde el escritorio un almacenamiento dinámico de escritorio no interactivo de 512 KB, que se creó para el servicio de ArcSDE. Si el servicio de ArcSDE se inicia como cuenta LocalSystem, el gsrvr.exe asigna desde el escritorio compartido un almacenamiento dinámico de escritorio no interactivo de 512 KB, que pertenece a todos los servicios que se ejecutan como LocalSystem. Si el servicio de ArcSDE se inicia como la cuenta LocalSystem con el servicio Permitir para interactuar con el escritorio habilitado, gsrvr.exe asigna desde el escritorio predeterminado un almacenamiento dinámico de escritorio interactivo de 3 MB.
Nombre muestra el nombre del sistema de coordenadas. La solución depende de la plataforma de ArcSDE. Actualmente no existe ningún método para determinar cuánta memoria está en uso en un único escritorio o cuánta queda en el grupo global. Utilice oh.exe, una herramienta del kit de recursos de Windows para controlar cuántos escritorios están en uso.
- Cambie el parámetro SharedSection en el registro.
Calcule la cantidad de gsrvrs necesarios. Para los clientes como ArcGIS for Desktop Basic, ArcGIS for Desktop Standard y ArcExplorer, un gsrvr generalmente es una conexión de ArcSDE simple. Para ArcIMS, la cantidad de gsrvrs depende del tipo de servicio. Suponiendo que existen dos subprocesos del servidor virtual por CPU del equipo del servidor espacial, siga esta fórmula general:
(2 image service threads * total CPUs) + (number of query server threads)
Por ejemplo: (2 * 8) + 8 = 24 gsrvrs. Esta recomendación también asume el uso de un servicio de imágenes y consulta, y todos los AXL se conectan como el mismo usuario y base de datos al servidor de ArcSDE. Si en los AXL se hace referencia a bases de datos o usuarios diferentes, entonces la fórmula es:
(#databases * #mapservice threads)+ (#dbs*#queryservices)
Si la cantidad de gsrvrs es mayor a 64 (la configuración CONNECTIONS predeterminada en la tabla ArcSDE SERVER_CONFIG) considere cambiar el tercer parámetro SharedSection en el registro.
Este parámetro se modifica por medio del editor de registros de Windows. Para cambiar SharedSection, en MS_DOS escriba regedit en la línea de entrada y haga clic en ACEPTAR. Navegue hasta la siguiente ruta de registro y haga doble clic en la clave de registro de Windows.Precaución:Las instrucciones en este paso incluyen hacer cambios a las partes fundamentales del sistema operativo. Se recomienda que realice una copia de seguridad del sistema operativo y los archivos, incluido el registro, antes de continuar. Si es necesario, consulte con un profesional en sistemas informáticos calificado. Esri no puede garantizar resultados por modificaciones incorrectas cuando sigue estas instrucciones. Por tanto, utilícelos asumiendo el riesgo correspondiente.
\\HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems
La cadena de texto contiene parámetros de inicio de sesión para Windows. Encontrará el parámetro SharedSection dentro de la cadena de texto. El valor predeterminado es 1024,3072,512. El tercer argumento es la cantidad máxima de memoria de almacenamiento dinámico asignada a los escritorios no interactivos. Por defecto, está configurada en 512 kilobytes o un megabyte. Con esta configuración, el servicio de ArcSDE acepta aproximadamente 56 conexiones. Si aumenta el tamaño de almacenamiento dinámico máximo de los escritorios no interactivos a dos megabytes, permite que el servicio de ArcSDE acepte hasta 270 conexiones. El valor de SharedSection es de 1024,3072,2048 cuando el tamaño de almacenamiento dinámico no interactivo está establecido en dos megabytes. Aumente el tercer valor del parámetro SharedSection de 512 a 1024. Esto duplica la cantidad de gsrvrs que el servicio de ArcSDE puede generar.
SharedSection=1024,3076,1024
Una vez que cambie SharedSection, debe reiniciar el servidor.
- Sitios de SQL Server que utilizan autenticación de Windows para las conexiones de la geodatabase corporativa
Los usuarios que se conectan a los servicios de ArcSDE con autenticación de Windows pueden experimentar un comportamiento de conexión diferente. Cuando el servicio de ArcSDE genera un gsrvr desde una conexión autenticada de Windows, ese gsrvr no se asigna desde el mismo escritorio que el proceso del servidor, el giomgr.exe, sino que recibe su propio escritorio (no interactivo) de 512 KB. Varias conexiones autenticadas de Windows del mismo equipo se asignan desde el mismo escritorio; pero las conexiones de equipos diferentes se asignan desde nuevos escritorios. Si funciona exclusivamente en el modo de autenticación de Windows, se pueden servir más conexiones de ArcSDE si reduce el tamaño de almacenamiento dinámico de escritorio interactivo y no interactivo en lugar de incrementarlo como se mencionó anteriormente.
- Sitios que poseen servicios de terminal o que implementaron Citrix en el servidor de ArcSDE
Los servicios de terminal reducen el grupo de memoria global de 48 MB a 20 MB. Esto significa que se crean menos escritorios en total. Si funciona en este entorno, el tercer parámetro de SharedSection se puede aumentar; pero tenga cuidado con la cantidad de diferentes servicios que no son LocalSystem que crea. Recuerde que, cada vez que se inicia un sistema que no es LocalSystem, se asigna memoria desde el grupo de memoria global a un nuevo escritorio. No se recomienda que los sitios de SQL Server utilicen servicios de terminal con las conexiones de ArcSDE autenticadas por Windows. Si debe ejecutar esta configuración y experimenta dificultades cuando admite conexiones de ArcSDE suficientes, permitir que el servicio de ArcSDE interactúe con el escritorio puede resolver el problema. En este caso, no cambie ninguno de los parámetros SharedSection.
- Cambie el parámetro SharedSection en el registro.
- El parámetro SERVER_CONFIG CONNECTIONS
Si constantemente alcanza la cantidad máxima de conexiones simultáneas que permite el parámetro de inicialización CONNECTIONS establecido en la tabla del sistema SERVER_CONFIG (SDE_SERVER_CONFIG en las geodatabases de SQL Server y PostgreSQL), debe aumentar el valor de este parámetro. El valor predeterminado es 48. Consulte El archivo giomgr defs y la tabla del sistema SERVER_CONFIG para obtener más información.
Puede alterar el parámetro de inicialización CONNECTIONS en la tabla SERVER_CONFIG mediante el comando de administración sdeconfig.Nota:Las conexiones directas contabilizan la cantidad de conexiones con respecto al parámetro CONNECTIONS. En otras palabras, la cantidad de conexiones directas y de conexiones del servicio de ArcSDE no pueden superar el valor del parámetro CONNECTIONS.
- Para ver el valor del parámetro CONNECTIONS actual, utilice el comando sdeconfig –o list en el símbolo del sistema. La sintaxis de este comando es
sdeconfig –o list [–p <SDE_admin_password>]
- Cambie el valor del parámetro CONNECTIONS con el comando sdeconfig –o alter.
sdeconfig –o alter –v <Property_Name=Value,...> [–i <service] [–s <server_name>] [–D <database>] –u <SDE_admin_user> [–p <SDE_admin_password>] [–N] [–q]
- Para ver el valor del parámetro CONNECTIONS actual, utilice el comando sdeconfig –o list en el símbolo del sistema. La sintaxis de este comando es