Monday, 28 January 2021
As you know, when a task of some of the Siebel components is executed, for example the EIM, a reading of the data dictionary (diccache.dat) is done as a first step where the data model of our Siebel application is described, that is, tables, columns, indexes, user keys, etc.
Sometimes it happens that there are inconsistencies between what has been developed in Tools, that is, in the repository, and what has actually been applied in the physical model (when we apply the changes in the model).
Note: The physical schema, for a Siebel component, is what is described in the diccache.dat file, located in SIEBSRVR_ROOT\bin. The Siebel component does not read the schema directly from the database, but from this file. This is why there can sometimes be inconsistencies between what is described in this file and the actual physical model.
Well, there is an out-of-the-box utility to do the checks and make sure that our physical schema (what the Siebel component reads from the diccache.dat file) is consistent with what is developed in the repository. This utility is called dbchck (“Database Check”).

This utility checks the differences between the actual physical schema and the contents of the diccache.dat file. In addition, it generates a new file diccache.dat.
Once executed we can check in the log if there is an error and if we lack any table to apply.
To run this utility:
From SIEBSRVR_ROOT\bin, locate the dbchck.exe (Windows) or dbchck (UNIX) file.
Clear the dictionary cache file (diccache.dat) before execution and verify that no EIM or Siebel Remote tasks are running.
Load the appropriate environment variables (siebenv.sh)
Run with the following syntax:
dbchck /u SADMIN /p password /t SIEBEL_TABLE_OWNER /r “Your Siebel Repository Name” /l dbchck.log /dict /all /s ODBC_data_source

where:
■ Your Siebel Repository Name = Siebel repository that we want to compare with the physical schema. By default, “Siebel Repository”
■ ODBC data source = the ODBC that connects to the database of our repository, by default, ENTERPRISENAME_DSN
Discrepancies between the actual physical schema and the repository will be recorded in the log file specified in the /l parameter.

