DPS V4.0.0


Supported Platforms:

OS/390, VSE

Supported ADABAS Versions:

5.x, 6.x, 7.x

Current Fix Level:

F

Current Zap Level:

39

Batch, On-line, or Both:

Batch

Current Version:

4.1.1



Fixes

FIX EXPLANATION

A A new ETR had been added - COLADASH. It takes an N8(yyyymmdd) and formats it to yyyy-mm-dd.

Note: For DB2 sites only.

B ACTAVBM references the VBM_VALUE column in the DDCTL, DDMAT, and SQLOUT Files.


A SOC4 abend may occur in ACTAVBM when mapping a numeric field to a column with a type of Char or VarChar.


When using ACTALODF and COLLGTH is greater than the CSQLVALL a S002 abend could occur or the length written to DDIMAGE is not correct.

C ACTAVBM incorrectly handles a null value.


DPSNATDT now includes functionality for NATURAL DATE complement processing, which makes DPSNATD9 obsolete.


FLDADAT8 is a new Field ETR. It will format an eight byte date in the correct format for the RDBMS type. This ETR will also allow for specification of a replacement value if the input date is 99999999.


FLDADAT9 is a new Field ETR. It will convert an eight byte date complement in the correct format for the RDBMS type. This ETR will also allow specification of the minuend (the value to subtract the complement from). The default minuend is 99999999.


FLDANATS is a new Field ETR. It will convert a NATURAL Timestamp value value in the correct date/time format for the RDBMS type.


AU5DSECT is a replacement macro needed for the LE (Language Environment) compatible modules.


DPSCORE is a replacement macro needed for the LE (Language Environment) compatible modules.


LTRACTF is a replacement load module that is LE (Language Environment) compatible.


LTRCOLF is a replacement load module that is LE compatible.


LTRFLDF is a replacement load module that is LE compatible.


LTRPUPDT is a replacement load module that is LE compatible.


LTRPUPDT has been modified to reassess a candidate row image after a Field or Column ETR has processed.


TRANINIT is a replacement load module that is LE compatible.


ACTALODD is enhanced to receive an additional call that opens the DDIMAGE file and then exits. This is to avoid the S002 in DPSSPLIT when no records have been selected for Propagation Extract.


ACTALODF is enhanced to receive an additional call that opens the DDIMAGE file and then exits. This is to avoid the S002 in DPSSPLIT when no records have been selected for Propagation Extract. ACTALODF is also enhanced to change the optional fill character from x'40' (blank) to x'F0' (zero), for numeric columns with a null value.

D COLAADA - When this ETR is used, the CID queue in ADABAS fills up.


COLAPACK - COLAPACK is a new Column ETR for packed to numeric conversion. It converts a packed value (that is part of an ADABAS field redefinition) to a numeric value. Note that this routine may need to be used with appropriate OFFSET and LENGTH FTTE parameters (appropriate to extract the redefined substring from the ADABAS field value) and COLLGTH-override (large enough to allow for the full length of the unpacked replacement value) to obtain correct results. All of these values may be set in the tRelational mapping interface.

When an invalid (non-packed) value is submitted to this ETR, by default it sets the replacement value to NULL and writes an error message to DDPRINT output only for the first invalid value encountered in the DPS run.

If desired, the ETR can be altered such that an invalid value results in a replacement value of zero, or results in an abend of the DPS run. The ETR can also be altered such that error messages are displayed for every invalid value encountered, or such that error messages are never displayed for invalid values encountered. Please see the comments at the top of the delivered COLAPACK source code for information on activating these options.


DPSDMASK - An LTR00108 error message occurs when the DPSNATDT field ETR is used in a VSE environment.


COLACNP - These ETRs were failing to remove line feed characters FLDACNP (hex'25') from columns/fields.


FLDANATS - Enhanced ETR to add customization by customer in two areas if an invalid input value is received. The replacement value may be set to null, set to zero or the module may abend. The error messages may be printed once for only the first invalid input value, printed for each invalid input value, or never printed.


LTRPUPDT - A SOC3 abend may occur in DPS Propagation (module LTRPUPDT) when an ADABAS file being processed has a PE Group at the end of its FDT, and a corresponding PLOG image being processed contains a nonnull value for the last field within that PE group.

In DPS PROPAGATION, when an Action Routine (such as ACTAVBM) changes the value of ACTION-INDICATOR from 'U' (UPDATE) to 'I' (INSERT) for a given transaction, an incomplete insert statement may be generated.

E LTRPUPDT - Extraneous update statements are produced by propagation when the DDPARML input contains denormalized PE mappings (i.e., when explicit occurrences of a single PE-component field are mapped to separate RDBMS columns). This fix is not available in DPSV400 for VSE sites. It will be available in DPSV411.

F DPSDAMAT - The generated CTL File contains invalid syntax for DB2 Version 7 Windows (UDB). The following changes were made:
- Removed DB2 from the beginning of the CTL file
- Provide "SQLID" if specified in OWNER= FTTE Parameter
- Place commas at the end of each line when listing the columns on the CTL File
- Correct format of the METHOD statement in the CTL File

Note - Applies to DB2/UDB and DB2/AIX Targeted Data models only


COLACMB - Does not clean all multiple blanks for column values above 255.

FLDACMB - Does not clean all multiple blanks for field values above 255. Symbolic variables were added that can be customized to control the insertion of a blank as the last byte of the replacement field value. Refer to Section IX - External Transformation Routines in the DPS manual for more details.

FLDADAT8 - Allow the input field value to have a length between 8 and 23 bytes. This routine will only process the rightmost 8 bytes.


FLDAYR4 - This new ETR will convert a 2 byte numeric year into a 4 byte numeric year with the specified century included. Refer to Section IX - External Transformation Routines in the DPS Manual for more details.

 

Zaps

ZAP PROBLEM

1 S0C4 abends may occur when executing DPS. DPS is not properly clearing memory obtained via the DPSCORE macro.
2 A S0C1 abend occurs at offset 266 in module DPSMFAB.

Note: This occurs if the hardware DPS is running on does not have the "Immediate-and-Relative-Instruction Facility".

3 When using the ACTAVBM action ETR, MU derived child rows are incorrectly filtered for all occurrences greater than 1.

The VBM_VALUE column should not be referenced in the DDCTL, DDMAT, or SQLOUT output files.

4 Propagation runs with the NOREMOVE option complete with a Return Code 8 when a checkpoint is encountered. It should complete with a Return Code 4.

5 The mapping detail window for MU or PE fields does not allow "Null" or "Never" as valid "consider Null When" entries. These are now valid entries.

GENDPS will produce explicit FTTE entires when a range of MU Entries are mapped with Row indicator "All" and concatenation set to "N"

Requires tRelational V401 fix level E to be applied.

6 The file number is a required parameter in DPSGETF. It should be optional.

7 A NULLIF clause is incorrectly generated for columns that are part of a primary key under Oracle.

8 A SC03 abend occurs when writing DDPRINT to a dataset. DDPRINT works fine when written to SYSOUT=*, but gets an SC03 abend when being written to a dataset.

9 An 002 abend occurs when writing to the RESTARTO dataset.

10 A S0C1 abend may occur when SELECT is specified with a WHERE clause.

11 For Oracle-targeted control files, this zap will change any VARCHAR specification in the CTL file to be CHAR, thereby allowing character-based values longer than 255 characters to load successfully.

12 During transformation, ADABAS UPDATE transactions for group fields within PE groups may be misidentified as elementary fields, which results in incorrect SQL SQL statements.

13 For a table containing a primary key column mapped from the special field 'ROWCOUNT', rows are improperly rejected in Materialization Transformation. The rows are rejected due to primary key nullness when the primary key columns are in fact not null.

14 DPS PROPAGATION is not properly handling its restart file (for ADABAS transactions that have images split across multiple PLOG files).

15 DPS PROPAGATION abends with a S0C7 when a restart file contains images and SUBFILE and/or SUBDBID parameters are being used.

16 DPS PROPAGATION abends with a S0C7 when a restart file contains images and SUBFILE and/or SUBDBID parameters are being used.

17 BT'ed sets of ADABAS V7.x PLOG transactions should be rejected by DPS Propagation Extraction, and should be accrued as "REJECTED TRANSACTIONS" in the extraction statistics in DDPRINT.

This zap may be applied when any version of ADABAS is being used, but it will only work when ADABAS is version 7.

18 When more than one PKEY or FKEY entry is submitted for a single table in the DDPARML parameters, the DPS run should not terminate. An informational message will now be issued and only the first PKEY/FKEY entry will be processed.

19 This zap will prevent rounding of seconds in all DPS functions which call for conversion of stored clock time (STCK) timestamp values.

These functions include (1) those which write out PLOG transactions timestamps to DDPRINT output and (2) those special-field mappings which propagate PLOG transaction timestamps into RDBMS columns (E.G., ADADATIM, ADATIME, etc.).

20 A RC8 with the message "BAD RETURN FROM DPSSFAM ON SFA LOOKUP" occurs during DPS materialization transformation or propagation transformation processing. This message occurs when there are data models in a table that contain no column explicitly mapped from an ADABAS field (but may have other special mappings, such as ISN).

This zap will assure that normal processing occurs without any message being generated when a mapping situation such as the one described above exists.

21 This fix will allow processing the extraction of an EXU CLOSE (CHECKPOINT type 3) as an ET.

22 Abend S002 in DPSSPLIT when there is no output to DDIMAGE from Propagation. Note that DDIMAGE is only used in conjunction with Action ETRS ACTALODD and ACTALODF.

23 After an OPERCOM is issued to print DPS statistics during a DPS run, some statistics are missing from the job's final DDPRINT output.

24 DPS Materialization incorrectly generates a NULLIF clause in the CTL file for a column that is defined in the RDBMS with a NOTNULL constraint. This zap adds a new FTTE parameter, "COLNULL", with valid values of "COLNULL=NULL" and "COLNULL=NOTNULL". Additionally, the zap prevents DPS from generating a NULLIF clause if a "COLNULL=NOTNULL" entry appears in a column's FTTE entries. This zap works in conjunction with tRelational V401 official fix H.

25 An LTR00108 error message occurs when the DPSNATDT Field ETR is used in a VSE environment.

26 During DPS Transformation processing, the "NULL=EMPTY" FTTE parameter is ignored in the case of an ADABAS packed or unpacked numeric field mapped to a CHAR or VARCHAR column. I.e., when the source field has a value of zero, the target column is being incorrectly populated with zero instead of NULL.

27 In DPS Propagation processing, OWNER NAME is not properly prefixed to TABLE NAME in all outputted SQL statements when the target RDBMS is mainframe-based DB2.

28 When DPS is run with the "MATERIALIZATION SQL" runtype option, the COMMIT parameter is ignored and there is no COMMIT generated as the last statement.

29 A SOC4 abend occurs in LTRPINST during materialization when multiple files are being processed. The error occurs if one of the files has a Long Alpha field containing less than 255 characters.

30 Suppress the ADABAS File password (if present) when printing the contents of the DPS DDPARM file to DDPRINT.

31 When an OWNER name is specified in tRelational, it is not placed in the DDCTL or SQLOUT datasets. The OWNER name should be prefixed onto the TABLE name, i.e.: ownername.tablename

Note - Applies only to an Oracle targeted RDBMS.

32 The count of images extracted by file is incorrect in propagation DDPRINT output.

33 A S0C4 abend occurs when processing a long alpha field during PROPAGATION or MATERIALIZATION.

34 Change message in EXTRCKPT from:

FILE XXXXX DBID XXXXX BEING PLACED IN REMOVE LIST.
REMATERIALIZATION MAY BE NECESSARY.

to:
FILE XXXXX DBID XXXXX BEING PLACED IN REMOVE LIST.
REMATERIALIZATION MAY BE NECESSARY, OR SPECIFY
NOREMOVE FOR FILE AND RERUN.

35 A S0C4 abend occurs in EXTRPLOG during a full propagation run when SUBFILE or SUBDBID parameters are used and when the first "FILE=" parameter in the DDPARM file is for an ADABAS FILE/DBID combination not referenced in the DDPARML file.

36 A constant value specified in tRelational as ' ' should result in a value of blank in the column, but results in a value of ' ', which includes 2 single quotes.

37 A column with TYPEDEF=B and NULL=EMPTY should be considered null when the value of the column is binary zeros (x'00'), not when the value of the column is blanks (x'40').

38 Problem with checkpoint processing under ADABAS 7.

39 This zap will increase the maximum column length limit to 32000. The maximum column length limit was 16,500.

If the column length exceeds the maximum column length limit DPS ends with a RC=8 and error message: "LTR00096 - Invalid FTTE RDBMS Physical Column Length"