从地理数据库 (geodatabase) 中移除直接连接
有时,某连接可能会挂起,从而使一个或多个地理数据库资料档案库表中的某记录呈孤立状态。发生此类情况时,您可能需要强制结束连接。要执行此操作,请使用 sdemon 管理命令。
执行 sdemon 命令的 kill 操作可移除与地理数据库的连接并清除 SDE_process_information 表和锁表中的所有记录。
PostgreSQL 中的 ArcSDE 地理数据库当前不支持此操作。
sdemon 命令的 kill 操作的语法如下所示:
sdemon –o kill –t {all | <pid>} [–D <database_name>] [-s <datasource>] -i <direct_connect_string> –u <user_name> –p <password>
-t 选项用于指定是移除与地理数据库的所有连接 (all) 还是只移除特定连接 (<pid>)。多数情况下,应输入地理数据库资料档案库中所剩某特定连接的进程标识符 (pid)。
-i 选项用于建立直接连接。有关正确语法的信息,请参阅通过 ArcSDE 命令直接连接到 SQL Server 中的地理数据库 (geodatabase)。
如果要连接到除 Oracle 以外的任何数据库,请使用 -D 选项输入数据库的名称。(如果要连接到 Oracle,请不要指定 -D 选项。)
如果要连接到远程服务器上的数据库,请使用数据库所在服务器的名称指定 -s 选项。
使用 -u 和 -p 选项可指定数据库用户的用户名与密码,该数据库用户要具有删除与数据库的直接连接的足够权限。有关这些权限的信息,请参阅 SQL Server 中地理数据库 (geodatabase) 的用户权限。
不建议删除活动的(与孤立的连接相对)连接。如果连接的用户正在编辑数据,则尤为如此。如果用户尚未保存,则断开连接后所有未经保存的编辑内容均会丢失,并且可能会损坏数据。
- 打开 MS-DOS (Windows) 或 shell(UNIX 或 Linux)命令提示符窗口。
- 获得有关已连接用户的信息,方法是使用 SE_connection_get_instance_users 函数、查询 SDE_process_information 表或者执行 sdemon 命令的 info 操作及 user 或 users_long 选项。有关如何使用 sdemon 命令获得连接列表的说明,请参阅显示连接会话。
- 在返回的信息中,识别出要移除的连接的 SDE ID。对于 sdemon -o info 的 users 选项,为 S-ID。对于 users_long 选项,为 Server task ID。对于 SE_connection_get_instance_users 函数,为 svr_id。如果查询 SDE_process_information 表,则为 sde_id。
- 输入 sdemon 命令的 kill 操作及本主题中之前所述相应选项。使用 -t 选项为要移除的连接指定 SDE ID 的值。
有关 sdemon 命令的详细信息,请参阅随企业级 ArcGIS Server 的 ArcSDE 组件附送的《ArcSDE 管理命令参考》。