用Arcmap发布地图服务,当删除空间表时候提示
或者修改表名时候卡死,无响应
或者修改表名时候卡死,无响应
其根本原因是在ARCSDE 的数据操作时,对要素集进行了锁定,并将锁定持久化到了 GEODATABASE,但是在操作的过程中出现意外导致数据操作终止,但是锁定没有解除。
简单点就是由于arcsde服务和客户机建立连接之后,客户机发生死机等意外情况,突然断开,但arcsde服务还保留着与客户机的tcp连接和信息。
具体的解决办法有如下三种
1.多半情况下关闭数据库连接可以解决这个问题,但有时候问题依然存在。
2.
- 关闭所有的ArcMap和ArcCatalog session。
- 开始——运行——cmd
- 在dos下运行命令'sdemon -o kill -t all -p sde'
a.直接在安装arcsde服务的机器上操作
sdemon -o info -I users 可以看到你的机器名称和用户等连接信息,以及开头的一个PID号,这个PID号可以让你单独删除 一个连接,
删除所有连接用命令
sdemon -o kill -t all 可以删除所有服务连接
删除单个连接用命令
sdemon -o kill -t 就是指定上面看到的PID号
b.在客户机上操作
在上面的命令后加上arcsde服务的端口号和arcsde所在的服务器的名称。如:默认的端口号是5151,服务器名称是 server
sdemon -o kill -t all -i port:5151 -s server
3.杀手锏,一定管用。 如果以上步骤执行了后依然报告数据被锁定,那么在sqlplus或者plsql下查询lock表:select * from sde.state_locks;select * from sde.object_locks;select * from sde.layer_locks;select * from sde.table_locks;
如果有记录返回,那么手工删除这些表中的记录