AUXDISTR changes for 4.622 - E4000045 - 5 Oct 2004
DYNABACK -COPY did not work reliably with AUXDISTR loaded if AUXDISTR was set up to use a duplex resilience configuration. DYNABACK would usually fail with system error 15: "Database Index File not found" just after the actual database copying had completed. The fix for this problem required additional functionality to be added to AUXDISTR, so the fixed program also includes other changes that will form part of the 4.622 release
Fixes
The new AUXDISTR incorporates fixes for two long standing bugs:
- After a network failure, AUXDISTR may fail a database commit returning the COMMS_FAILURE commit failure code. However, through an oversight, this error did not generate a system error as it should have for programs that opened the database with the QUIT_ON_FAILURE error mode, or passed the FAIL_ON_ERROR flag to the commit() function. Accordingly this could result in such programs silently ignoring a commit failure caused by a networking problem. For example running DBRECOV with AUXDISTR loaded could have resulted in a failure to correctly apply the transaction log if AUXDISTR specifies a remote "vital" server, and the server is offline when dbrecov is run.
- If AUXDISTR encountered an inter-process communication (IPC) error when passing a request to the local database mananger or the network requester, it treated the error like a network error. In some situations this could cause AUXDISTR to use 100% of the CPU. AUXDISTR now reports such errors back to the application, and does not try to recover from them in any way: IPC errors generally only occur when one or more components of the DP4 service have died for some reason, and the only solution is to stop all running DP4 processes, and to then restart the DP4 service.
Enhancements
- A new command tail −prefer_vital is added to AUXDISTR. In duplex resilience configurations AUXDISTR usually prefers to use the local database whenever possible if a fetch can be sent to any of a number of servers. When the −prefer_vital option is specified AUXDISTR will use any "vital" (−mustuse) server in preference to the local machine.
- A new net_mode is added to the network status table.
STAY_OFFLINE
allows a server to be set to permanently offline for a program.
- Two new database open flags are added which allow normal rules of network layout to be over-ridden for a particular database:
LOCAL_ONLY
and FILE_SERVER_ONLY
. For a detailed explanation of these new modes see Database Open Modes Affecting Network Layout.
DP4 Version Compatibility
4.525,4.62x
Downloads
Updated AUXDISTR and related files
621a.zip on the FTP site includes the executable files for this and all other 4.621 compatible enhancement.