使用 NETCONF 锁定并解锁候选配置
当客户端应用程序请求或更改配置信息时,它可以使用以下一种方法访问候选配置:
锁定候选配置,从而阻止其他用户或应用程序更改共享配置数据库,直到应用程序释放锁定。这等同于 CLI
configure exclusive
命令。在不锁定的情况下更改候选配置。我们不推荐此方法,因为可能会与同时编辑共享配置数据库的其他应用程序或用户所做的更改冲突。
如果应用程序只是请求配置信息,而不是更改信息,则不需要锁定配置。应用程序可立即开始请求信息。但是,如果返回的信息在会话期间必须不会更改,那么锁定配置是适当的。
有关锁定和解锁候选配置的信息,请参阅以下各节:
锁定候选配置
要锁定候选配置,客户端应用程序会发出 和 标记元素以及标记 <lock>
<target>
<candidate/>
<rpc>
元素中的标记。
<rpc> <lock> <target> <candidate/> </target> </lock> </rpc> ]]>]]>
锁定候选配置可以防止其他用户或应用程序更改候选配置,直到锁定释放。这等同于 CLI configure exclusive
命令。建议在进行更改之前锁定配置,特别是在授权多个用户更改配置的设备上。提交操作适用于候选配置中所有更改,而不仅是请求提交的用户或应用程序所做的更改。允许多个用户或应用程序同时进行更改可能会导致意想不到的结果。
NETCONF 服务器通过返回标记元素中的标记, <ok/>
确认已锁定 <rpc-reply>
报考者。
<rpc-reply xmlns="URN" xmlns:junos="URL"> <ok/> </rpc-reply> ]]>]]>
如果 NETCONF 服务器无法锁定配置,则标记元素会包含一个标记元素来说明 <rpc-reply>
<rpc-error>
故障原因。故障原因可能包括:
另一用户或应用程序已锁定候选配置。错误消息报告用户或应用程序的 NETCONF 会话标识符。如果客户端应用程序拥有必要的Junos OS权限,它可终止锁定的会话。有关详细信息,请参阅 终止 NETCONF 会话。
候选配置已包含尚未提交更改。要提交更改,请参阅 使用 NETCONF 提交候选配置。要丢弃未提交更改,请参阅 使用 NETCONF回滚候选配置中的未提交更改 。
每次只能有一个应用程序锁定候选配置。其他用户和应用程序在锁定时可读取候选配置。锁定将一直持续到 NETCONF 会话结束,或者客户端应用程序通过发出标记元素来解锁配置,如"释放候选配置" <unlock>
中所述。
如果候选配置在客户端应用程序释放之前未提交,或者 NETCONF 会话在提交更改前由于任何原因结束,则更改会自动丢弃。候选配置和已提交配置不变。
释放候选配置
只要客户端应用程序对候选配置锁定,其他应用程序和用户就不能更改候选者。要解锁候选配置,客户端应用程序包括 和 <unlock>
<target>
标记元素以及 <candidate/>
标记 <rpc>
元素中的标记。
<rpc> <unlock> <target> <candidate/> </target> </unlock> </rpc> ]]>]]>
NETCONF 服务器通过返回标记元素中的标记, <ok/>
确认已 <rpc-reply>
解锁报考者。
<rpc-reply xmlns="URN" xmlns:junos="URL"> <ok/> </rpc-reply> ]]>]]>
如果 NETCONF 服务器无法释放配置,则标记元素会包含一个标记元素 <rpc-reply>
<rpc-error>
来说明故障原因。