Loading the configurations at the startup of server with xml backup rather than cdb files

Hi All,

I removed my .cdb files A.cdb, O.cdb and C.cdb and just placed the xml backup(of current configurations) in the confd directory where aaa_init.xml is present. When I restarted the server back, I could not get the confd services loaded. Is there any possible way to get the confd loaded at the startup with xml configurations rather than .cdb files?

I mean to say how to make confd services to support xml based configuration instead of .cdb file configuration?

Please help.

Thank you

Hi,

There is probably some some issue with your XML file. What does your confd.log / devel.log say?

From the ConfD UG:

/confdConfig/cdb/dbDir (string)
dbDir is the directory on disk which CDB use for its storage and any temporary files being used.
It is also the directory where CDB searches for initialization files.

/confdConfig/cdb/initPath
The initPath can contain any number of <dir> items, which should be directories. When CDB first starts it will first look in these directories for initialization files.
The directories will be searched in the order they are listed, lastly the dbDir is searched.

See also this post for other alternatives:

My logs indicate that I can’t put the XML in to CDB dbDir. Is there any procedure that makes the confd to support the XML configurations rather than CDB? confd_load is just one case of loading it explicitly.

Is there any configuration that can make it implicitly load the initial configuration of xml at the startup?

You can initialize CDB from an XML document that is read from the dBDir / initPath at startup. See ConfD 6.4 UG Chapter 5.8. “Loading initial data into CDB”.

<cdb>
    <enabled>true</enabled>
    <initPath>
        <dir>/etc/opt/confd</dir>
    </initPath>
    <dbDir>/var/opt/moc/confd</dbDir>
    <operational>
        <enabled>true</enabled>
    </operational>
</cdb>

I placed the xml backup in the initPath. The services are not starting up. confd logs say that daemon thread is dead.

30-May-2017::04:13:55.395 - Daemon nbase-confd-thread died
30-May-2017::04:13:55.582 - Daemon router-dcl died

Well, not much for you to do then but to debug why your applications (probably validation applications?) die when you load data into CDB at startup…

To find out which applications (application daemons) you have connected to ConfD you can run confd --status

Example:

$ pwd
/home/tailf/confd-6.4/examples.confd/validate/c
$ make all start
...
$ confd --status | grep -B 1 daemon
validation points:
  id=vp1 daemonId=0 daemonName=mydaemon

Hi,

I need a small clarification.

Steps followed now:

  1. I didn’t delete A.cdb, O.cdb and C.cdb files.
  2. I copied the xml backup in directory specified by initPath.
  3. I restarted the server.
    I got the database initialized with the backup.
    It will work if I remove all the data or configurations i saved in database and then reboot.
    During start up I am using confd_load:

ExecStartPost=/bin/sh -c “/opt/libexec/confd_load -d -l -r /etc/opt/confd/mvcon.xml”

where mvcon.xml is my backup.

This didn’t work when I followed steps 2 and 3 after removing A.cdb, O.cdb and C.cdb files.

So, is it necessary to keep these cdb files during startup initialization of backup?

Your XML backup was then not read by ConfD at startup.

As I pointed out to you in my reply above 2 days ago, you need to read ConfD 6.4 UG Chapter 5.8. “Loading initial data into CDB”.

I got it. I need to place my xml backup in some other directories rather than CDB dbDir and CDB initPath.

Thank you