ConfD startup validation order


I have valpoint valA in model A, and valpoint valB in model B. Application A implements the valA, and application B implements the valB. But application B is started by Application A in the valA callback function.
So I would like to know in ConfD start-phase1, does ConfD firstly check whether both valA and valB are registered before invoking these callbacks? or ConfD check callback registration and invoke the callback in the schema order, such as ConfD firstly check whether valA is registered, and invoke valA if it’s registered, then continue to check whether valB is registered, and invoke valB?
If it’s the latter case, then I can keep application B being started in valA, otherwise, I need to change the way to start application B.


Start your applications that implement validation callbacks in start-phase 0 as described in ConfD 6.3 UG 28.5. Starting ConfD and examples.confd/validate/c/Makefile

Hello, my guess is that ConfD checks if validation callback is registered, before invoking the callback itself.

You scenario seems to be rather complicated. Is there some kind of dependency between A and B that prevets you to start both applications at the same time?

Yes. In my case, application B has dependence on application A.

I have tried ConfD validation example, the test result shows that ConfD check whether validation callback is registered and invoke validation callback based on model order. That means ConfD does not check whether all the validation callbacks have been registered before invoking them.

It seems that ConfD loads the model based on model name lexicographical order, is that right?
And is there a way I can use to specify the model loading order?

Even though it is probably correct that the models are loaded in lexicographical order, I think it is not
something that is guaranteed for the future.

There is a question why both application A and B cannot be started during phase0. Since it is only validation points, there would not be any resource consumption issue (especially since validation is not called
until you commit changes in data model). If your application B does also something else than
validation (which consumes resources], maybe you can split application B into several parts and start only part related to validation.