终止 NETCONF 会话
在 NETCONF 会话中,客户端应用程序锁定候选配置的尝试可能失败,因为另一用户或应用程序已锁定。在这种情况下,NETCONF 服务器会为持有现有锁的实体返回一条错误消息,其中包含用户名和进程 ID (PID):
<rpc-reply xmlns="URN" xmlns:junos="URL"> <rpc-error> <error-severity>error</error-severity> <error-message> configuration database locked by: user terminal (pid PID) on since YYYY-MM-DD hh:mm:ss TZ, idle hh:mm:ss exclusive </error-message> </rpc-error> </rpc-reply> ]]>]]>
如果客户端应用程序拥有Junos OS权限,则可通过在标记元素中发出 和 标记元素来 maintenance
<kill-session>
结束锁定 <session-id>
<rpc>
的会话。 <session-id>
元素指定从错误消息中获取的 PID:
<rpc> <kill-session> <session-id>PID</session-id> </kill-session> </rpc> ]]>]]>
NETCONF 服务器通过返回标记元素中的标记, <ok/>
确认其已终止其他 <rpc-reply>
会话:
<rpc-reply xmlns="URN" xmlns:junos="URL"> <ok/> </rpc-reply> ]]>]]>
我们建议应用程序包含逻辑,根据拥有锁定的用户或应用程序的标识或空闲时间长度等因素来确定是否适合终止另一个会话。
会话终止时,提供会话服务的 NETCONF 服务器将回滚在会话期间进行的所有未提交更改。如果已确认的提交待定(已提交更改,但尚未确认),NETCONF 服务器将配置恢复至其状态,然后再发出已确认的提交指令。有关已确认提交操作的信息,请参阅 仅在使用 NETCONF 确认之后提交候选配置。
以下示例显示如何终止另一个会话:
