Wir überschreiten routinemäßig das ArcSDE-Verbindungslimit, etwa einmal pro Woche. Viele der "Verbindungen" sind nichts anderes als verwaiste Datensätze in der SDE.PROCESS_INFORMATION
Tabelle. Gibt es eine Möglichkeit, diese Verbindungen regelmäßig zu bereinigen? Ich habe gerade ArcSDE auf 9.3.1 SP2 gepackt, in der Hoffnung, dass dies das Problem lösen würde. (Hat es nicht.) Derzeit starte ich den arcsde
Dienst neu, um die Verbindungen zu bereinigen, eine ziemlich unelegante Lösung.
Dies ist übrigens der Fehler:
Failed to connect to database. Maximum number of connections to instance exceeded
Mein Workaround:
Meine Lösung war einfach: Starten Sie den SDE-Dienst wöchentlich neu und verdoppeln Sie die Anzahl der zulässigen Verbindungen. Dies ist natürlich keine Lösung ; Schande über ESRI für den Versand von Unternehmenssoftware, für die eine solche Problemumgehung erforderlich ist. Immerhin ist es immer noch möglich, die maximale Anzahl von Verbindungen zu überschreiten. Ich kann nur hoffen, dass unser aktueller Nutzungsgrad nicht dazu führt.
Ich habe das init.d
Skript geändert , um zu verhindern, dass sdemon
der Benutzer aufgefordert wird, das Beenden des Dienstes zu bestätigen (dies ist das -N
Argument). Ich habe auch eine restart
Option hinzugefügt .
#!/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
Dann habe ich einen Cron-Job erstellt, um den Dienst einmal wöchentlich neu zu starten:
# restart arcsde once weekly at 5am Saturdays
0 5 * * 6 service arcsde restart
Ich habe außerdem die maximale Anzahl zulässiger Verbindungen von 64 auf 128 erhöht, indem ich die $SDEHOME/etc/giomgr.defs
Datei bearbeitet habe :
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.
Dann habe ich die neuen Einstellungen importiert:
$ sdeconfig -o import -f $SDEHOME/etc/giomgr.defs -i esri_sde -u sde
Das war's. Wir werden sehen, wie es geht.
Antworten:
Es gibt einen esri Knowledge Base-Artikel, der beschreibt, wie verwaiste Verbindungen behandelt werden sollen . Wie andere bereits betont haben, besteht die einfache (aber nicht unbedingt elegante) Lösung darin, Ihren Dienst einfach neu zu starten.
quelle
Sie können auch in Betracht ziehen, dass Ihre Benutzer eine direkte Verbindung herstellen und den Dienst insgesamt umgehen. Dies behebt einige Probleme, die ich mit dem Aufhängen von Diensten hatte, und führt zu einer leichten Erhöhung der Verbindungsgeschwindigkeit für Benutzer.
quelle
Dies ist eine Antwort, die gestern von meinem Vorgesetzten zu diesem Thema an einen Kunden gesendet wurde.
Um die Anzahl der ArcSDE-Verbindungen zu erhöhen, kann auf dem ArcSDE-Server die folgende Syntax verwendet werden:
sdeconfig -o alter -v CONNECTIONS=140 -u sde -p sde_password -i sde_instance
Dabei ist "sde_instance" der Name oder die Portnummer des ArcSDE-Service.
Sie können überprüfen, ob diese Änderung vorgenommen wurde, indem Sie den folgenden Befehl ausführen:
sdeconfig -o list -u sde -p sde_password -i sde_instance.*
quelle
arcsde
Dienst einmal wöchentlich neu startet .Wir haben den Server immer nur regelmäßig abgehackt, um dies zu tun ...
quelle
Haben Sie diesen Beitrag im ESRI-Forum gelesen , der etwas alt ist, aber es gibt Skripte, die das tun, was Sie tun möchten?
quelle
T B
einmal ausgeführt, aber es hatte keine Wirkung. Es ist fast 5 Jahre alt und ich vermute, dass sich seitdem zu viel in der Umwelt verändert hat.