These notes apply equally to release 4.526. Release 4.622 is currently available for Windows and Windows CE platforms. Release 4.526 is now available for Windows platforms and Intel x86 Linux.
For latest changes to the 4.622 see 4.622 updates. 4.622 was the final "annual official" release of DP4. There is also now a 4.624 release which supports much larger QAB programs which has now been finalised, and formally tested, and is therefore an official DP4 release. The 4.624 set of components reflects what has been used internally by Itim for recent roll-outs of Chameleon. A 4.625 beta will probably be opened in due course.
The DP4 database manager has been almost entirely rewritten for release 4.622, and very significant changes have been made to it. However, most of the new functionality is only enabled when you use the advanced database properties dialog in REORGDB to enable chosen areas of new functionality. In addition the choices you make for the various properties in this dialog may cause considerable variation in the performance of various aspects of DP4. Although there are many internal changes to the structure of DP4 databases, these have almost no impact on DP4 applications.
Release 4.622 incorporates the features originally planned for the "Terabyte Database" project. It is no longer planned to release a separate "Terabyte Database Manager". Instead the 4.622 Database manager works with both existing DP4 databases, and databases upgraded to use the new features.
DP4 for 4.622 can be installed using the regular DP4 install program. However, before performing the installation you should make sure that all your databases are backed up, and are not corrupt. There are a number of significant incompatibilities between release 4.622 and previous DP4 releases, and should you wish to revert to an earlier DP4 release for some reason you may need to restore these backups. Databases touched in any way by release 4.622 will not work with earlier DP4 releases. You should also read the notes on compatibility issues below, and make sure you understand the implications of upgrading to release 4.622.
If you are installing manually, note that there is a new DLL: dbmslibt.dll. The database manager won't work at all without this DLL. An additional complication is that this DLL does not work on Windows 95 or some NT 4 machines, and on these platforms a replacement DLL is installed instead. See Supported Platforms below. In the Linux/Unix release 4.526 there is a corresponding shared library: dbmslibu.so.
In principle there are no longer any limits to the size of a DP4 database.
Release 4.622 introduces many (optional) changes to the structure of DP4 databases, allowing the same amount of data to be stored in significantly less disk space.
REORGDB is now able to manage data compression automatically. In addition it builds an optimal index file, with little or no wasted space.
The database manager can predictively read-ahead data that is likely to be accessed. This can perform significantly better than operating system file caching, resulting in a significant performance improvement.
For a list of non database manager specific enhancements, refer to General DP4 Enhancements
Release 4.622 is supported on Windows 95, or NT4 or later and on a range of Windows CE devices. However, there is a new DLL, dbmslibt.dll, which imports kernel functions missing from Windows 95, and from NT 4 unless service pack 3 or later is installed. The DP4 installer looks for these functions, and if they are not found renames a variant, dbmslb95.dll, to dbmslibt.dll during the installation. This variant DLL will have inferior performance to the proper dbsmlibt.dll if you copy your DP4 installation to a machine running later NT family operating systems. On NT4 machines without service pack 3 you should ideally install the latest NT service pack (6a) before installing DP4 4.622
Release 4.526 is available on Windows 95, or NT 4 later, with the same remarks concerning dbmslibt.dll. Release 4.526 is also available for Linux - in two formats - one for older Linux versions without Large File Support (so that the maximum database size remains at 2 Gigabytes), and one for Linux with Large File Support. This latter format may not work on all Linux distributions, and the maximum file size supported will depend on the file size limitations of the underlying file system.
Currently, in release 4.622, neither DBCHECK or REORGDB can be run from a client machine against a remote database. It is possible that this issue may be resolved in a future release.
Databases that use the obsolete "hashed indexing" or "non unique keys" facilities cannot be upgraded to release 4.622, which does not support these features. You must switch off these options,on any tables using them, and reorganise the database before upgrading to release 4.622. Your database will be hopelessly corrupted if you attempt to upgrade it without doing this.
Release 4.622 does not support "physical indexing", which allowed database records to be fetched in the order they happened to have in the data file. In most cases such an index would be superfluous as the "Rebuild Data and Index" option of REORGDB now arranges data so that all the records in a table are contiguous and arranged in primary key order. It also does not support the "Keep Deleted Records" flag, or the reading of deleted records using the PHYS_INDEX,DELE_ROLE index. This means that SRDD will not work properly with release 4.622.
FDUMPM will not work with databases that use the new facilities of release 4.622. It is possible, but not very likely, that this will be fixed in a future release.
In the DP4 configuration file, the [buffers] section is no longer used to control I/O buffering for the database manager. The same entries as before are used to control buffering, but the entries are now in the [dp4srvr] section. The reason for this is that you can now set these options for dbcheck and reorgdb also, and it may be desirable to set the entries to different values in the three programs.
DBBACKUP is now almost identical to DYNABACK. The only difference is that DBBACKUP uses exclusive access when accessing the database. This change to DBBACKUP means there are two changes to its functionality:
You must not attempt to run DP4 utilities from an earlier release of DP4 against database files modified by release 4.622. Any database written to by release 4.622, even by programs such as DYNABACK, DBBACKUP, DBCHECK, and SETSESSN, will be reported as corrupt by old releases of the DP4 utilities. This has been done to prevent those utilities from accessing 4.622 databases, which have an incompatible file structure.
Similarly, you should not attempt to use a DP4 4.622 utility with an earlier release of DP4. In most cases the utility will simply fail to load, or will generate a system error almost immediately. A ZIP file, 621a.zip, is available from the DP4 web site containing a set of upgrade files which can be safely applied to a 4.621 installation to enable general DP4 enahcenments from 4.622 without upgrading to the newer database manager.
As already noted, database files updated by release 4.622 are incompatible with earlier releases of DP4. If it is necessary to downgrade a database so that it can be used with an earlier DP4 release you must proceed as follows:
If any of the new "Advanced Database Properties" have been enabled, turn them off again and reorganise your database.
Run the DBREVERT utility against the database. If you did not follow step 1 properly, it will complain.
Depending on the options you select in REORGDB Advanced Database Properties, additional database files may be created. If you have created scripts to backup or restore your database files you may need to modify the scripts to ensure the new files are also backed up and restored. The new files are as follows:
A DP4 database can be rebuilt from the DAT and DCI files alone, provided the first 512 bytes of the index file are also available. If your database has a DCI file, but it is lost or corrupted, then the DAT file cannot be read. There really is no way in which we could help you to recover the data in a DAT file, without access to the corresponding DCI file.
For typical applications there are no compatibility issues whatever between release 4.622 and earlier DP4 releases. Existing applications will continue to run exactly as before. There are only three exceptions to this:
If you have written utilities that access DP4 database files directly you will need to modify them to make them work, or fail gracefully, with 4.622 databases. In particular you should note the following points:
There will be no further releases of DP4 except on Intel Unix/Linux and Win32 platforms. In principle new releases of DP4 could be made available on AIX and Sparc/Risc Unix/Linux platforms. However this would involve a significant amount of development and testing, and it is unlikely to take place. Customers currently using MS-DOS or Win16 release of DP4, but running on Windows 9x/NT family machines can upgrade to using Win32 DP4 together with interface programs that allow legacy applications to run. Customers using FlexOS or OS2 can continue to use their existing DP4 network programs to access DP4 databases on machines running release 4.526/4.622. For FlexOS a 525a.zip file has been prepared containing enhancements from 4.622 that are compatible with release 4.525.
There are special considerations that apply when your database is very large. In this context "Very Large" is a function of the size of the database relative to the RAM available for caching the file system - if the total size of your database files(including an allowance for the rollback and transaction log files), is significantly larger than this, then the normal caching performed by modern operating systems will be much less effective than for a small database.
In release 4.622 DP4 incorporates facilities that can significantly reduce the amount of time the database manager is blocked while waiting for disk I/O to complete.
For futher details, refer to the separate Performance of Very Large Databases topic.
Release 4.622 of DP4 supports a new data compression technique which can reduce data file sizes by a factor of 3 or more. Inevitably this causes a slight decrease in performance, but where the size of your database has become a problem, or storage space is a limited resource (for example on a handheld PC), enabling the enhanced compression is recommended. Even without the enhanced compression REORGDB will reduce the size of data files by using a new smaller record header, and by turning on data compression for tables where it would be beneficial.
For further details, refer to the separate Enhanced Data Compression topic.
In previous release of DP4 various aspects of the index file structure were hard coded in such a way as to limit the maximum database file size to 4GB. For practical purposes all such limits have been removed, and the maximum size of a DP4 database will only be limited by the capabilities of the underlying hardware and operating system. However, a database index designed for a database with many billions of records would be highly inefficient for a database which in fact only contains a few thousand records. Instead REORGDB contains options which allow you to configure the database structure most suitable for the number of records your database contains now or will contain before you next reorganise it.
Choosing values that allow for an unnecessarily large database will result in a database that is somewhat larger and slightly slower than necessary. Choosing values that are too small may mean that another reorgansisation is forced sooner than expected (because you need to increase the values). In addition there are some options for which different choices will be appropriate depending on the nature of your application and the number of secondary indexes that are present on the database.
For most databases, you are strongly recommended to upgrade your database to use the new "Two File Index" index structure.
For further details, refer to the separate Configuring the Index File Structure topic.
DFPRINT now supports printing in black and white only as well as in grey scale and color. To enable this you simply print to the new "MonoDFPRINT" device instead of "DFPRINT".
Support for skinning has been extended to allow true color texture bitmaps. This may provide improved performance on some machines. See Problem Graphics Cards for full details.