The ZOM configuration can be called and altered at any time by invoking the ZOMConfig command.
The configuration options control various aspects of ZOM’s operation:
With this option on, status information is displayed when any ZOM service is executing. The status information indicates what objects are being processed, what processing is being done, and other useful information. You can choose between windowed output, serial line-at-a-time output (default – this is the recommended setting), and no output.
With this option on, ZOM maintains an activity log. The activity log tracks the processing done by the ZOM services and also includes any error messages encountered. The activity log can be viewed by invoking the ZOMViewLog command.
Setting error logging on can slow ZOM services if the log file grows large. In this case, you can turn the option off or periodically clear the Zim error log file “errors.trc” by executing the commands:
set output errtrace
set output terminal
ZOM maintains an online cross-reference of the dependencies between the objects in your application that enables many of the powerful features of ZOM. With dependency tracing on, the default, ZOM automatically maintains the dependency database as you use the ZOM services. However, this can slow the performance of the ZOM services in some situations. In this case, you can turn the dependency tracing option off to speed up the ZOM services. This disables explosion and implosion operations, and the display of cross reference information.
Note: The Dependency Trace switches off the Dependency Explosion (no explosion) therefore dependant objects are not recreated, because the dependency is not traced. As dependency information is out dated every time an object is recreated, update this information using ZOMTouch at regular times, i.e. at the end of the day. Switch Dependency Tracing on before executing ZOMTouch.
Default Zim Directory
ZOM insists that all objects be assigned an explicit directory name indicating the directory to which the object belongs. Any unassigned directory names (i.e., blank or null) discovered in the Object Dictionary are automatically assigned to the default Zim directory. By default, default Zim directory is set to “zim”.
With conventions on, ZOM automatically sets the DataSave and Compilable object properties on your behalf. The DataSave property is set for any EntitySet or relationship with fields objects registered. The Compilable property is set for any document object that is compiled. With conventions off, you must set these properties explicitly.
Explosion level determines the extent of actions ZOM undertakes automatically on your behalf on objects that depend on objects you directly manipulate. For example, if you destroy the EntitySet Employees, what should ZOM do to the Relationships and Roles which depend on Employees for their existence?
Explode level can be set to either 0 or 1. Explosion level 0 causes ZOM to ignore any dependencies. Explosion level 1 causes ZOM to “touch” any objects that depend on an object that is recreated, renamed, moved, erased or destroyed. Touching an object resets its properties and the dependency database to reflect the current situation.
The dependency tracing option should be on for explode levels greater than 0.
New keyword is a special keyword that is automatically assigned to all newly registered objects. It is a convenient way to keep track of objects are new to your environment over a period of time. By default, new keyword is set to “$new” as shown in the following example:
ZOMList +k $new
If you would like to reset objects assigned this keyword so no objects are flagged as new, issue the command
ZOMSet +k $new ;k $new!
Changed keyword is a special keyword that is automatically assigned to all objects that are changed (i.e., created, re-created, renames, moved, erased, deleted, compiled, and uncompiled) by a ZOM service. It is a convenient way to keep track of which objects have been altered in your environment over a period of time. By default, changed keyword is set to “$changed”.
ZOMList +k $changed
To reset objects assigned this keyword, so no objects are flagged as changed, issue the command
ZOMSet +k $changed ;k $changed!
Environment code is used to co-ordinate developments occurring in multiple environments and ensure the objects are registered with unique object keys across all development environments. If you set environment code, ensure that it is different for each development environment.
If you do not assign an environment code, ZOM generates a random environment code for you. The randomization is designed to make duplicate environment codes unlikely.
Operations such as ZOMExport can operate in either a set oriented fashion (express mode is on) or a record-at-a-time fashion. In the former, the command usually performs more quickly. However, you do not see a separate status displayed for each object as it is processed nor is a separate log entry be made for each object. This information is available when express mode is off.
Process Sort Order
Within the ZOM Configuration Interface the process order can be selected. The default is blank, but a ZIM developer can set the Process Sort Order by means of a combo box containing object fields. The sort order is used to sort objects that are processed by ZOM, e.g. in the ZOMList command. It is a standard ZIM sort clause and can contain any valid sort criteria.
Log Object Modifications
The debug option, Log Object Modifications, permits the enabling/disabling of logging modifications to the DefinitionsLog EntitySet. This entity set records all modifications such as creating an object. Access the Debug view form in the Debug Options Interface. This option can also be set at the command line by entering the statement set logdefinitions on/off.
To aid client-server development, an additional debug option to add tracing for SQL statements is provided. Access the Trace view form in the Debug Options Interface.