I have some doubts regarding handling of multiple ‘edit-cfg’ transactions from different northbound clients which can happen in parallel. The user guide does not make things clear in this regard.
So, from my understanding, there are 2 things:
- Use lock
- Use of ‘/confdConfig/commitRetryTimeout’.
With ‘Lock’, the transaction fails when someone else is holding the lock. This means that the client should retry, may be ‘N’ number of times before giving up. Is this right ?
With config entry ‘/confdConfig/commitRetryTimeout’ WITHOUT LOCKING, also, I get the error ‘datastore is locked’, but all the transactions seems to get committed. So, the client actually does not know if the commit succeeded or not.
Without both of the above, I stiil get ‘datastore is locked’, and as expected quite a few of the changes are also lost.
So, what is the recommended way of configuration to handle such scenario for ‘Writable-through-candidate’ And ‘read-write’ running configuration.