Zim 8.11 Release Notes

1. Configuration Options


This configuration option from the database configuration file zimconfig.zim is no longer valid and is flagged as an obsolete option.


This configuration option from the database configuration file zimconfig.zim is no longer valid and is flagged as an obsolete option.


This configuration option from the database configuration file zimconfig.zim is no longer valid and is flagged as an obsolete option.


This options is now documented in this version and correctly handled by ZimExplore.

2. Bug Fixing

a. Zim program names in the form "xxxnnnn", for example "PRG1234", couldn't be compiled correctly because the actual file names were confused with Zim data files. It has been fixed;

b. Files bigger than 2 Gbytes couldn't be correctly handled by previous versions of Zim 8. Now, any size of files can be processed;

c. Sequence numbers could be reassigned back to 1 when two or more databases were being dealt by Zim Server. Sequence numbers no longer presents this behaviour;

d. In multi-processor environments, Zim Server could eventually hang upon the execution of very long FIND commands due to the lack of internal buffers. These buffers were then freed by simultaneous processors causing Zim Server to ignore them. This no longer happens;

e. Zim client sessions didn't recognize the default editor name, thus returning a name that was garbage. This was fixed by automatically setting "notepad" and "vi" as the default editors for Windows and Unix respectively;

f. When using the configuration option "user name directory yes" in the zimconfig.zim file, the previous version allowed the same user to log in more than once in the same database. This led the sessions to share the same work path, thus causing execution problems. Zim now blocks the second session of the same user. However, if the configuration option "user name directory" is set to "no", any number of sessions using the same user name can be started for the same database because the work path is automatically created by Zim Server with the sequential number of the started session;

g. Initializing a database within ZimExplore defaulted the character set to DOS. Now, it defaults to Windows;

h. Within an explicit transaction, adding records to more than entity set, each one having a sequence number, could erratically not make one or more of the sequence numbers visible next time the Zim Server would be stopped and restarted. This behaviour has been fixed;

i. Upon connection, the parameter "-n", that is, the database name, was processed in case sensitive mode. This is no longer applicable since all database names are now case insensitive;

j. ZimServer now accepts the same foreign directories being referenced by more than one dirs.zim file, that is, more than one databases have the same foreign directory references;

k. When connected to any SQL type server, the following Zim syntax would crash the Zim session:

FIND Customers where CC = {1 where Variable1 = Variable2 AND Variable3 = Variable4, Variable5}

This crash no longer happens.

3. Enhancements

a. ZIM, ZIMTC and ZIMRT now don't start anymore if there is an attempt to log in a database that is being suspended via the command SET DATABASE ACCESS EXCLUSIVE. A message is displayed and the user has to wait for the database to be available;

b. Documentation for ZIM and ZIMTC has been touched to better reflect the parameter convention used;

c. ZIMExplore now has the ability to START and STOP a database by right-clicking the corresponding database name in the control panel (see information below);

d. ODBC Driver: Transaction processing commands were introduced in the ODBC Driver:


These commands can now be used to create a large and explicitly transaction within third party tools accessing Zim 8.11 databases;

e. ODBC Driver: Qualified names (like Customers.FirstName) can now be used in INSERT statements;

5. Introducing ZIMTC

The new Zim Thin Client executable runs any Zim applications and can replace the ZIMRT executable (in the future, ZIMRT will be removed from the list of Zim products).

Even though ZIMTC can invoke DC and perform any ZOM operations, it cannot invoke the Forms Painter.

6. Last Minute Bugs Found

Right before of the release of Zim 8.11, these bugs were found and not fixed (they will be in the next release though):

a. On Windows, if you try to start a Zim session from a shortcut on the desktop for the first time after Zim Server was started, this Zim session doesn't show on your screen even though it was started. However, if you double-click the shortcut again, both sessions appears. If you normally finish these sessions, subsequent double-clicks on the shortcut will work;

A work around for this behaviour is to wait a few seconds after Zim Server has started before starting a Zim session.

7. Starting and Stopping a database

You can start and stop a database in two ways:

a. From ZimExplore:

This situation is useful when it is needed to copy or move the database in a full clean state.

The effect on stopping a database is:

. The database is set to a suspended state;

. Users with running transactions are allowed to finish these transactions;

. New transactions are left suspended and a message box appears on the screen until the database is started again;

. New users are not allowed to log in while a database is stopped;

. After all transactions have been suspended, all buffers used by ZIM files from this database are flushed out and all Zim files are closed. The database, from this point on, is not in use anymore and some physical actions can be taken. However, the action taken in the database must be consistent with the suspended transactions, that is, when the database is started again, suspended transactions must see all the objects in a consistent way again.

The effect on starting a database is:

. If the database was already started, nothing happens;

. If the database was stopped, it is set to a running state;

. Suspended transactions are allowed to continue as though nothing happened. The suspended message disappears.

b. From Zim, using the command SET DATABASE ACCESS EXCLUSIVE/SHARED:

The actions for stopping a database (EXCLUSIVE) are exactly as described for ZimExplore with the exception that there is still a Zim session running (the one that set the EXCLUSIVE state). Therefore, if you perform Zim commands in this session, some Zim files might be reopened and the database is no longer fully clean to be copied. This situation is particularly useful when the database is in production but a program needs to be compiled or some maintenance steps must be accomplished without asking users to abandon their sessions.

The actions for starting a database (SHARED) are exactly as described for ZimExplore.