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.