週に1回、ArcSDEの接続制限を定期的に超えています。「接続」の多くは、SDE.PROCESS_INFORMATION
テーブル内の孤立したレコードにすぎません。これらの接続を定期的にクリーンアップする方法はありますか?パックされたArcSDEを9.3.1 SP2にサービスするだけで、問題が解決することを期待しています。(そうではありませんでした。)現在arcsde
、接続をクリーンアップするためにサービスを再起動しています。これは非常に洗練されたソリューションです。
ところで、これはエラーです:
Failed to connect to database. Maximum number of connections to instance exceeded
私の回避策:
私の解決策は簡単でした。毎週SDEサービスを再起動し、許可された接続の数を2倍にしました。これはもちろん解決策ではありません。このような回避策を必要とするエンタープライズソフトウェアを出荷することに対するESRIの恥。結局のところ、最大接続数を超えることは依然として可能です。私たちの現在の使用レベルがこれにつながらないことを願うばかりです。
サービスを停止することを確認するようユーザーに求めるのinit.d
を防ぐために、スクリプトを変更しましたsdemon
(これが-N
引数の役割です)。restart
オプションも追加しました。
#!/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
次に、毎週1回サービスを再起動するcronジョブを作成しました。
# restart arcsde once weekly at 5am Saturdays
0 5 * * 6 service arcsde restart
また、$SDEHOME/etc/giomgr.defs
ファイルを編集して、許可される接続の最大数を64から128に増やしました。
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.
次に、新しい設定をインポートしました。
$ sdeconfig -o import -f $SDEHOME/etc/giomgr.defs -i esri_sde -u sde
それでした。どうなるか見てみましょう。