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

12

Rutinariamente superamos el límite de conexión de ArcSDE, aproximadamente una vez por semana. Muchas de las "conexiones" no son más que registros huérfanos en la SDE.PROCESS_INFORMATIONtabla. ¿Hay alguna forma de limpiar estas conexiones periódicamente? Acabo de empacar ArcSDE en 9.3.1 SP2, esperando que esto resuelva el problema. (No lo hizo). Actualmente reinicio el arcsdeservicio 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 alternativa:

Mi solución fue simple: reiniciar el servicio SDE semanalmente y duplicar el número de conexiones permitidas. Por supuesto, esto no es una solución ; lástima de ESRI por enviar software empresarial que requiere una solución alternativa. Después de todo, todavía es posible superar las conexiones máximas; Solo puedo esperar que nuestro nivel actual de uso no conduzca a esto.

Modifiqué el init.dscript para evitar sdemonque el usuario solicite que confirme que desea detener el servicio (esto es lo que hace el -Nargumento). También agregué una restartopció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é un trabajo 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 al editar el $SDEHOME/etc/giomgr.defsarchivo:

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. Ya veremos cómo va.

nw1
fuente
1
¿Cómo ha verificado que las entradas en las tablas de información de proceso son conexiones huérfanas?
Derek Swingley
No todos están huérfanos, por supuesto, pero he encontrado conexiones de 2 semanas de edad desde estaciones de trabajo con tiempo de actividad <24 horas.
nw1
1
Una cosa que me han dicho: si existen conexiones huérfanas, el proceso para limpiarlas no se inicia hasta que haya una colisión. Es decir, si tiene un máximo de conexiones establecidas 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 101a entrada en process_info. De todos modos, estás diciendo que en realidad estás recibiendo el mensaje de conexiones máximas excedidas, por lo que el proceso para limpiar las conexiones debería activarse. Investigaría cómo las personas que usan esas estaciones de trabajo se están desconectando.
Derek Swingley

Respuestas:

1

También puede considerar que sus usuarios se conecten directamente y omitan 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.


fuente
Sí, y esto también reduce la carga en la máquina; dado que la PC de los usuarios maneja el DAL manteniendo el SQL solo como un almacén de datos en lugar de hacer que soporte más programáticamente los datos.
DEWright,
1

Esta es una respuesta enviada ayer por mi supervisor a un cliente sobre este tema.

Para aumentar el número de conexiones ArcSDE, se puede usar el siguiente tipo de sintaxis en el servidor 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 haya realizado utilizando el comando:

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

CDBrown
fuente
Sí, de hecho hice esto además de crear un trabajo cron que reinicia el arcsdeservicio una vez por semana.
nw1
0

Siempre hacemos rebotar el servidor periódicamente para hacer esto ...

DavidF
fuente
0

¿Has leído esta publicación en el Foro de ESRI , es un poco antigua pero hay scripts que hacen lo que quieres hacer?

MathiasWestin
fuente
Ejecuté el script publicado por T Buna vez, pero no tuvo ningún efecto. Tiene casi 5 años, por lo que sospecho que ha cambiado demasiado en el medio ambiente desde entonces.
nw1
No supondría que demasiado ha cambiado en el lado SDE. ¿Tienes un enlace al script que ejecutaste?
Derek Swingley
No creo que deba haber grandes diferencias entre 9.2 y 9.3.1, ESRI cambió la forma en que se manejan las geodatabases, pero eso es en ArcGIS 10. Estamos reiniciando nuestro ArcSDE como muchos otros sugieren, por lo que no puedo compartir Cualquier experiencia en el uso de los scripts.
MathiasWestin
el material GDB cambió (las tablas con prefijos GDB se consolidaron), pero estoy bastante seguro de que el material SDE subyacente es el mismo.
Derek Swingley
@Swingley Estoy totalmente de acuerdo contigo.
MathiasWestin