Zim 8.20 Release Notes

1. Zim Server

Zim 8 Server has gone through a major modification to address the following issues:

. internal buffer handling;

. better shared memory usage;

. revision of a very specific deadlock condition;

. significantly reducing the amount of shared memory needed to perform common activities;

. improving performance;

. implemented a dynamic creation of zim transaction files (instead of only five of them);

. the checkpoint mechanism was significantly improved;

. users now get a correct message when no connections are available;

. comments placed at the end of the lines in the file zimdb.zim caused errors if semi-colons where not present;

. comments placed at the end of the lines in the file dirs.zim were interpreted as part of the path of the Zim database path;


ZimRT is no longer available for Windows environments. Only the Zim executable or the Zim Thin Client (ZimTC) can be used as a client for Zim 8.20.

3. ZIM Backup Server

Now, Zim Backup Server can be stopped using the parameter -k.

4. Zim

. fixed the error when starting the first Zim session on a freshly started Zim Server. This session would never start unless a second Zim session would be started;

. the command SET DATABASE ACCESS EXCLUSIVE was locking up all users if executed for more than one user;

. fixed the error when encrypting an entity set with the command ENCRYPT;

. Zim is now able to export and import documents (text files) bigger than 2Gb;

. The option AUTORETRY is now set to ON by default and automatic retries of deadlocks occurred on implicit transactions is set to 5;


This utility presented problems when running on Windows. These problems have been fixed;

6. ZimExplore

. User description in the User connections pane was displayed incorrectly for ZimTC and Zim DB Agent. Now, it displays correctly;

. User connections are now refreshed at fixed intervals;

7. ZimTC

. fixed the error when encrypting an entity set with the command ENCRYPT;

. a small window called "DC Tools" was opening when starting DC;

. refreshes to screens are now accomplished correctly;

. EDIT commands could not specify the BACKGROUND parameter;

. PAUSE command was terminating ZimTC;

. icons were not responding to click events;

. several other minor errors preventing ZimTC from working correctly were also fixed.

8. Zim Database Configuration Options

Some options provided in the Zim database configuration file have been changed:

a) Document Line Length: The default value has been increased to 4096 (from 256) whereas the minimum value has been increased to 256 (from 1);

b) Runtime Buffers: the default and minimum value have been increased to 100 (from 40 and 3, respectively) and the maximum value to 10000 (from 400);

c) Sort Buffers: the default value has been increased to 1000 (from 64), the minimum value has been increased to 100 (from 1) and the maximum value has been increased to 10000 (from 600).

9. UNIX Forms Painter

Zim 8.20 was expected to have a cross-platform forms painter to address all kinds of objects in a user friendly way. This painter was not ready at the time of the release of this version.

In this way, users still can use one of the two forms painters available:

1) The native one, with Windows functionality and capable of handling all kinds of objects significant to Unix (including List Boxes, etc.). This painter is automatically invoked whenever the object being painted is of the type graphical;

2) The Zim 4.2 Painter, with limited availability of objects (only text objects). These objects can be optionally painted by this painter or by the native one.


The ODBC SAM has been improved by fixing the following issues:

. when importing a large number of tables, the SQL server would fail because it would run out of cursors;

. the speed of the import process was improved;

. when failing to provide the correct connection parameters to the SQL server, the import operation would still happen but taking the information from a previous import operation, if that import operation existed;

10. Supported Platforms

ZIM 8.20 is currently supported on the following platforms:

. HP-UX 32 and 64 bits;

. IBM AIX 4.x and 5.x;

. Unixware 7.x;

. Windows XP, 2000 and 2003 (Windows 98 is only supported for the client side);

. Linux

11. Enhanced GRAPHIC Command Functionality

The GRAPHIC command can be used to run specific applications over special files like binary files.

One such applications is to invoke a PDF file reader in the client side, even though the file has been generated in the server side, by performing the following steps:

> let $graphics = "c:\\program files\\Adobe\\Acrobat.exe"   % the PDF reader
> GRAPHIC "MyFile.pdf"                                                 % invokes the reader with this file

12. New Option for SYSTEM Command for Zim Thin Client

Only applicable to Zim Thin Client, the Zim SYSTEM command now has a new option to allow operating system commands to be executed in the server side. By default, all system commands are executed in the client side.

For further details, refer to the SYSTEM command documentation.

13. Automatic Creation and Modification of ODBC Driver Data Source Connections

Zim 8.20 now allows the creation of ODBC Driver Data Sources whenever they are needed by the Zim application without resorting to the operating system capabilities. It's also possible to dynamically change existing data sources using Zim commands.

This feature also allows per user entity sets to be correctly handled by ODBC Driver connections.

For further details, refer to the section Configuring a Data Source documentation.

14. Known Problems

Upon the release of this version, these problems were found:

a) Erasing and creating entity sets in some occasional circumstances produce the error:

*** Error *** Directory, Entity, or Relationship file ("zim0100") already exists. Erase the file before creating it.

Even if the file "zim0100" is not physically there.

In this case, issue the following command from Zim's command prompt:

set database access exclusive

As soon as the command prompt returns, go to the operating system and erase the file. Then, from Zim's command prompt again:

set database access shared

After that, you are going to be able to erase and create the entity set.

b) The TAB key does not work properly if all fields but one are protected at the time of the FORM INPUT. The focus does not go the next field using TAB even if this next fields becomes unprotected after the FORM INPUT.

15. SET FOR UPDATE Command

It was introduced the SET FOR UPDATE with the following syntax to allow the clause FOR UPDATE OF to be added to SELECT statements sent to connected SQL servers. This is useful to guarantee that records will be locked for update within the next SQL commands.


For more information, refer to the syntax of this command.


It was introduced the SET CHECKPOINT command to enable or disable the checkpoint operation that happens every time a transaction finishes. This is designed to load bulk data and to simulate a single-user environment.


For more information, refer to the syntax of this command.

17. New Reserved Words

There is a new reserved word used in this version in preparation for the graphical reports syntax:


If you experience compilation errors, just qualify the name in the proper places.

18. New Functions

$CopyToClient and $CopyToServer

These two functions send files in text and binary formats respectively from the database side to the client side. They are designed to work with ZimTC and have no effect when running Zim.

For more information, refer to the extended documentation of these functions.


Provides the name of the database.


Provides the directory path where one of the Zim executables was started.

19. PRINT REPORT Command

For graphical reports, this command prints or displays the report on the screen.

For more information, refer to the syntax of this command.

20. New Function $FromBlob

It converts the contents of a blob field to an operating system file. For more information, refer to the chapter Zim and Blobs and the function $FromBlob.