|
We would like to make you aware that if the project databases contain more than 45.000 objects it can lead to some critical errors in CADISON. The problem solutions are as well given for your awareness. The data size of a database is not to consider: it is only important to know the number of objects saved in database and number of object interconnections.
Below is the description and the solution of the problem.
Background information
Certain number of database objects and object interconnections activate different CADISON automatic functions in the CADISON database kernel when searching for objects. It means there are two different functions in CADISON to deal with objects and which have been invented to get an optimal performance-memory requirements ratio. Precisely to say, there is a specific mechanism in CADISON activated by quick search of objects (number of objects is small) but which requires a large memory storage on the client-computer.
By a certain object number and object interconnections the other mechanism is activated to reduce the usage of memory storage and to avoid the removal from CADISON workstation main storage to hard disk (this removal takes place automatically if there is an insufficient storage in the operating system, it requires much performance
though).
The "critical" number of the objects in database is 45.000.
As soon as the number reaches more than 45.000 objects and when first accessing the project database the storage-optimizing function is activated in the database kernel. This long-lasting activation takes place every time CADISON is in use. It means that e.g. when accessing from Project-Engineer its respective database that storage-optimizing function is activated even if it deals with smaller database.
The standard access function is activated back by restart of Project-Engineer only.
To get the real number of database objects you may use Versant Programm DB2TTY.EXE. The syntax to be used is:
DB2TTY -D <Projectdatabasename> phi_WorldObject
In the "<Project database name>" please enter the name of the project database. When using this function for prompt (entry) you will get an output. The current number of the database objects is displayed in the last column ("<x>" shows this number):
****** Total <x> instances of class 'phi_WorldObject' ******
The "critical" number of object interconnections in database is about 1.000.
If a database contains more than 1.000 sub-objects connected structurally to it, other storage-optimizing access functions are activated when accessing these sub-objects instead of traditional CADISON database kernel storage-optimizing functions. There is no easy way of identifying the current number of object interconnections though.
Description of the problem and symptoms
This storage-optimizing functions can negatively affect both Versant and other parts of the database kernel. For example incorrect information of certain database objects can be saved in the memory storage of CADISON workstation thus, undermining the integrity of the whole data in the memory storage. It is not possible to anticipate which incorrect
information is saved in the memory, neither there are clear symptoms that identify the problem.
Currently there are two types of symptoms known: if certain information/data is not saved in the database or if CADISON shuts down with Versant error message "E3003 NET_ENOPN: Connection is not opened".
One project object has been registering the problems when saving changes in the database. Some data arrays have been changed (e.g. "User array 1") in the project object of Project-Engineer without being saved in the database, neither error message was displayed. This problem arose in some cases only (not always) in certain data arrays.
Shuts down with error message E3003 can take place in different cases, partly when opening a project, partly when working further-on with CADISON.
Solution of the problem
The storage-optimizing access functions are deactivated in the database kernel when adding the following entries in CADISON.INI. Working on CADISON workstations we advice you to add the following entries in CADISON.INI precisely in the line section [PHi_CADISON]:
[PHi-CADISON]
SELECT_ON_WOCOUNT=-1
AVOID_DB_QUERY=ON
With entry "SELECT_ON_WOCOUNT=-1" you can prevent checking the number of the project objects (45.000) and with "AVOID_DB_QUERY=ON" - number of the sub-projects (1.000).
These settings are available in old CADISON versions too: CADISON R5 supports entry "SELECT_ON_WOCOUNT" and CADISON R6 has the entry "AVOID_DB_QUERY".
The problem will be completely removed in CADISON R9. There will no be necessity of adding entries in CADISON.INI (further-on supported though)
back to overview
|