处理ArcSDE的连接限制已超出?


12

我们通常大约每周一次超过ArcSDE的连接限制。许多“连接”不过是SDE.PROCESS_INFORMATION表中的孤立记录。有什么方法可以定期清理这些连接吗?我只是将打包的ArcSDE服务到9.3.1 SP2,希望这可以解决问题。(它没有。)当前,我重新启动arcsde服务以清理连接,这是一个非常糟糕的解决方案。

顺便说一下,这是错误:

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

我的解决方法:

我的解决方案很简单:每周重新启动SDE服务,并使允许的连接数增加一倍。这当然不是解决方案;对于需要这种解决方法的企业软件,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

然后,我创建了一个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

就是这样 我们将看看情况如何。


1
您如何验证process_information表中的条目确实是孤立连接?
Derek Swingley 2010年

当然,它们并不是孤立的,但是我发现正常运行时间少于24小时的工作站连接已有2周。
2010年

1
有人告诉我:如果存在孤立的连接,则直到发生冲突之前,才会启动清理它们的过程。意思是,如果将最大连接数设置为100,并且process_info中有50个条目,并且假设其中20个是孤立的,则直到SDE尝试将第101个条目放入process_info之前,连接才会被清除。无论如何,您说的是您实际上正在获得“超出最大连接数”消息,因此应该触发清理连接的过程。我将调查使用这些工作站的人们如何断开连接。
Derek Swingley,2010年

Answers:



1

您也可以考虑让您的用户直接连接并完全绕过该服务。这消除了我因服务挂起而遇到的一些问题,并导致用户的连接速度略有提高。


是的,这也减轻了机器的负担;因为用户PC会将DAL保留为SQL,就像将SQL当作数据存储一样,而不是让它为数据提供更多的编程支持。
DEWright 2011年

1

这是我的主管昨天就此问题发送给客户的答案。

要增加ArcSDE连接的数量,可以在ArcSDE服务器上使用以下类型的语法:

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

其中“ sde_instance”是ArcSDE服务名称或端口号。

您可以使用以下命令验证是否已进行此更改:

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


是的,事实上,除了创建cron作业(arcsde每周一次重新启动服务)之外,我还执行了此操作。
2010年

0

我们总是只是定期地跳动服务器来做到这一点...


0

您是否在ESRI论坛上阅读了这篇帖子,它有点陈旧,但是有些脚本可以满足您的需求?


我确实运行过T B一次发布的脚本,但是没有效果。它已经快5年了,所以我怀疑从那以后环境发生了太多变化。
2010年

我不认为SDE方面有太多更改。链接到您运行的脚本?
Derek Swingley 2010年

我认为9.2与9.3.1之间应该没有太大的区别,ESRI更改了地理数据库的处理方式,但这是在ArcGIS 10中。我们正在重新启动ArcSDE,因为许多其他人都在建议这样做,所以我不能分享使用脚本的任何经验。
MathiasWestin 2010年

GDB的内容发生了变化(带有GDB前缀的表已合并),但是我很确定底层SDE的内容是相同的。
Derek Swingley 2010年

@Swingley我完全同意你的看法。
MathiasWestin 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.