12 votos

¿Se ha superado el límite de conexión de ArcSDE?

Superamos habitualmente el límite de conexión de ArcSDE, aproximadamente una vez a la semana. Muchas de las "conexiones" no son más que registros huérfanos en el SDE.PROCESS_INFORMATION mesa. ¿Hay alguna manera de limpiar estas conexiones periódicamente? Acabo de hacer un service pack de ArcSDE a 9.3.1 SP2, esperando que esto resuelva el problema. (No lo hizo.) Actualmente reinicio el arcsde para limpiar las conexiones, una solución bastante poco elegante.

Este es el error, por cierto:

Failed to connect to database. Maximum number of connections to instance exceeded

Mi solución:

Mi solución fue sencilla: reiniciar el servicio SDE semanalmente y duplicar el número de conexiones permitidas. Por supuesto, esto no es una solución La vergüenza de ESRI es que el software de la empresa requiera una solución de este tipo. Al fin y al cabo, todavía es posible sobrepasar las conexiones máximas; sólo puedo esperar que nuestro nivel de uso actual no nos lleve a ello.

Alteré el init.d script para evitar sdemon de pedir al usuario que confirme que quiere detener el servicio (esto es lo que el -N argumento lo hace). He añadido un restart también.

#!/bin/bash
#
# arcsde Init file for starting and stopping ArcSDE 9.3
#
# chkconfig: 35 90 40
# description: ArcSDE startup script

# Source function library.

. /etc/rc.d/init.d/functions

SDE_OWNER="sde"
SDEHOME="/home/sde/sdeexe93"

case "$1" in
start)
echo -n $"Starting ArcSDE:"
su - $SDE_OWNER -c "$SDEHOME/bin/sdemon -o start -p pwd"
echo "OK"
;;
stop)
echo -n $"Stopping ArcSDE:"
su - $SDE_OWNER -c "$SDEHOME/bin/sdemon -o shutdown -p pwd -N"
echo "OK"
;;
restart)
cd "$CWD"
$0 stop
sleep 5
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
esac

Luego creé una tarea cron para reiniciar el servicio una vez por semana:

# restart arcsde once weekly at 5am Saturdays
0 5 * * 6 service arcsde restart

También aumenté el número máximo de conexiones permitidas de 64 a 128 editando el $SDEHOME/etc/giomgr.defs archivo:

CONNECTIONS      128     # maximum number of connections
                         # NOTE:  On windows machines, you may need to
                         # increase server non-interactive desktop memory.
                         # Consult the ESRI support site for more information.

Luego importé la nueva configuración:

$ sdeconfig -o import -f $SDEHOME/etc/giomgr.defs -i esri_sde -u sde

Eso fue todo. Veremos cómo va.

1 votos

¿Cómo ha verificado que las entradas en las tablas process_information son efectivamente conexiones huérfanas?

0 votos

No todos son huérfanos, por supuesto, pero he encontrado conexiones de 2 semanas de antigüedad desde estaciones de trabajo con un tiempo de actividad < 24 horas.

1 votos

Una cosa que me han dicho: si existen conexiones huérfanas, el proceso para limpiarlas no se pone en marcha hasta que hay una colisión. Es decir, si tienes un máximo de conexiones establecido en 100 y hay 50 entradas en process_info y digamos que 20 de ellas son huérfanas, las conexiones no se limpiarán hasta que SDE intente poner esa 101ª entrada en process_info. De todos modos, estás diciendo que estás recibiendo el mensaje de conexiones máximas excedidas, por lo que el proceso para limpiar las conexiones debería ser activado. Yo investigaría cómo se desconectan las personas que utilizan esas estaciones de trabajo.

8voto

Daniel Broekman Puntos 1951

Hay un artículo de la base de conocimientos de esri que habla de cómo se supone que se gestionan las conexiones huérfanas . Por supuesto, como otros han señalado, la solución simple (pero no necesariamente elegante) es simplemente reiniciar el servicio.

1voto

mrdenny Puntos 171

Esta es una respuesta que envió mi supervisor a un cliente ayer sobre este tema.

Para aumentar el número de conexiones de ArcSDE se puede utilizar el siguiente tipo de sintaxis en el servidor de ArcSDE:

sdeconfig -o alter -v CONNECTIONS=140 -u sde -p sde_password -i sde_instance

donde "sde_instance" es el nombre del servicio ArcSDE o el número de puerto.

Puede verificar que este cambio se ha realizado utilizando el comando

sdeconfig -o list -u sde -p sde_password -i sde_instance.*

0 votos

Sí, de hecho hice esto además de crear un trabajo cron que reinicia el arcsde servicio una vez por semana.

1voto

También puede considerar la posibilidad de que sus usuarios se conecten directamente y eviten el servicio por completo. Esto solucionó algunos problemas que tenía con los servicios que se colgaban y resultó en un ligero aumento de la velocidad de conexión para los usuarios.

0voto

Isaac Solomon Puntos 16554

¿Has leído este post sobre el Foro ESRI es un poco viejo pero hay scripts que hacen lo que quieres hacer?

0 votos

He ejecutado el script publicado por T B una vez, pero no tuvo ningún efecto. Tiene casi 5 años, así que sospecho que ha cambiado mucho el entorno desde entonces.

0 votos

Yo no supondría que ha cambiado mucho en el lado de la SDE. ¿Tienes un enlace al script que has ejecutado?

0 votos

No creo que deba haber grandes diferencias entre la 9.2 y la 9.3.1, ESRI cambió la forma de manejar las geodatabases pero eso es en ArcGIS 10. Estamos reiniciando nuestro ArcSDE como muchos otros están sugiriendo, así que no puedo compartir ninguna experiencia en el uso de los scripts.

0voto

Josh Puntos 569

Siempre hemos rebotado el servidor periódicamente para hacer esto...

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X