ArcCatalog -- ArcSDE Lock request conflicts with an established lock

来源:互联网 发布:ubuntu 16 中文输入法 编辑:程序博客网 时间:2024/06/07 02:06

 用Arcmap发布地图服务,当删除空间表时候提示


或者修改表名时候卡死,无响应
其根本原因是在ARCSDE 的数据操作时,对要素集进行了锁定,并将锁定持久化到了 GEODATABASE,但是在操作的过程中出现意外导致数据操作终止,但是锁定没有解除。
简单点就是由于arcsde服务和客户机建立连接之后,客户机发生死机等意外情况,突然断开,但arcsde服务还保留着与客户机的tcp连接和信息。
具体的解决办法有如下三种 
1.多半情况下关闭数据库连接可以解决这个问题,但有时候问题依然存在。 
2.
    • 关闭所有的ArcMap和ArcCatalog session。
    • 开始——运行——cmd
    • 在dos下运行命令'sdemon -o kill -t all -p sde' 
补充说明:用sdemon命令来维护
     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; 

如果有记录返回,那么手工删除这些表中的记录 

原创粉丝点击