Scheme Databases
The ObjectStore® database keeps the information about the layout of the classes (the objects stored in the database) in schema databases.
In the ClassiX® system, the schema databases are assigned to the DLLs, in which the C++ code for the corresponding classes can be found:
DLL | contains program code for | Scheme database |
---|---|---|
cxbosr.dll | Basic Classes | schema_b.adb |
cxoosr.dll | Classes for COM/OLE objects | schema_o.adb |
cxmosr.dll | CyberEnterprise | schema_m.adb |
The access to the schema databases runs, just like with the "normal" databases, via the ObjectStore® Server; in contrast to the DLLs, they must therefore be located where a server also runs.
How are the schema databases found when starting the ClassiX® system?
A special feature of ObjectStore® is that a path to the corresponding schema database is also stored in the DLLs. This path can be changed with a utility ossetasp which belongs to ObjectStore®.
In the starting phase ObjectStore® searches the schemata in this order:
- according to the path implanted in the DLLs: with ClassiX® this is simply the name of the schema database. Thus the current directory is searched.
- in the directory (or directories) specified with the environment variable OS_SCHEMA_PATH
- in all directories from which DLLs can be loaded, i.e. according to the environment variable PATH
When installing a ClassiX® system, the environment variable OS_SCHEMA_PATH should be used to maintain the required flexibility.
The implantation of a schema path in the DLLs is not recommended.
If schema databases are found in a directory located on a computer without ObjectStore server, this can lead to noticeable delays when starting ClassiX.
What to do if the right schemes are not found? :
- Check environment variable OS_SCHEMA_PATH
- Check whether wrong (= outdated) schema databases can be found via the other ways (1. and 3.).
- If no schema databases are found, an error message is displayed where everything is searched. Check where these paths come from and adjust PATH or OS_SCHEMA_PATH if necessary.