DATABridge 6.1 Service Pack 3 (SP3) Release Notes

  • 7021899
  • 10-Feb-2011
  • 31-Mar-2018

Environment

DATABridge version 6.1

Situation

DATABridge 6.1 Service Pack 3 (SP3) is available to maintained users who already have DATABridge 6.1 SP2 installed. This technical note provides a list of important changes and fixes included in DATABridge 6.1 SP3, as well as those originally included in SP1 and SP2.

Resolution

Obtaining the Product

Maintained customers are eligible to download the latest product releases from the Attachmate Download Library web site: https://download.attachmate.com/Upgrades/.

You will be prompted to login and accept the Software License Agreement before you can select and download a file. For more information on using the Download Library web site, see KB 7021965.

Version Information

DATABridge components that have been updated in this Service Pack are listed below with their current version number. (Components that aren't listed have not been updated since version 6.1.)

Host

 
Service Pack 1
Service Pack 2
Service Pack 3
DBEngine version
61.001.0031
61.004.0057
61.006.0097
DBSpan version
61.001.0009
61.001.0009
61.001.0009
DBLister version
61.001.0002
61.001.0002
61.001.0002
DBServer version
 
61.004.0013*
61.006.0021
DBSupport version
 
61.002.0010
61.006.0024
DBPlus version
 
61.004.0047
61.006.0051
DBGenFormat version
 
61.004.0012
61.006.0026
LINCLog version
 
61.003.0002
61.003.0002
Sumlog version
 
61.002.0003
61.006.0004
DMSIIClient version
 
61.004.0005
61.005.0006
DMSIIClientLib version
 
61.004.0003
61.004.0003

Enterprise Server

 
Service Pack 1
Service Pack 2
Service Pack 3
DBEnterprise version
61.001.0061
61.004.0082
61.006.0113
DBDirector version
61.001.0006
61.004.0006
61.004.0006
LINCLog version
 
61.003.0005
61.006.0005

Client

 
Service Pack 1
Service Pack 2
Service Pack 3
dbutility version
6.1.0.1
6.1.0.4
6.1.6.027
DBClient version
6.1.0.1
6.1.0.4
6.1.6.027
DBClntCfgServer version
6.1.0.1
6.1.0.4
6.1.6.027
DBClntControl version
6.1.0.1
6.1.0.4
6.1.5.013
dbctrlconfigure
 
 
6.1.5.013
dbfixup version
6.1.0.1
6.1.0.4
6.1.6.002
dbscriptfixup version
6.1.0.1
6.1.0.4
6.1.6.027
migrate version
6.1.0.1
6.1.0.4
6.1.6.016
dbpwenc version
 
 
6.1.6.018

All other Client utilities are version 6.1.0.0.

Note: Service Packs 2 and 3 include clients for HP-UX Informix (32- and 64-bit) and DB2 (32-bit only).

*DBServer version 61.004.0013 is provided in updated Service Pack 2 effective 18-Nov-2011. DBServer version 61.004.0012 was provided in original Service Pack 2 from 07-Sep-2011 through 08-Nov-2011.

File Structure

The Attachmate DATABridge Service Pack uses the same directory structure as the release DVD to help you locate the appropriate update file for each product.

Please note the following:

  1. If you installed the Client Console as a stand-alone application (that is, using Console\Windows\setup.exe from the 6.1 base release), run the setup.exe file from the corresponding directory.
  2. If you installed the Client Console and the Client together (that is, by running the setup.exe file in the Windows32 or Windows64 directory and selecting the Console from the Feature Selection tab) run the databridge.D61.xxxx-servicepack.Wnn.exe (Service Pack 2) or databridge.D61xxxx.Wnn.exe (Service Pack 1) file from the appropriate Windows32 or Windows64 directory. This file updates both the Windows Client and the Client Console.

WARNING: You cannot update a 32-bit install with a 64-bit patch or vice versa. If you try to do this you will get an error. You must uninstall the 32-bit software 6.1 release software and install the 64-bit 6.1 release software before you can update it with the 64-bit update file.

Installation Instructions

Before you install the Service Pack, quit all DATABridge applications including the Console, and then terminate the service/daemon. After the installation is complete, restart the service/daemon manually.

IMPORTANT: To avoid potential problems, we strongly recommend that you upgrade the Host and DBEnterprise software to 6.1 Service Pack 3 simultaneously.

We also recommend that you update the Client Console if you're updating the Client software, particularly if you use the configuration aspect of the Client Console (that is, Client Configurator). This will ensure that your data is interpreted correctly, as the lengths of some fields have changed.

DATABridge Host

  1. On the MCP Server, upload DB61ServicePack.con using binary or image file transfer.
ftp my_aseries_host
<login>
bin
put DB61SERVICEPACK.con DB61SRVPACK
  1. Log on to the DATABridge usercode on the host and go to CANDE.
  2. To unwrap encapsulated files in the DB61ServicePack.con file, use the following command:
WFL UNWRAP *= AS = OUTOF DB61SRVPACK TO DISK (RESTRICTED=FALSE)

DATABridge Console (Windows only)

To install the Console separately, from the Console\Windows\setup.exe directory, run the setup.exe file. Make sure to reinstall the Java Runtime Environment (JRE) as this is automatically removed by the setup.exe file, along with the older version of the Console. If you changed the default install directory for 6.1, you must specify this location.

DATABridge Client and Console

  • On Windows, open the Windows32 or Windows64 folder of the Service Pack and double-click the file databridge.D61xxxx.Wnn.exe (Service Pack 1 or 3) or databridge.D61.xxxx-servicepack.Wnn.exe (Service Pack 2)). Select the same features that were selected in the original installation, such as the Java Runtime Environment (JRE). Both the Client and the Console components will be updated.
  • On UNIX, upload the appropriate tar files for the Client and Console from the Service Pack to the directories where these components are installed. (Optimally, the Client and Console are installed in separate directories to facilitate maintenance.) If you use Windows to process the extract of the tar file from the zip file, you must transfer the tar file to UNIX using binary FTP.)

Then, use the following command:

tar -xvf <filename>

where <filename> is the full name of the tar file. This command replaces the Client (or Console) files in the DATABridge install directory with updated files from the tar file.

Note: To avoid accidentally deleting the DATABridge applications, we recommend that you always keep the install directory and the working directory separate.

DATABridge Enterprise Server

Installing Service Pack 3

Before you can apply the DBEnterprise 6.1 SP3 update, you must have DBEnterprise 6.1 SP2 installed. If you're using an older version of DBEnterprise server, uninstall it and then install DBEnterprise 6.1 SP2 by double-clicking the DBE61SP2setup file, which is included in the DBEnterprise folder. The setup program will automatically start the DBDirector service. Existing source definitions will be preserved.

To upgrade to SP3, double-click upgrade.exe located in the DBEnterprise folder. The DBDirector port number and existing source definitions will be preserved.

Known Issue with Service Pack 2

After installing Service Pack 2, if Enterprise Server returns the message,

Activation context generation failed ...

or

The application has failed to start because its side-by-side configuration is incorrect

when you try to run it, download and install the Microsoft Visual C++ 2008 Redistributable Package (x86) from the Microsoft Web site. Make sure that you install the 32-bit version (x86) even if you run 64-bit Windows. If the DATABridge Client is unable to connect to DBEnterprise, similar messages may appear in the Windows Event Log for DBDirector. There is no need to reinstall Service Pack 2 after installing the Visual C++ Redistributable Package.

Installing Service Pack 1

Before you install, stop DBDirector. From the Start menu, select Attachmate DATABridge > DATABridge Enterprise > Stop DBDirector.

To install Enterprise Server (DBEnterprise) 6.1 Service Pack 1, double-click the file dbesetup.cmd in the DBEnterprise folder. This command file will install the correct version of the software based on the operating system architecture (32-bit or 64-bit). The data sources that are saved in the Windows Registry and text configuration files are preserved when you install the service pack.

After installation is completed, start DBDirector. From the Start menu, select Attachmate DATABridge > DATABridge Enterprise > Start DBDirector.

Issues Resolved by Service Pack 3 (July 2012)

Service Pack 3 introduces support for SSR 55.1 (MCP 14.0) in all DATABridge products and components.

Service Pack 3 resolves the following issues:

DBEnterprise

  • The Remote Records mode, used when reading the Sumlog, was corrupting the UpdateInfo and resulting in data errors.
  • In cases where a day or more passed between audit blocks, the block timestamp was sometimes computed incorrectly, which led to "invalid audit location" errors. When DBEnterprise retrieves the correct lower bound time, it now reads the prior audit block to ensure that the timestamp is computed correctly.
  • DBEnterprise was not validating the starting audit location timestamp. DBEnterprise now logs both the supplied timestamp and the timestamp found in the audit block if they differ.
  • Audit files larger than 4 GB were causing errors, such as:
[1180] Block first ABSN (4059265780) not = dup ABSN (3072)

Also, certain stopping points resulted in "invalid audit location" errors.

  • Some variable format control updates in the audit trail were causing the following error:
[0091] Error in TOUSER.
  • DBEnterprise now partially supports data items that have the DATAMASK (obfuscation) attribute. These data items will be sent to the client but will not be unscrambled.
  • The LINCLog library was failing at the start of a clone.

DBEngine

  • The secondary database was missing updates when DBTwin loaded an online dump from a database with Long Transactions in progress.
  • If the transaction immediately following an aborted transaction group was also aborted, the updates were being sent as normal updates rather than reversals.

The audit location in StateInfo will now point to the audit record indicating the quiet point rather than the first record after the quiet point. For example, it will point to the Begin Transaction record rather than the first record after the Begin Transaction.

  • DBTwin was discarding updates for data sets that did not have a NO DUPLICATES set and had a non-word boundary record length.
  • DBEngine now supports links in DIRECT, UNORDERED and STANDARD data sets. (Previously, only fixed-format STANDARD was supported.) Links in variable-format data sets will be cloned but not tracked.

The new DBLinksVF entry point returns link items found in any record type. It is analogous to DBLinks, which returns link items declared in only the fixed format portion.

  • The new DBEmbeddedSubsetAAs entry point returns the record addresses from the embedded subset entries belonging to the parent record specified in the UpdateInfo parameter.
  • If the total size of links in a record exceeded the size of data size of the largest data set record, the Accessroutines would fail with a SYSTEMERROR.
  • The new DBGetStateInfo entry point returns the StateInfo for a given selected structure.
  • If a data set containing links was cloned and was also a base data set for a virtual data set, some of the UpdateInfo was left over from the virtual record.
  • A previous patch caused DBSupport to be recompiled if it had the wrong update level even if it already existed with the proper update level in the last node of title if there was no ON part in the specified title.
  • In some situations where data sets were selected having different audit locations with different update levels, the DBSelect entry point was returning error DBM0096 "DBSupport needs to be recompiled" even though a DBSupport existed for each update level.
  • Transforms using the DBEmbeddedSubsetAAs entry point were getting DMSII verb security violation errors if the database had a guard file and the FIND verb was not listed for the DBEngine entry. The guard file entry should look like this:
PROGRAM (<usercode>)OBJECT/DATABRIDGE/ENGINE ON <family> = RW,
DMVERBS = (OPENINQUIRY, OPENUPDATE, FIND);

DBEngine now contains additional locking to prevent errors due to simultaneous use of the database when there are multiple Extract Workers.

  • The DBAttribute entry point was returning a NO FILE error if the title contained quotes.
  • The COBOL entry points DBLAYOUTLIST, DBITEMINFO01, DBITEMNUMINFO01, and DBKEYINFOLIST are now compatible with long ALPHA items.
  • The DBDATASETSLIST entry point will display an error message describing any I/O error it encounters when it tries to write to the caller's file.

DBGenFormat

  • DBSupport libraries now support links in the variable format portions of records.
  • A VIRTUAL or ALTERed data set can now declare a data item as a link using the following syntax.
<itemname> IS IN <dataset>

The data item will be a 6-byte binary word that is assumed to be in AA (Absolute Address) format.

  • A data item in a VIRTUAL data set can have the PARENT option, which indicates it is part of a partial key for deleting child items. Items with an OCCURS clause cannot have the PARENT option. Example:
VIRTUAL HISTORY #2010
(
HIST-SEQ-NBR NUMBER (8);
HIST-ASSN NUMBER (4) PARENT;
HIST-DATE NUMBER (YYYYMMDD);
HIST-TEXT ALPHA (50);
);
  • A VIRTUAL or ALTERed data set can now declare a data item as a an AA word using the following syntax.
<itemname> AA

The data item will be a 6-byte binary word that is assumed to be in AA (Absolute Address) format.

  • The VirtualTransformSetup now invokes the GetUIMask define in DBSupport to retrieve the UIMask for virtual data sets.

DBInterface

  • Added IIF_AA data item format type for pseudo links.
  • Added II_PARENT_KEY flag in data item for partial key.

Defined update type DBV_DELETE_ALL (10).

  • Added DBGetStateInfo entry point.

DBServer

  • The DBS_Layout RPC now includes a flag corresponding to the PARENT option for a VIRTUAL data set data item. The flag is bit 4 of the byte containing the Signed bit.
Byte Signed (bit 0)
DescendingKey (bit 1)
Required (bit 2)
RawOffset (bit 3)
Parent (bit 4)
  • DBServer now supports the new DBV_DELETE_ALL update type.

DBSupport

  • The GetUIMask define allows a transform to retrieve additional information for setting up UpdateInfo when sending a virtual data set record.
  • If a data set was reselected after being deselected, the DBServer Worker would fault with an INVALID INDEX.

MiniLister Sample

  • If DBInitialize fails MiniLister will now print out the error message.

Sumlog Reader Sample

  • When cloning Sumlogs from another system, the DBServer Worker would wait on a NO FILE for the next file, which didn't exist. A response of NF would cause the clone to fail. Now the clone will complete normally after it reads all of the available files from the foreign system.

DBPlus

  • DBPlus now supports functionality for audit level 8, which was introduced in SSR 55.1 (MCP 14).
  • If the requested ABSN was less than or equal to the serial number in block 0, DBPlus would loop indefinitely. DBPlus now returns an error.

Client

  • The Client supports larger ALPHA items and record sizes, introduced in SSR 55.1 (MCP 14). If ALPHA items are too large to be stored as CHAR or VARCHAR, they're stored as TEXT (SQL Server client) or stored using CLOB (Oracle client). Oracle 11g limits ALPHA items to 32K; the same as parameters in a PL/SQL stored procedure. Prior versions limit ALPHA items to 16K.

If you set the DIOPT_Split_Item bit (4) in di_options, the item is split into two columns instead of being truncated.

  • Several changes were made to how the client handles DMSII links:
    • LINKS with OCCURS clauses are now handled the same as other items; the client either stores the LINK in a secondary table or flattens the OCCURS.
    • LINKS in variable format data sets can be tracked, but not updated. A new parameter track_vfds_nolink (True, by default) lets you track changes for these data sets.
  • A new command-line switch "-y" for dbutility reclones data sets whose ds_mode is 11 or 12, eliminating the need to run a redefine command or use the database query tool to change the ds_mode to 0 for these data sets.
  • The command-line switch "-T" for trace files no longer has an argument. It works exactly like the "-L" switch for log files. The client uses a new trace file, whose name is determnined by the client.
  • The client couldn't identify the source of the index when a PRIMARY KEY statement was included in the GenFormat file and a SET was available for use as the index. The index name used the set name instead of "user_set_<tablename>".

The client now uses the prefix "pk_set" instead of "user_set" for index names that originate from a PRIMARY KEY statement in GenFormat. The client handles this the same as "user_set". However, this index cannot be modified in the Client Configurator. When you run a redefine command, the name change becomes apparent, and you'll be prompted to run a reorg command that simply renames the index.

Issue Resolved by Updated Service Pack 2 (November 2011)

The updated Service Pack 2, which released on 18-Nov-2011, resolves the following issue:

DBServer

  • When using DATABridge Enterprise Server to clone a database using Indirect Disk, DBServer would close some database files with CRUNCH (that is, the CRUNCHED file attribute of the data sets was set). This could cause DMSII Recovery to fail with attribute errors; the DMSII Accessroutines to encounter an error when trying to increase the size of a data set; and your database to get fatal errors. This problem only occurred when Service Pack 2 was installed for the DATABridge Host 6.1 and the database was cloned using the Indirect Disk method in Enterprise Server 6.0 or later. If you experience this problem, please contact Attachmate Technical Support for assistance.

Issues Resolved by Service Pack 2 (September 2011)

Service Pack 2 resolves the following issues:

DBEngine

  • When processing records for EXTENDED data sets, DBTwin encountered errors, such as DUPLICATES and storing records with the data shifted.
  • If records were updated on the primary database while performing a DBTwin CLONE command, the corresponding records were not found in the secondary database, resulting in DUPLICATES errors and/or failed deletes.
  • If a data set and one or more of its remaps were cloned at the same time, the extracted records sometimes contained duplicates.
  • If the DBEngine requested an ABSN that exceeded the last ABSN of a sectioned audit file, the Unisys DMAuditLib would erroneously return an ABSN sequence error, causing the following DBEngine error:
[0100] Incorrect ABSN in block after AFN=<afn> ABSN=<absn>

To avoid this problem, DBEngine now handles a DMAuditLib ABSN sequence error as an end-of-file result code.

DBPlus

  • If the segment in the StateInfo was incorrect, the search for the ABSN would fail. This resulted in an error which prevented the client from processing audit files, unless the StateInfo was manually changed. The ABSN search is now done from the end of the audit file to circumvent this problem.
  • A partial block sometimes caused an integer overflow, which caused the server worker to terminate abnormally. Additional checks for valid audit block size were added to prevent this from happening.
  • DBPlus now strips the section number from the segment before it is returned to DBEngine, as the extra bits can create problems in DBSpan.

DBGenFormat

  • If the USING clause referenced a subset with a long WHERE condition, DBGenFormat would terminate abnormally with a SEG ARRAY ERROR.

DBEnterprise

  • If the database has INDEPENDENTTRANS reset, DBEnterprise will no longer test each update to see if it has been aborted since they cannot be aborted with that option reset.
  • DBEnterprise was failing to detect DMSII rollbacks, which allowed obsolete updates to be sent to the client database. If the client's StateInfo contains either an audit location that has an ABSN greater than the current DMSII ABSN or a timestamp that differs from theactual audit timestamp by more than one second, DBEnterprise will look for an audit record that indicates the database has been rolled back and return an error message, such as:
[0120] Database rolled back to [156:940590:1:10] Monday, May 09, 2011 @ 12:25:44 PM

where the audit location of the rollback point is in the format [<afn>:<absn>:<seg>:<inx>]. The client database must be rolled back to a point preceding this audit location before attempting to track updates.

If DBEnterprise is unable to find a DMSII rollback, it returns one of the following errors:

[0011] Invalid audit location AFN <afn>, ABSN <absn>, Inx <inx> (ABSN > active ABSN <activeabsn>)
[0011] Invalid audit location AFN <afn>, ABSN <absn>, Inx <inx> (<date>)
  • DBEnterprise now uses MFC (Microsoft Foundation Classes) as a shared dynamically linked library (versus a statically linked library) to ensure that DBEnterprise uses the most current libraries available from Microsoft. Consequently, the size of the installed DBEnterprise program is smaller than in previous releases.
  • DBEnterprise can now copy files both to and from the MCP environment. For details, see the section “Bidirectional File Transfer†in the DATABridge Enterprise Server Help, available from https://support.microfocus.com/manuals/databridge.html.

Use the following command-line syntax after the DBEnterprise program name:

COPY "localname" { TO | AS } (usercode)MCPName [ ON family ]
[ { FROM | VIA } ipnameoraddress ] [ PORT portnbr ]
[ TEXT | BINARY ]
COPY (usercode)MCPName [ ON family ] { TO | AS } "localname"
[ { FROM | VIA } ipnameoraddress ] [ PORT portnbr ]
[ TEXT | BINARY ] [ INDIRECT ]

The TO keyword indicates that the destination is a folder; the AS keyword indicates that the destination is a filename. However, if the source consists of multiple files, the destination will be treated as a folder even if the AS keyword is used. The FROM and VIA keywords are synonymous. All keywords and MCP filenames are case insensitive.

Examples:

copy "e:\batch\data\*.txt" to (frompc)batchfiles/= on user via "192.168.16.1" port 6100

copy "y:\logs\dailyrun.log" as (admin)logfile/daily on prodpack

COPY (PROD)DATA/SPAN/= ON DBPACK TO "D:\BACKUP\SPAN\DATA"

The old XFER command is still valid for copying files from the MCP environment to the Windows environment except that the Windows directory name must be enclosed in quotation marks.

When files are copied to the MCP environment, any nodes containing characters that are invalid in MCP titles will be enclosed in quotation marks. Nodes longer than 17 characters will be truncated if the SYSOPS LONGFILENAMES option is reset.

When MCP files are copied to the Windows environment, the slashes that separate filename nodes are converted to the percentage sign (%) and the quotation marks are removed. Use the AS syntax to specify any other desired target filename. (The Windows file title will no longer include the "ON <familyname>" part. However, you can add it by using the AS syntax.)

To run DBEnterprise commands from a command prompt on Windows 7, Windows Vista, or Windows Server 2008, you must use the “Run as Administrator†option.

The folder in Logs is now called "Copy from <ipaddress>" for files copied from the MCP environment to Windows and "Copy to <ipaddress>" for the reverse.

When a syntax error occurs, if the attempted command can be determined,a dialog box will appear with the correct syntax. If the attempted command cannot be determined, the dialog box will show the syntax for all commands as it did previously.

  • The debug version is no longer installed with Enterprise Server. However, the tracing capability of the debug version is now included in the release (non-debug) version of Enterprise Server. You can control tracing via the "Enable tracing" check box in the DATABridge Director dialog box.
  • If the ALGOL text for a WHERE clause or VIRTUAL data item value contained the division operator or the exponent operator (@), the filter generation would fail with the error:
[1110] Filter routine failed.

If the ALGOL text for a WHERE clause or VIRTUAL data item value contained a short string literal with a FOR part, the data was not properly translated between EBCDIC and ASCII and incorrect characters would appear in the data item.

If the ALGOL text for VALIDRECORD or WHERE, etc. referenced a DASDL REAL item, the expression was evaluated incorrectly and the wrong or invalid records were replicated.

  • If a data set and one of its remaps were both selected for cloning, the records for the data set clone would be corrupted.
  • If a remap had a virtual data item that was computed from other items in the original data set record, the resulting value would be incorrect. Due to differences in the way floating point calculations occur on Unisys mainframes and Windows machines, the value of a virtual item in a remap may be slightly different on the two systems if data items with decimal points and/or divisions are involved.
  • Certain records in embedded UNORDERED data sets were not being extracted during a clone.

DMSII Client

  • If a new GROUP was added to a remap that contained existing data items, the DASDL compile would terminate with syntax errors.
  • If a signed NUMBER item was used as a key, the DMSII Client could not find records that needed to be modified and would try to convert the update to a create. This resulted in DUPLICATES errors.
  • If records were deleted from the primary database during a clone, when the DMSII Client encountered the deletes during the fixup phase it would display the error:
>>> [4010] DMS Error: NOTFOUND : PRIMARYKEY-nnn OF <db> : NO RECORD SATISFYING CONDITION <<<.

Similarly, creates during a clone could result in the error:

>>> [4010] DMS Error: DUPLICATES : PRIMARYKEY-nnn OF <db> : DUPLICATES NOT ALLOWED IN THIS INDEX SET (STORE)

Even though these errors are normal, the DMSII Client will no longer display them during fixup mode.

* The DMSII Client was unable to find records having numeric keys with decimal points, for example, NUMBER (5, 2) or NUMBER (S7, 3). This resulted in DUPLICATES and other errors.

* The DMSII Client Library will now display its version information at startup.

Client

  • Running a redefine command when the client expected a reorg command caused fatal errors when the client tried to process audit files. This problem has been corrected by adding checks to the redefine command, which prevent it from running in this situation. In addition, a message will now appear stating that a reorg command must be run first.
  • The exit code of a redefine command initiated by the service was not being interpreted correctly. As a result, the log file and console output contained the following error:
"ERROR: redefine command failed to complete"

This caused users to rerun the redefine command, which led to the aforementioned situation.

  • The Client Configurator was losing changes to the active column of the DATASETS table for a REMAP that was being replicated instead of the base data set.
  • The -a option for the migrate utility was not working correctly.
  • The service sometimes caused the Client Console to hang when the Console issued an RPC destined to a spawned client that was in the process of terminating.
  • The client received SQL errors when updating history tables that contained DMSII LINKS.

Issues Resolved by Service Pack 1 Hotfix 2

This hotfix resolves the following issues:

DBEngine

  • DBEngine was not adopting the corrected Seg value returned from DBPlus. This resulted in DBEngine providing incorrect Seg values for all subsequent blocks.
  • If the database had not been opened following a DASDL update or reorganization, subsequent tracking runs would terminate with one of the following two errors:
[0096] DBSupport needs to be recompiled
[0009] <database> audit file <afn>: Unexpected end-of-file
  • DATABridge is now qualified on the DMSII 54.1 release.
  • IC DMSII-054.1A.15 changed the procedure parameters for several of the DMSupport entry points. This caused fatal errors, such as:
DBEngine:Object DATASET_TEXTS: Type or parameter mismatch in Interface DMSUPPORT to Library
  • If DBTwin selected data sets in fixup mode and their audit locations had SEG = 0 or INX = 0, DBTwin would quit with an "invalid audit location" error.
  • If the first data item in the restart data set had a size of 6 bytes or greater and was the key of a set, DBTwin would terminate with the error:
KEYCHANGED : <restartds> of <database> : THE KEY OF AN AUTOMATIC
SET (NO DUPLICATES) CHANGED

  • DBTwin was discarding updates to the global record.
  • DBTwin was zeroing the last 6 bytes of modified records.
  • If DBTwin was run with a logical database, it would terminate withthe error:
[0003] Caller canceled in DBReadTranGroup

And if the logical database used remaps, the corresponding data set would not be selected for the CLONE command.

DBServer

  • If DBTwin tried to process an audit block larger than 10922 words, the DBServer Worker would fault with the error:
SEG ARRAY ERROR @ (81610100)

LINCLog Reader

  • The Reader assumed that the filenames always had 3 nodes; the file number being the third node. If the files were retitled so that that this was not the case, the Reader would not read any of the files and clones (for example, it would result in 0 records). Now, filenames can have any number of nodes as long as the last node contains the file number.

DBGenFormat

  • If the parameter file contained a large number of WHERE clauses, the the compile of DBSupport would fail with a syntax error that stated a string was too long.

Client

  • Code has been implemented to allow a new set of user scripts to alter the stored procedures created by the client. The scripts in the files script.user_create.<tabname> can now be split into two parts. The script files script.user_create_sp.<tabname> are provided for altering the stored procedures. If these scripts exist, they run at the start of the data extraction when a table and its stored procedures are created. During a refresh command, or during a reorg command, which alters a table, the second script is run to allow the user to restore the changes that were made to the stored procedures for a table.

Note: This change has no effect on the client unless these new types of scripts are created and placed in the user scripts directory.

  • The bcp_auditor program's hex representation of the localized form of the "rows loaded" message caused the program to get an access violation.
  • The DBClntServer program would looped whenever the service crashed. It was trying to send the console a message without checking whether the connection was open.

Issues Resolved by Service Pack 1 Hotfix 1

This hotfix resolves the following issues:

DBEngine

  • If more than one data set was removed during a DASDL update, incorrect values were reported for the old and new update levels in the warning message.
  • If the RSN is the key of a set, the DBPrimaryKey entry point would return the RSN item as the primary key. Because the nontailored DBSupport doesn't support RSNs, this resulted in an empty list of key items. The DBPrimaryKey and set enumeration entry points now exclude sets with RSN key items when using a nontailored DBSupport.
  • If DBSupport has the update level as the last node in its title, the DBSupport library would not be automatically recompiled in DBCompileSupport.
  • When reading a sectioned audit file, the DBReadAuditRegion entry point was setting the NextRegionOfs to the offset of the next block in the same section instead of the offset of the block corresponding to NextRegionABSN (which is in another section).
  • The layout of the DMSII CONTROL file changed slightly in the DMSII 54.1 release. This change caused DBM0029 errors when DBEnterprise tried to clone sectioned data sets.

DBServer

  • If the client terminated the connection while a Worker was trying to send the client an update, the message stated, "Caller canceled in value_4". This message now correctly states, "Caller canceled in SendMessage".
  • If DBSupport has the update level as the last node in its title, the DBSupport library would not be automatically recompiled in DBCompileSupport.

DBGenFormat

  • The DBSupport compile was getting syntax errors for databases that contained a large number of structures even though these structures are allowed by a DMSII Interim Correction (DMSII-053.1A.17).
  • If the database contains more than a combined total of 1023 data sets and variable formats, DBGenFormat would fail and display the error, “INVALID INDEX @ (60390000).†DBSupport compiles would sometimes receive a syntax error due to truncated lines in a generated patch file.
  • The following generated INCLUDE files (PATCH/DATABRIDGE/SUPPORT/<filename>/...) are no longer used and can be removed:
GENKEYTEXT
GENKEYS
GENDATASETS
GENITEMDESCS
GENITEMNULLS
  • If a filter refers to a non-existent data set, DBGenFormat would fail due to an INVALID OPERATOR fault.
  • A DBSupport compile would fail with syntax errors if a database has no sets (for example, a FileXtract database).

DBSupport

  • DBSupport can now handle databases that have more than 1023 datasets (as allowed by IC DMSII-053.1A.17).
  • The nontailored DBSupport did not export DBExpandCode, causing an F-DS fault termination if the database contained a COMPACT data set.
  • The DBUnRemapItemInfo entry point in a nontailored DBSupport was returning an error for VIRTUAL items rather than setting the ItemInfo to all zeroes.
  • The nontailored DBSupport was returning incorrect data item offsets if a data set contained embedded data sets or links, or was the target of links.
  • A DBSupport compile would fail with syntax errors if a database had no sets, for example, a FileXtract database.

DBEnterprise

  • After processing a non-cached local source that has a cached base source, DBEnterprise failed to remove the base source cache file.
  • When DBEnterprise called another copy of DBEnterprise to get data set info for a clone, DBServer would always return the error:
[0079] Invalid structure number: 0
  • Using Indirect Disk, DBEnterprise would get a checksum or read error if the data set file was larger than 4 GB.
  • When cloning a FileXtract source using Direct Disk or Indirect Disk, DBEnterprise was leaving the data sets in fixup mode until the next replication run. All updates from FileXtract sources during normal replication (not cloning) were being discarded. In addition, each time DBEnterprise reached the end of a host disk file, the log showed an error message similar to the following:
DBEnterprise: [0921] End of file <file title> on read

This message will no longer appear in the log.

  • If the host filter specified a number greater than 2,147,483,647 in the WHERE clause, DBEnterprise would generate the filtering code incorrectly. This caused DBEnterprise to send incorrect or missing records to the client.
  • When extracting a data set that has multiple sections, DBEnterprise would start a thread for each section, even though the sections were read consecutively. These threads did not terminate as quickly as they should have.
  • The READER ... USING ... option in the DBServer SOURCE declaration can now specify an AFN or an ABSN range for FileXtract sources whose file numbers fall outside the normal range of DMSII audit files (1 to 9999) or use block numbers other than 2 to 0xFFFFEEEE. See the DBSupport section for the syntax and an example.
  • If you resumed replication by pressing the Resume button on the Replication dialog after pressing the Pause button, DBEnterprise would hang.
  • If the database had INDEPENDENTTRANS reset, DBEnterprise would discard updates.
  • DBEnterprise would treat a pseudo syncpoint as a quiet point if the last program to leave the transaction state executed a normal (rather than pseudo) end transaction. Consequently, DBEnterprise would sometimes commit during a Long Transaction, even though COMMIT DURING LONG TRANSACTIONS was false.

LINCLog.dll

  • The Reader was not constructing the file title correctly for file numbers less than 100. The Reader now supports the USING syntax for specifying an AFN range.
  • The READER ... USING ... option in the DBServer SOURCE declaration can now specify an AFN or an ABSN range for FileXtract sources whose file numbers fall outside the normal range of DMSII audit files (1 to 9999) or use block numbers other than 2 to 0xFFFFEEEE. The syntax is:
READER [ "<readertitle>" ]
USING "<directoryname and/or other parameters>
[ ; AFN <minAfn> - <maxAfn> ]
[ ; ABSN <minAbsn> - <maxAbsn> ] "

For example,

Reader "OBJECT/FILEBRIDGE/READER/LINCLOG"
using "(EAE)G1/LINCLOG/= ON LOGDISK; AFN 1 - 998"
  • If a log file was missing, the Reader would compute an invalid audit location. After the log file was restored, the Reader would try to read the invalid location in the file and return the error, DBM0045.

SUMLOG Reader

  • The $ POST60 option caused the wrong code to be compiled, which resulted in data errors in SUMLOG_LIB_LINK and SUMLOG_LIB_DELINK.
  • If a SUMLOG file was missing, the SUMLOG Reader would search for it indefinitely with no indication that a file is missing. The SUMLOG Reader now returns an error immediately if the file isn't found.

DMSII Client

  • If the client database contained a data set whose name uses the form <node1>-<node2>... where node is the same as a variable declared in the DMSII Client Library source (for example COR), the Library compile would fail with syntax errors.
  • If the record type item for a variable format data set was a half byte and the first data item was a NUMBER or FIELD, the records in that data set would be misaligned, resulting in DATAERRORs.

Note: If your client database is affected by this problem, it must be regenerated.

Client

  • The service mishandled console sign-on requests when the session number reached 100. The sign-on request was rejected with the status of 3010 (Data Source not found).
  • If the bulk loader fails during the data extraction phase, the client would exit with an exit status of 9. Because this exit status is reserved for the DATABridge Engine, the client now uses an exit status of 2047 for this type of failure.
  • If scheduling is enabled in the command-line Client, the Client would exit after receiving a DBM007 error from the DATABridge Engine. This happens if READ ACTIVE AUDIT is FALSE in the Engine control file and the client tries to execute an Open Audit RPC for that file. The client no longer treats this situation as an error.
  • A configuration file scheduling parameter was implemented for dbutility and DBClient to replace the stop_time and end_stop_time columns in the DATASOURCES client control table. The advantage of the parameter is that the client performs its checks before signing on to the database. Additionally, if the Client is waiting for updates from the Engine on an idle system, it will break out of the wait. In the [scheduling] section of a text configuration file, enter these values on a single line, using the form:
blackout_period = hh:mm, hh:mm

where the hh:mm values (times) must be different. The exception is when both values are 00:00, indicating there is no blackout period in effect. To implement this parameter in binary configuration files, use the export/import commands. (See Appendix D in the Client Administrator's Guide.)

  • The service was modified to prevent an exit status of 2020 from disabling the data source. This status is generated when the client encounters a blackout period. The service handles this status in the same way as a connection failure and periodically retries until the blackout period ends.
  • In an environment involving a client outside the firewall, several different exit statuses were generated depending on how the client startup failed. The service did not handle most of these as connection failures and disabled the data source. The client has been modified to treat all startup errors as connection failures and return an exit status of 2007.
  • When a GROUP is a member of the SET, and that SET is being used as the source of the index, GROUP items were counted as keys. Furthermore, the keys in a GROUP were being counted twice. As a result, the computed number of keys in an index was too great. This caused the client to erroneously declare that the index had more columns than the database allowed. It then reverted to using AA Values, even though there was nothing wrong with the index.
  • When using the Microsoft SQL Server database, if the server name includes a period (except in the domain name extension) the name is truncated at the period when it is passed to the Client. This was resulting in bcp failures, because the server name is used on the bcp command line. The client now retrieves the server name from the Windows registry instead of the ODBC data source, if the new [signon] configuration parameter, use_odbc_reg, is set to True. To implement this parameter in binary configuration files, use the export/import commands. (See Appendix D in the Client Administrator's Guide.)
  • The dbscriptfixup program erroneously printed a WARNING for every data item whose table_name column was changed by a user script.
  • A complete reclone of a MISER database would fail because the Client erroneously concluded that there was an outstanding reorganization in the audit trail.
  • For SQL Server clients on SQL Server 2008, the handling of the use_date configuration parameter by the define and redefine commands has been enhanced. If datetime or datetime2 contain no time values, SQL Server 2008 will alter a column and change the data type from datetime (or datetime2) to date. This change has no effect when using versions of SQL Server older than 2008.
  • The redefine command was not correctly handling reorganizations that cause a MISER data set to be re-cloned. This resulted in bcp failures.
  • The bulk load count verification code did not work for tables that preserve deletes or multi-input and multi-source data sets. This has been corrected by taking into account the initial row count of the table, which was previously assumed to be 0.
  • When using binary configuration files, LINC dates were off by one day when the parameter linc_century_base was set to a value of 1900 or less.
  • When executing an Add Existing Data Source, if there was a problem with the configuration file, the client would immediately exit and the console would hang. In this case, the client now connects to the service before exiting, allowing the console to display an error that describes the problem.
  • The redefine command and the Client Configurator were not properly preserving changes to the active column of the DATAITEMS Client control table. These changes originated in legacy scripts.
  • When replicating a FileXtract data source, DBClient would make excessive calls to get the DMSII audit information the console needs to draw a progress bar. This created a huge number of file open entries in SUMLOG.

Issues Resolved by Service Pack 1

This service pack resolves the following issues:

DBEngine

  • If DBSupport invoked a database and the database DESCRIPTION file is on a different family that the one specified in the database name parameter of DBInitialize, an automatic recompile of DBSupport would wait on a NO FILE (...)DESCRIPTION/... ON <dbparamfamily>.

For example, if DBSupport invoked database "EXCLUDEDB" which had a DESCRIPTION file on the DATABridge software family, when DBInitialize is called with the parameter "DESCRIPTION/PRODDB ON DBPACK," then the DBSupport recompile would wait on

NO FILE (...)DESCRIPTION/EXCLUDEDB ON DBPACK
  • If the database was being updated during a DBEnterprise clone and then a data set was closed because the last update program finished and then DBEnterprise tried to clone that data set DBEngine was returning:
[0029] DMS error: <datasetfile> [<newtimestamp>] but CF has [<oldtimestamp>].

This caused DBEnterprise to abandon the Direct Disk clone and revert to a Remote Records clone using DBEngine. This has been corrected so that DBEngine reads the DMSII CONTROL file with direct I/O to avoid getting stale information.

DBSpan

  • During a multi-worker extract, various errors were possible in setting file titles.
  • If the DBSupport library specified in the parameter file is missing, DBSpan would hang, waiting for a lock.

DBLister

  • The primary key items for virtual datasets were listed with incorrect names.

DBLister will now report any errors it encounters when calling entry points DBEngine or DBSupport. Also, the report will now show the actual item count for virtual data sets instead of zero.

DBEnterprise

  • If both a dataset and its remap were selected (such as by the Cacher) and DBEnterprise encountered a reorganization, it would go into a loop that could not be terminated.
  • In certain situations when reading the active audit file, DBEnterprise would terminate with the error DBM0045 and report in the log "Bad family index 0 for <auditfamily> ...".
  • DBEnterprise would abandon a Direct Disk clone (and revert to a Remote Records clone using DBEngine) after trying to clone a data set that had closed because the last update program finished. DBEngine returned the following error when this occurred:
[0029] DMS error: <datasetfile> [<newtimestamp>] but CF has [<oldtimestamp>].

This patch requires DBEngine version 61.001.0030 or newer.

  • When DBSpan used DBEnterprise for reading the audit trail the returned audit regions were corrupted.
  • The PRINTAUDIT report printed incorrect values for the stack numbers.
  • Modifies received from DBEngine via Remote Record tracking caused data errors, such as "illegal digit" or missing records.
  • Later versions and updates of the Windows OS prevented the display of the replication dialog.

The replication dialog is now displayed on the logged-in user's desktop. This patch requires DBDirector 61.001.0005 or later.

  • DBEnterprise discarded records during a clone if they consisted entirely of binary zeroes, which is sometimes a legal value.
  • The PRINTAUDIT command caused the host software to wait on a "No file" condition if the original audit file was not present on disk.

Since the PRINTAUDIT command uses the local mirrored audit file, DBEnterprise will no longer attempt to access the audit file on the host.

  • DBEnterprise would discard an update if the audit record is split across audit blocks and the block containing the second part of the record is not physically written within a short period of time.
  • The PRINTAUDIT command now flags reversals and situations where the DSx stack number does not match the SAx stack number.
  • DBEnterprise got stuck during replication when the active ABSN was greater than 2147483647.
  • Selecting more than 1023 datasets would result in the error:
[1106] Selection limit 1023 exceeded: <dataset>

DBEnterprise now allows up to 9999 dataset selections.

  • If run on Windows 2000, DBEnterprise would display the error
[1127] Unable to access configuration directory. Please use setup.exe to install DBEnterprise.
  • When detecting certain error conditions, the debug version of DBEnterprise would display errors and wait for a response, causing replication to stop.
  • A PDF version of the online Enterprise Server Help is now available. This document (enterprise.pdf) is located in the Docs directory of this service pack. For other product documentation, refer to the release CD.

DBDirector

  • When running DBDirector on a 64-bit Windows OS or on Windows Vista or later, the Replication dialog box did not appear on the display even if the DBEnterprise dialog box option in the DATABridge Director Properties was set to Normal.

If the user is using Remote Desktop or a similar utility to monitor the DBEnterprise machine, the Replication dialog will display on the Remote Desktop. However, the 64-bit version of DBDirector must be used when running 64-bit Windows.

  • In Windows 2000, DBDirector was unable to read the registry, which caused various errors such as listening on the wrong port and being unable to start DBEnterprise. This has been corrected. Because Windows 2000 is a 32-bit system, this patch is included only in the 32-bit version of DBDirector.

Client

  • The 6.1 base release software does not work correctly with MISER databases. You must apply this Service Pack before attempting to upgrade a MISER database to version 6.1. The /m option was added to the migrate utility to facilitate the upgrade process by setting all MISER database related parameters to their required values.
  • Configuration changes or reorganizations that change a table for a data set that has split tables always resulted in a reclone, which should not be the case.
  • The DSOPT_Use_AA_Only (0x4000) bit in the ds_options column of the DATASETS client control table did not work for virtual data sets.
  • The client did not handle all documented types of concatenations.
  • The redefine command treated an index, where the relative positions of the keys in the index are unchanged, as an index change when the actual values in the item_key columns were different even though the only purpose of these numbers is to determine the order of the keys in the index.
  • The Client Configurator redefine command failed to restore the value of an entry in the DATAITEMS whose active column was set to zero. This behavior was by design, but has been changed to accommodate user scripts that use this technique.
  • The Create Scripts command did not generate scripts to set the active columns of DATAITEMS entries to zero.
  • If you ran the dbutility createscripts command without first fixing the control tables with the dbscriptfixup program, the command would find no user-initiated changes in the control tables and would generate no user scripts after backing up and deleting the old user scripts. The createscripts command now issues an error and quits when this is the case.
  • Setting data_source_id to a non-zero value in the DATASOURCES table when not using multi-source data sources caused the client to get SQL errors.
  • The dbscriptfixup program has been enhanced to handle the following:
    • "NOT IN" (in WHERE clauses)
    • "IN" in WHERE clauses for scripts that update the DMS_ITEMS table. Previously, this was restricted to updates to the DATASETS table.
    • Scripts for the fixed part of variable format data sets that update all record types at once.
    • Scripts that work on case-insensitive SQL Server databases.

For example, scripts that contain client control table names typed in lowercase letters in quoted strings and SQL statements.

    • Comments that use
/* … */
    • "!=" as a not equal operator.
    • SQL statements that change the values of the item_key column in DMS_ITEMS or DATAITEMS.
  • The client got an access violation when attempting to disconnect from the relational database. This problem seems to be more prevalent with 64-bit Windows clients, particularly the SQL Server client running on Windows Server 2008.
  • The reorg command and a few other commands returned an exit code of zero when they fail.
  • The client only accepted a binary configuration whose version matches its own. It now handles both lower and higher versions, allowing backward and forward compatibility for binary configuration files.
  • The client could not handle characters in database passwords which required the use of a force character by the command line scanner.
  • The migrate utility could not handle a configuration file with the deprecated parameter keep_history_only set to false.
  • When using SQL Server 2008, the SQL Server client could not handle a Client Configurator update to external columns if the data type is set to datetime2.
  • The SQL Server Client created record sizes that were too large for the database or caused the premature splitting of tables whose record size approximated the maximum value (8K). This was caused by miscalculations for decimal data and the 2-byte overhead required for varchar data length.
  • The client did not handle REAL(Sn,m) when the value was negative. Instead, it reported the value to be out-of-range.
  • The end-of-audit file statistics for the DBClient now appear in the in the Console view.
  • When DBClient gets a database signon error, there is now a delay before the client is shut down. This delay allows the Console to connect and pick up the exit code instead of reporting an unknown exit code.
  • The client did not correctly handle items with an OCCURS DEPENDING ON clause that were not flattened when multi-threaded updates were enabled.
  • The host variable length for numeric times and numeric dates were no always correct and caused updates that involved such columns to fail and the client to abend.
  • The SQL Server Client did not format the data correctly for columns with a data type of TIME (applicable only to SQL Server 2008).

Service/Daemon

  • The service did not treat DBM007 as a normal exit and resulted in the data source being disabled. This can occur frequently if READ ACTIVE AUDIT is false in the DBEngine control file. If the client reaches the active audit and stops, an attempt to restart it before the audit file in question is closed resulted in a DBM007 error. This error caused the data source to be disabled.
  • If you have a lot of data sources and set run_at_startup to true for all of them, not all clients can connect to the server. In addition, Clients that get disconnected create ghost worker threads. The solution is to use a new parameter named startup_delay to create a delay between data sources. This parameter can be updated only by using export/import. The default value is 1 second and the allowable range of values is 0 to 15 (units in seconds).
  • The service only accepted a binary configuration whose version matched its own. It now handles both lower and higher versions, providing backward and forward compatibility for binary configuration files.
  • When you set scheduling parameters for a data source using the Console, if there was no active run, the new scheduling parameters did not immediately take effect.

Additional Information

Product documentation for DATABridge can be found at https://support.microfocus.com/manuals/databridge.html.

Legacy KB ID

This document was originally published as Attachmate Technical Note 2547.