4.621 Updates

This page now only changes since 4.621 was officially released. For a list of the enhancements over 4.620 included in 4.621 please see the 4.621 release notes.


Date File Description
13 Octerrlog.w32

On Windows NT family operating systems when DP4 is run as a service, then DP4 would hang when DP4 errlog logging is loaded, after there has been a logoff/logon sequence on the main desktop while the service is running. How long the hang would take to occur would depend on the volume of diagnostics being produced. This bug is long standing, but so far is fixed only in 4.621a and beyond.

20 Dectrmw32.dll

The trmw32.dll in the 621a.zip file was missing a fix made to 4.622 in June

27 Sepusrlibt.dll

When updating data over a network connection network errors were occasionally reported as System Error 7 errors, instead of as Fail Error 7 errors. This fix was made on 25th August but has only now been issued. This fix has been taken from the 4.622 set and has only been applied to the 4.621a and 4.621b downloads.

syslibce.dll is also afflicted by this bug. The fix is not currently available for 4.621 but can be supplied if required.

27 Junusrlibt.dll

dp4_bf_fetch() did not automatically set the DEPTH flag when a non-zero value was specified for the final parameter. This would have caused unexpected behaviour in C++ programs that used this functionality. Also dp4_blk_f2nd() passed the depth parameter incorrectly in all cases.

syslibce.dll is also afflicted by this bug. The fix is not currently available for 4.621 but can be supplied if required.

13 Junmapedit.exe

The mapedit.exe included in the original 4.621 release diplayed a meaningless message box when editing maps that used an unknown font. This might happen when displaying maps that used a foreign character set, because the way this information is stored changed in 4.621.

17 Maysrvw32.exe
syslibt.dll

The 4.621b ZIP file, now available from the DP4 FTP site contains an updated release of the 4.621a ZIP files together with enhanced versions of srvw32.exe and syslibt.dll, which together can help solve problems caused by ill-behaved programs that terminate without allowing DP4 to perform necessary clean-up. The new version of syslibt.dll will not run on Windows 95. For details see information on the new dp4.ini setting monitor.

7 Mardp4srvr.w32

If one or more programs updated the database while dynaback -copy was running against a database, but at the moment dynaback -copy completes no other programs has the database open, or no further programs updated the database before it was finally closed, then the database was not properly closed and dbrecov would restore it from the backup that had just completed because no rollback file exists.

3 Mardp4srvr.w32

In some circumstances dynaback -copy would fail because of a checksum error in the backup. In theory this bug could also cause dbrecov to leave a database in a state where it would fail dbcheck because of an incorrect hole.See a4000034.htm for details of this bug. This bug is present in all DP4 releases

The new dp4srvr.w32 also attempts to work-around a bug in the Windows API MoveFile() which cause an attempt to rename a file to fail for no valid reason.dbmslibt.dll now retries renames ten times if certain error codes are returned by the operating system. This bug could cause reorgdb, numbsys or dynaback to fail at the very end. the bug is extremely intermittent and does not occur at all on most machines.

9 Febdp4srvr.w32

If a system failure occured while DBRECOV was applying a transaction log then a subsequent DBRECOV might fail to apply the rollback log created by the first DBRECOV, leaving the database corrupt. This bug also occurs in earlier DP4 releases. Please contact us if you are require a fix to an ealier DP4 release.

9 Febtrmw32.dll

After map_copy(), or show_attach_map() into an edit control with a prompt box the screen was not updated correctly, especially if "fully buffered" was not selected as screen refresh mode in DFSETUP. This has only been fixed in 4.621a. Earlier DP4 releases are also affected

17 Jantrmw32.dll

Due to a bug in DeferWindowPos() trmw32.dll leaked "user objects" in some circumstances. If a program ran for a very long time this could cause resource starvation, leading to a GPF when trmw32.dll could no longer create windows. A work-around has been added which has been enabled by default. See a4000035 for further details. All 4.6xx releases of DP4 for Windows are affected by this bug, but the fix has only been applied to releases 4.622 and 4.621a

2005

21 Decdp4srvr.w32

Database could be corrupted when record locking was used. See a4000034.htm for details of this bug.

21 Decdbrecov.exe

The -silent option failed if the database needed to be restored from the last online backup.

18 Novdynachek.exe

Spurious corruptions could be reported on databases using enhanced index compression if character keyfields contained null terminated strings rather than blank padded data.

The print out for corruptions was incorrect for databases using BCD based number systems.

The fix has been taken from 4.622, and has only been apllied to the 621a ZIP file, but it is also compatible with the original 4.621 release.

19 Octtrmw32.dll

Would occasionally GPF on Windows 2000 for no apparent reason. This problem arose because an internal validation performed on a Window handle was not correct on Windows 2000. The validation concerned has been present in trmw32.dll for many years, so the problem exists in all 4.6xx releases of trmw32.dll. The validation has been removed because it depended on undocumented information that is no longer true:

  • trmw32.dll assumed that the high order word of a window handle was never -1 since this value is used for various "special" window handles such as HWND_TOPMOST. However, in Windows 2000, ordinary window handles do sometimes have this value in the high order word. As far as I know this is not the case on any other version of Windows. However there is no guarantee, so the GPF might also occur on other platforms.

    The fix has been taken from 4.622, and is only compatible with a 4.621a installation, and no has only been applied to 621a.zip. If you require the fix for the original 4.621 release, or for 4.620 please contact us.

13 Octsyslibnt.dll
syslibt.dll

syslibnt.dll reported a spurious error if a preload section of dp4.ini is used when the DP4 service is started.

If DP4 was loaded in the named connection configuration, and a very large number of programs were running locally, and the DP4 service was stopped then tcpmgr.w32 might continue to run for a considerable period (roughly two seconds per local program), after the DP4 service stopped. The fix for this problem means that once a DP4 ipc channel has failed for a process (because there is no server for the channel), all subsequent calls from that process to IPC functions using that channel are instantly failed. Previously calls were always attempted, and there was a one second timeout until the server status was checked and the call failed.

Both these fixes have been taken from 4.622 and have only been applied to the 621a.zip file, not to the base 4.621 release.

16 Augimppost.exe

The option to force a scale factor on type N fields did not work in any 32 bit release of DP4 when the field was in string format. The value of the field was always set to 0.

11 Augtrmw32.dll
dp4.exe

Calls to the DP4 terminal manager no longer returned the correct exit code in the event of a system or fail error internal to the terminal manager. These calls should return error code 3 or 4. Instead error code 2 was being returned. This bug has been present since 4.620. This fix has not been applied to the Windows CE downloads, only the regular Windows DP4.

dp4.exe did not exit cleanly after a DP4 IPC error, nor recover cleanly if a system error 87 was reported on a database, nor behave correctly on a second or subsequent system or fail error of any type. This bug has been present since 4.620. The fix is taken from 4.622 but is compatible with 4.621 (or even 4.620).

05 Augsqllibt.dll

Column functions did not respect the precision of N fields.

The CHAR function did not convert dates correctly : the last two digits of the year did not appear. The fix for this problem has been taken from 4.622, and has only been applied to the 4.621a download, and is not compatible with the original 4.621 set.

30 Junmapedit.exe

Fix for GPF that occurred when adding a control to a map for which the frame control used a font that was not set to be the default font for the map. This bug is also in earlier MAPEDIT releases. The fix has been added to the 4.621a set but not the base 4.621 set.

30 Junrecastdb.exe

The structure transfer option could cause a memory corruption which might cause a GPF, but which might cause RECASTDB to terminate without any error messages. This might cause a user to believe the structure transfer had completed successfully when it had not. The updated version has been taken from the latest 4.622 release

26 Maytrmw32.dll
trmwce.dll

Did not handle numeric fields with units correctly when printing 4.500 maps.

25 Maytcpmgr

If a network error occurred at a certain point tcpmgr might become less responsive. If only one user were connected then it might become completely unresponsive.

24 Maytcpmgr.wce

The CE version of tcpmgr would sometimes stop processing requests and use up all available CPU if the -nokeepalive option was in use and a remote client disconnected and immediately reconnected. The 4.621 downloads have been updated with the latest 4.622 build as this is compatible with 4.621.

18 Mayrecastdb.exe

The synchronise facility did not work correctly when a field was updated in the record being transferred. Changes were not committed correctly, so that a record could be marked as being synchronised when it had not been. This change was not applied to the 4.621 download until 30 Jun.

13 Maytcpmgr.wce

The CE version of tcpmgr would sometimes stop processing requests and use up all available CPU when more than one client is active. The 4.621 downloads have been updated with the latest 4.622 build as this is compatible with 4.621.

13 Maytcpw.wce

The CE version of tcpw would sometimes refused to allow programs to connect (especially over WAN connections). This problem was caused by a bug in the Windows CE version of the connect() API.

This has not been fixed in the 4.621 download. The version in the 4.622 download should work with 4.621 but will generate fail error 15 where previously error 9 might have been generated.

21 Aprtcpmgr

tcpmgr might refuse to accept new connections because it believed the maximum number of connections had been reached, when in fact some of the connected sessions were dead but had not been cleaned up because tcpmgr was busy. This bug also meant that more than one session to the same machine could appear in the network manager display.

Note: The fix for this bug was not been applied to the full 4.621 download until 13th May, and has been taken from the 4.622 issue set.

31 Marinstall.exeDid not create DP4 menu cleanly when doing an initial DP4 installation.
Did not pick best DP4 installation to upgrade when doing an upgrade installation on machines with several side by side installations of DP4.
24 Marmapmake.exeDeleting maps with the -multilanguage option in effect could cause the usage count for controls to be incorrectly adjusted, so that controls still being used in another map might be deleted (thus corrupting the map). This bug is in all prior versions of MAPMAKE.
27 Jansyslibt.dllIf a server dies (for example after a GPF) requester programs should receive an IPC error and DP4 should be shut down. This did not happen if the named connection configuration was in use and dp4srvr.w32 died while processing a request forwarded from tcpw.
25 Jan dp4svr.w32

In some situations a spurious fail 5 0 10 error, or system error 10, or system error 8 errors were being generated when DP4 is loaded in the local resilience configuration. The error typically arises when one application has just updated the database and a second application is started. Once this error is encountered the only solution was to stop the DP4 service.

This error also occurs with release 4.620, but has not been fixed in that release.Currently the fix has only been applied to the Windows release of DP4 and not to the Windows CE or Linux releases.

13 Jan install.cfg

The DP4 install program from 4.621 should make some changes to an existing DP4 configuration file during an upgrade installation, but failed to do so. There is no need to download a fix for this, as you can easily make the intended changes manually by following these simple instructions:

  1. Navigate to the folder where DP4 binary files are installed.
  2. Locate the dp4ini.inf file and right click on it. (If the file is missing for some reason you can copy it from your DP4 CD ROM, or extract it from the 4.621 download).
  3. Select the Install option

This will add the use_viewer=1 settings to most DP4 utilties that have a print option, and will limit the frequency of comfort output from batch type programs. It will also enable new style buttons and title bar shadowed text.

6 Jan mapedit.exe
maped09.dll

Re-issue - 4 Jan version generated error message when map properties dialog selected. Did not initially allow length and precision to be set for edit fields
Did not remember some settings for checkbox fields. The maped09.dll now incorporates dialog elements needed for enhancement e4000048 at design time, but the run-time enhancement requires updated trmw32.dll that is not included in base 4.621 set. See the enhancement page for separate download.

4 Jan mapmake.exe
qabutil.exe
Did not print out change notification keys for checkboxes and radio buttons

2004

14 Dec dfsetup.exe

Only allowed single digit in language field. This bug was introduced in the XPSP2 bug fix of 19 August, and appears to have been caused by compilation of a source module being used for internal testing rather than the corect release source for the program.

14 Dec qabutil.exe

Reissue - version issued 10 Dec crashed when posting programs The find "maps in procedures" option would GPF if a procedure body with a blank mapname was used in more than 1000 different procedures. This bug is also in previous releases, but has not been fixed in them.

9 Dec dp4srvr.w32

On Oct 1st a supposedly minor change was made to the fix issued on Sep 22nd. This change causes dynaback -copy to make dp4srvr.w32 GPF if the RLB file is open.

6 Dec Various

An enhancement to printing is available which gives better results when printing maps containing boxed (and hence widely vertically spaced) edit controls to legacy print devices. See e4000048 for details and download. This change is not in the full 4.621 download on the FTP site.

6 Dec trmw32.dll

Entering a number below the lowest permitted value caused a floating point stack underflow due to a bug in the Microsoft C compiler. Unfortunately this exception is normally masked in Microsoft C programs, so did not show up. It is believed that this bug is generally harmles. However, if a DP4 program is linked with another library, which causes this exception to be unmasked, then a GPF will occur at in unrelated piece of code.

This bug is believed to be in all previous DP4 releases.

22 Nov maped09.dll

Needed for mapedit.exe fix posted on 9th Novemeber. This is the version previously issued with e4000046.

17 Nov sqllibt.dll

[sql.xlat2 dbname] entries in the DP4 Configuration file were no longer being processed correctly. This bug was introduced in 4.619

9 Nov mapedit.exe

If an error due to a missing record on the database occured when loading the first map to be edited a GPF resulted.

4 Nov progmake.exe

After using either of the "Compiled Changed Programs" options from within PROGMAKE, subsequent changes would not necessarily flag the programs as needing recompilation again. Note that a similar bug still remains - if you compile just the program being edited then this program will not necessarily be marked again as needing recompilation if you continue to edit the program.

3 Nov reorgdb.exe

The -data option previously updated the timestamp of all records. This confused programs that use record timestamps to decide if a record changed (such as the synchronise option of RECASTDB). This bug is very long standing - it is certainly present in all 4.5xx and 4.6xx releases, but has only been fixed in 4.621.

21 Oct dp4srvr.w32

An enhancement to DP4SRVR.W32 is available which addresses a limitation of "equal and backwards" searches in QAB.See e4000047 for details and download. This change is not in the full 4.621 download on the FTP site.

20 Oct Various

Various minor enhancements are available to QAB and mapedit and related components that make it possible to indicate when a field in a dialog is disabled. See e4000046 for details and download. This change is not in the full 4.621 download on the FTP site.

20 Oct dp4clibt.dll

If an option in a menu bar displayed using map_bar_choose() was disabled it was still displayed using ordinary colours except when a pulldown was active. This bug is also in 4.620 but has not been fixed there.

20 Oct trmw32.dll Color of VCR "text" was wrong - was usually now black instead of using color scheme color.
05 Oct auxdistr.w32
dynaback

DYNABACK -COPY did not work when AUXDISTR was loaded in a duplex resilience configuration. The updates to made to AUXDISTR also address a number of other issues: please refer to E4000045 for details.

22 Sep dp4srvr.w32

After a media error or other problem writing an RLB file dp4srvr.w32 should stop writing to any database files, because as long as no further problems develop in parts of the rollback file already written the database can be recovered. However, in some circumstances DP4 could continue to write to the database after an error writing the rollback. Under these circumstances dbrecov fails to recover the database properly if it is run using this rollback file.

22 Sep tcpmgr.w32

In combined server/client multiple resilience configurations, if a program tries to commit a transaction on a local database while a two phase commit is in progress on the same database the program encounters a spurious error. This bug was new to 4.621.

2 Sep trmw32.dll
dp4.ini

Fix for an incorrect error message when there is a problem with a redirect file and redw -testmode is in use.

19 Aug Various

Various patches are required to enable DP4 4.621 to run on computers with Windows XP SP2 installed. Please refer to article A4000029.htm in the DP4 Knowledge base for full details. The full download for DP4 4.620 has also had this patch applied.

09 Aug dbcheck.exe

For reasons that are unclear, a sort function used by DBCHECK when checking the index tree frequently encountered worst case behaviour. A very minor change to the code seems to stop this happening, often reducing the time needed for dbcheck to run by a very large amount. This problem is present in all previous 4.5xx/4.6xx releases of DBCHECK but so far has only been fixed in the 4.621 Windows/4.525 Linux software.

27 Jul dp4ed.exe
tablepln.exe

The 4.621 and 4.525 versions of these programs no longer updated the screen correctly when splitting or joining lines of text.

26 Jul dp4srvr.w32

DP4 Enterprise allows you to select index node size to use for databases. Testing has revealed that there is a problem with using node sizes 1 (1024 bytes) and 2 (2048 bytes). Only node sizes 0 and 3 worked correctly prior to this patch, as otherwise dp4srvr.w32 can hang in certain circumstances when accessing the last page of the index file. This problem has now been fixed in 4.621, but has not been fixed in 4.620.

22 Jul qabutil

The weed option of QABUTIL deleted formulas used only as a condition to access on a main table using one of the "Window" type access modes.

5 Jul reorgdb

Updated The -SORT and -ALTSORT options have not worked as intended since at least release 4.616. The effect of these two options was unintentionally interchanged, and in addition latter parts of the data file were sorted very little if at all. Also in some circumstances memory could be corrupted causing a GPF.

29 Jun tcpmgr

Very occasionally the 4.621 TCPMGR would fail to carry out operations from 4.621 clients. Generally this would cause a network error at the requester end, but in very rare circumstances no error might be reported.

4 Jun dp4srvr.w32
(built 25 May)

Fix in database manager for a bug in MAKEDB which could potentially cause serious problems when you issue a new version of a database. The bug arises if you use the "Version/Security Dialog" to set database version information, and answer yes to the question about resetting the session number. If you select this option MAKEDB updates the database header in a way that causes a database version marker to be corrupted (it is reset to 0)

This can have various disastrous consequences:

  • If the database is sent to a customer using an old(er) release of DP4 their DP4 software may succeed in opening a database which it should not be able to because of an incompatible structure.
  • If the database has been built with either enhanced index compression or a large node size the index is be corrupted. With just enhanced index compression the corruption is subtle and may go undetected for a while, or may not even arise (depending on the data and table structure). With large node size the database is completely dead, and will instantly fail dbcheck and be unopenable, though it can easily be repaired by resetting the version marker (byte 39 should be 4 if large index node size is selected).
17 May Documentation

The DP4 Documentation has been updated to refer to www.itimdp4.com rather than www.itim-ts.com where appropriate.

17 May libmake.exe

Some combinations of C++ options caused incorrect code to be generated for fields named "value"

5 Apr progrun.exe
progrund.exe
??qab?.lib

The Qsmart_position facility was not working correctly.

5 Apr tcpw.w32/tcpw.wce

The "local resilience" configuration did not work with 4.621: updating a remote table caused a spurious "Updates lost because of comms failure" message from the DP4 database manager, because an internal return code was no longer set to the value it was expecting.

30 Mar trmw32.dll

Updated to work-around a bug in Windows that could cause the screen to be corrupted when moving or clearing windows previously above transparent maps. The problem fixed could also arise with earlier releases of TRMW32.DLL (from 4.616+), but has not been fixed. Let us know if you require a fix in an earlier release of DP4.

29 Mar progmake.exe
impsetup.exe
qabutil.exe
repsetup.exe

Minor user interface glitches that could arise when running from within DP4 menu program fixed. This was caused by an obsolete "fast exit in menus" setting in DFSETUP user preferences which was not, but should have been, set by default. The new versions ignore the setting as there is no good reason to keep it.

29 Mar auxdistr.w32

(re-issue) The system database could not be updated while AUXDISTR was loaded. This fix is compatible with 4.620. The first attempt at fixing this bug broke programs that do not explicitly open the system database.

23 Mar trmw32.dll
trmwce.dll
mapedit.exe

This terminal manager incorporates a minor change to the way buttons and VCRs are displayed: the "Active Paper" color is now used whenever a button has focus (previously it was only used when the button was pressed). This may be useful if you want to provide a more prominent indication of which button has focus: edit the "Button Controls (Default)" scheme on your application database and change the "Active Paper" color.

Both trmw32.dll and trmwce.dll incorporate a minor change to allow additional COM devices to be used as MS-DOS style print devices. See the bottom of the [trmw] page in the Guide to DP4 Configuration for details.

Mapedit incorporates a minor fix - when leaving the color scheme editor changed colors were not displayed immediately.

18 Mar *.rwl
ram_db

The reserved words lists have been updated - the C++ list has been updated using the ISO C++ 98 standard. The QAB list has been updated with the current list of QAB standard variables.

ram_db has been removed from the example ADCs.

17 Mar dp4ver
dp4.hta
dp4ver.bat (DP4 version report) was not installed correctly by dp4.hta
15 Mar load

load previously had undesirable behaviour with files that had been edited by hand:

  • If a file contained a line that was blank apart from one or more space characters load would import a null record. Such lines are now ignored.
  • If a file contained a completely empty line somewhere in a list of records to be imported, load would silently ignore all the lines after the empty line. load now ignores completely empty lines, and will continue to import records in subseqeuent lines normally.
15 Mar dynaback
system database

dynaback -copy would not work with database files above 2GB in size, because it would complain about lack of disk space. It can now do so, but for time being needs a -nospace command tail.

The help message for dynaback has been updated on the system database

11 Mar tcpw.w32/wce

After certain corrupt or lost replies from tcpmgr 4.621 tcpw failed to hang up correctly, and could in fact hang up a connection to another server. This bug was new to 4.621 and did not occur in earlier DP4 releases.

5 Mar tcpw.w32/wce
tcpmgr.w32/wce
aux*.w32
usrlibt.dll
srvw32.exe
srvwce.exe
syslibce.dll

The 20th Feb fix to syslibt.dll stopped configurations with a preload section and an ADC in the [startup] section from loading correctly.

Also DP4 TCP/IP networking files issued with 4.621 were not the correct build, and therefore still contained some bugs introduced in 4.621 pre-releases.

21 Feb dfprint.exe

The file included in the first official 4.621 release was corrupt and GPFed on startup.