取消命令 (XMLA)
根据发出命令的用户的管理权限不同,XML for Analysis (XMLA) 中的 Cancel 命令可以取消针对会话的命令、会话、连接、服务器进程或者关联的会话或连接。
取消命令
用户可以通过发送不带任何指定属性的 Cancel 命令,取消当前显式会话上下文中当前正在执行的命令。
注意 |
---|
用户不能取消隐式会话中正在运行的命令。 |
取消 Batch 命令
如果用户取消了一个 Batch 命令,则会取消该 Batch 命令中尚未执行的所有其余命令。如果 Batch 命令是事务性的,则会回滚在 Cancel 命令运行前已执行的所有命令。
取消会话
数据库管理员或服务器管理员通过在 Cancel 命令的 SessionID 属性中指定显式会话的会话标识符,可以取消会话,包括当前正在执行的命令。数据库管理员只能取消其拥有管理权限的数据库的会话。
数据库管理员可以通过检索 DISCOVER_SESSIONS 架构行集来检索指定数据库的活动会话。若要检索 DISCOVER_SESSIONS 架构行集,数据库管理员需要使用 XMLA Discover 方法,并在 Discover 方法的 Restrictions 属性中为 SESSION_CURRENT_DATABASE 限制列指定相应的数据库标识符。
取消连接
服务器管理员通过在 Cancel 命令的 ConnectionID 属性中指定连接标识符,可以取消与给定连接关联的所有会话(包括所有正在运行的命令),并取消该连接。
注意 |
---|
如果 MicrosoftSQL ServerAnalysis Services 实例无法找到和取消与某连接关联的会话,例如在提供 HTTP 连接的同时数据抽取打开了多个会话,则该实例将无法取消该连接。如果在执行 Cancel 命令时遇到了这种情况,则会发生错误。 |
服务器管理员可以检索 Analysis Services 实例的活动连接,方法是使用 XMLA Discover 方法检索 DISCOVER_CONNECTIONS 架构行集。