UniData

UniData 7.3 New Features Version 7.3

August 2013 UDT-730-NF-2 Notices

Edition Publication date: August 2013 Book number: UDT-730-NF-2 Product version: UniData V7.3

Copyright © Rocket Software, Inc. 1985-2013. All Rights Reserved.

Trademarks Rocket is a registered trademark of Rocket Software, Inc. For a list of Rocket registered trademarks go to: www.rocketsoftware.com/about/legal. All other products or services mentioned in this document may be covered by the trademarks, service marks, or product names of their respective owners.

Examples This information might contain examples of data and reports. The examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental.

License agreement This software and the associated documentation are proprietary and confidential to Rocket Software, Inc., are furnished under license, and may be used and copied only in accordance with the terms of such license.

Note: This product may contain encryption technology. Many countries prohibit or restrict the use, import, or export of encryption technologies, and current use, import, and export regulations should be followed when exporting this product.

Contact information Website: www.rocketsoftware.com Rocket Software, Inc. Headquarters 77 4th Avenue, Suite 100 Waltham, MA 02451-1468 USA Tel: +1 781 577 4321 Fax: +1 617 630 7100 ii Contacting Global Technical Support

If you have current support and maintenance agreements with Rocket Software, you can access the Rocket Customer Portal to report and track a problem, to submit an enhancement request or question, or to find answers in the U2 Knowledgebase. The Rocket Customer Portal is the primary method of obtaining support.

To log in to the Rocket Customer Portal, go to:

www.rocketsoftware.com/support

If you do not already have a Rocket Customer Portal account, you can request one by clicking Need an account? on the Rocket Customer Portal login page.

Alternatively, you can contact Global Technical Support by email or by telephone:

Email: [email protected] Telephone:

North America +1 800 729 3553

United Kingdom/France +44 (0) 800 773 771 or +44 (0) 20 8867 3691

Europe/Africa +44 (0) 20 8867 3692

Australia +1 800 707 703 or +61 (0) 29412 5450

New Zealand +0800 505 515

iii Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta Beta of Contents Table of Contents

Chapter 1 U2 Dynamic Object U2 Dynamic Object ...... 1-2 U2 Dynamic Object API ...... 1-4 UDO Definitions ...... 1-4 UDO Functions ...... 1-6 UDORead ...... 1-6 UDOWrite ...... 1-7 UDOSetOption ...... 1-7 UDOGetOption ...... 1-8 UDOClone ...... 1-8 UDOFree ...... 1-9 UDOGetProperty ...... 1-10 UDOSetProperty ...... 1-10 UDODeleteProperty ...... 1-11 UDOGetPropertyNames ...... 1-12 UDOGetNextProperty ...... 1-12 UDOCreate ...... 1-14 UDOGetType ...... 1-14 UDOIsTypeOf ...... 1-15 UDOArrayGetSize ...... 1-15 UDOArrayGetItem ...... 1-16 UDOArraySetItem ...... 1-17 UDOArrayInsertItem ...... 1-18 UDOArrayAppendItem...... 1-19 UDOArrayDeleteItem ...... 1-20 UDOArrayGetNextItem...... 1-20 UDOGetLastError ...... 1-21

Chapter 2 Data Type Enforcement Data Type Enforcement ...... 2-2

C:\Program Files (x86)\Adobe\AdobeFrameMaker10\UniData 7.3.4\NEWFEATURES\NEWFEATTOC.fm (bookTOC.template) Selecting an Attribute for Data Type Enforcement . . . . . 2-2 Creating and Deleting Metadata List ...... 2-4 Data Type Enforcement (DTENF) Commands ...... 2-7 Deploying Data Type Enforcement ...... 2-11

Chapter 3 EDA Replication EDA Replication ...... 3-2 Setting Up a Server ...... 3-3 Create a New UniData Server Connection ...... 3-4 Defining a Data Source...... 3-10 Defining EDA Replication Parameters ...... 3-15

Chapter 4 HTTP Digest Authentication HTTP Digest Authentication ...... 4-2 How Digest Authentication Works...... 4-2 WWW-Authenticate Response/Proxy-Authenticate Header Parameters ...... 4-4 Authorization Request Header Parameters ...... 4-5 Using Digest Authentication with Microsoft IIS Web Servers . . . 4-6 Secure HTTP Authentication through Proxy ...... 4-7 Multiple Same-Name Headers in Response Messages...... 4-8

Chapter 5 Disabling U2 Data Replication Disabling U2 Data Replication ...... 5-2 Replication DISABLE Mode ...... 5-4 Replication ENABLE Mode ...... 5-6 Runtime Error Handling ...... 5-7 Recovering the System ...... 5-8 Enabling or Disabling U2 Data Replication ...... 5-10 Enabling or Disabling U2 Data Replication through XAdmin . 5-10 Exception Action Script ...... 5-12 Error Messaging ...... 5-13

Chapter 6 U2 Metadata Manager U2 Metadata Manager ...... 6-2 U2 MDM Editor ...... 6-2 Schema Tool ...... 6-2 Generating Data in U2 MDM ...... 6-3 Schemas in U2 MDM ...... 6-3

vi UniData 7.2 New Features Chapter 7 Miscellaneous Enhancements Changes to FILEINFO() ...... 7-2 New U2 Data Replication File ...... 7-3 UniData Upgrades and Replication ...... 7-5 U2 Extensible Administration Tool Help...... 7-6

Table of Contents vii

Chapter U2 Dynamic Object 1

U2 Dynamic Object ...... 1-2 U2 Dynamic Object API ...... 1-4 UDO Definitions ...... 1-4 UDO Functions...... 1-6 UDORead ...... 1-6 UDOWrite ...... 1-7 UDOSetOption ...... 1-7 UDOGetOption ...... 1-8 UDOClone ...... 1-8 UDOFree ...... 1-9 UDOGetProperty...... 1-10 UDOSetProperty ...... 1-10 UDODeleteProperty...... 1-11 UDOGetPropertyNames ...... 1-12 UDOGetNextProperty ...... 1-12 UDOCreate...... 1-14 UDOGetType ...... 1-14 UDOIsTypeOf ...... 1-15 UDOArrayGetSize ...... 1-15 UDOArrayGetItem ...... 1-16 UDOArraySetItem ...... 1-17 UDOArrayInsertItem ...... 1-17 UDOArrayAppendItem ...... 1-18 UDOArrayDeleteItem ...... 1-19 UDOArrayGetNextItem ...... 1-19 UDOGetLastError ...... 1-20

U2 Dynamic Object

U2 Dynamic Object provides an object structure in UniData. It is based on JSON.

JSON is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 (www.json.org). It is a text format that is completely language independent, but uses conventions that are familiar to programmers of the C-family of languages.

These are the characteristics of U2 Dynamic Object:

 Strictly follows the JSON specification  Is not persistent; in memory only  Purely data object; no method support  Dynamic; properties can be added or removed on the fly  No class definition  No inheritance support  Unlimited nesting levels  Can create objects from JSON data  Can be serialized into JSON

JSON is built on the following two structures:

 A collection of name/value pairs. This is realized as an object, record, structure, dictionary, hash table, keyed list, or associated array.  An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.

In JSON, these structures take on the following forms:

 An object is an unordered set of name/value pairs. An object begins with a left brace (“{“) and ends with a right brace (“}”). Each name is followed by a colon (“:”) and the name/value pairs are separated by a comma (“,”).  An array is an ordered collection of values. An array begins with a left bracket (“[“) and ends with a right bracket (“]”). Values are separated by a comma (“,”).

U2 Dynamic Object 1-2

 A value can be a string in double quotation marks, a number, a true, false, or null, an object or an array. These structures can be nested.  A string is a sequence of zero or more Unicode characters wrapped in double quotation marks, using backslash escapes. A character is represented as a single character string. A string is like a C or Java string.  A number is like a C or Java number, except that the octal and hexadecimal formats are not used.

1-3 UniData 7.3 New Features

U2 Dynamic Object API

A U2 Dynamic Object (UDO) object contains a collection of properties, that is, name/value pairs. UDO uses the name in the pair to identify the property. The value in the pair can be a string, a number, true, false, null, an array, or another object. An array is an ordered list of values, and can be easily serialized into and deserialized from JSON data.

A UDO object can be viewed as a tree structure with each object and array a node in the tree. Each node can have a number of child nodes. A child node is an object or an array that is either a property value or an array item. The top-most object or array is the root node.

A stand-alone UDO object or array is not a property value on another UDO object and is not a UDO array element. A root node of a UDO tree is stand- alone.

UDO Definitions

A UDO type UniBasic variable can be passed to subroutines as a parameter. These definitions are defined in the UDO.H file.

UDO Status Codes:

 UDO_SUCCESS  UDO_ERROR  UDO_INVALIDHANDLE

UDO Value Types

 UDO_FALSE  UDO_TRUE  UDO_NULL  UDO_STRING  UDO_NUMBER  UDO_OBJECT

U2 Dynamic Object API 1-4

 UDO_ARRAY

A UDO object property or a UDO array item can be any one of the above types.

UDO Error Codes

 UDOERROR_OUTOFMEMORY  UDOERROR_INVALIDJSON  UDOERROR_NOTSTANDALONE  UDOERROR_NOTFOUND  UDOERROR_INVALIDNAME  UDOERROR_NOTANOBJECT  UDOERROR_NOTANARRAY  UDOERROR_INVALIDINDEX  UDOERROR_OUTOFBOUND  UDOERROR_INVALIDOPTION  UDOERROR_INVALIDOPTIONVALUE  UDOERROR_OPTIONNOTSET  UDOERROR_INVALIDFORMAT  UDOERROR_INVALIDVALUE  UDOERROR_INVALIDTYPE

UDO Flags

 UDOFORMAT_JSON

UDO Options

 UDOOPTION_OUTPUTMODE  UDO_OUTPUT_COMPACT  UDO_OUTPUT_FORMATTED

1-5 UniData 7.3 New Features

UDO Functions

A UDO function always returns UDO_SUCCESS when it completes with no errors. Otherwise, it returns UDO_FAILURE or UDO_INVALIDHANDLE. If a UDO functions fails, UDO leaves the output variables, if any, unchanged.

UDORead

The UDORead function creates a UDO object from a JSON string.

Syntax

UDORead(inputString, inputType, udoHandle[out])

Parameters

The following table describes each parameter of the syntax.

Parameter Description

inputString A JSON string.

inputype UDOFORMAT_JSON.

udoHandle The UniBasic variable that holds a reference to the UDO object [out] upon successful return of the function. UDORead Parameters

UDO Functions 1-6

UDOWrite

Writes a UDO object in JSON format.

Syntax

UDOWrite(udoHandle, outputType, outputString[out])

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO type variable.

outputType UDOFORMAT_JSON.

outputString [out] The string that holds the serialized output. UDOWrite Parameters

UDOSetOption

Sets the options for the UDO API.

Syntax

UDOSetOption(option, value)

Parameters

The following table describes each parameter of the syntax.

Parameter Description

option The UDOOPTION_OUTPUTMODE.

value A string type option value. For a list of UDOOPTION_OUTPUTMODE values, see “UDO Options”. UDOSetOption Parameters

1-7 UniData 7.3 New Features

UDOGetOption

The UDOGetOption function gets the value of a UDO option.

Syntax

UDOGetOption(option, value[out])

Parameters

The following table describes each parameter of the syntax.

Parameter Description

option The UDOOPTION_OUTPUTMODE.

value[out] A string type option value. For a list of UDOOPTION_OUTPUTMODE values, see “UDO Options.”. UDOGetOption Parameters

UDOClone

The UDOClone function clones a UDO object or array so that changes to the new object or array will not affect the original object.

Syntax

UDOClone(udoHandle, newUdoHandle[out])

UDO Functions 1-8

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO type variable.

newUdoHandle When the UDOClone function returns successfully, newUDOHandle points to a stand-alone object or array that is the exact replication of the original object. UDOClone Parameters

UDOFree

The UDOFree function forcefully removes a UDO object or array from memory.

Syntax

UDOFree(udoHandle)

The following table describes the parameter of the syntax.

Parameter Description

udoHandle Must be a stand-alone UDO object or array. UDOFree Parameters

UDO will clear all UniBasic variables that reference the object or array and its descendants. Any attempt to access these variables, other than assigning a new value, fails.

You should always call this function when a UDO object or array is no longer needed. This avoids a potential memory leak.

1-9 UniData 7.3 New Features

UDOGetProperty

The UDOGetProperty function returns the value and type of property on the UDO object.

Syntax

UDOGetProperty(udoHandle, name, value[out], value_type[out])

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO object.

name The name of the property.

value[out] If the property is a UDO_OBJECT or UDO_ARRAY type (it is either a UDO object or an array), the output value holds only a reference to the object or array. Further changes to the object or array through this reference, such as updating a property value on the object or removing an array item, affects the original object as well. If the property is a UDO_STRING, UDO_NUMBER, UDO_TRUE, UDO_FALSE, or UDO_NULL type, the output variable value holds the actual value instead of a reference. Further changes to this variable do not affect the original property value.

value_type[out The type of the value returned by value. For a list of UDO types, ] see “UDO Value Types.”. UDOGetProperty Parameters

UDOSetProperty

The UDOSetProperty function creates or updates a property on a UDO object.

UDO Functions 1-10

Syntax

UDOSetProperty(udoHandle, name, value)

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO object.

name The name of the property. If the property does not exist, UDO creates a new property for the object. If the property exists, the new value replaces the old value. If the old property is of UDO_OBJECT or UDO_ARRAY type, the old value, either a UDO object or an array, is marked as stand- alone and will be removed from memory if it is not referenced by any UniBasic variable. If the new value is of UDO_OBJECT or UDO_ARRAY type, it must be a stand-alone object or array, and it must not be the ancestor of the current UDO object.

value The value of the property. UDOSetProperty Parameters

UDODeleteProperty

The UDODeleteProperty function deletes a property from the UDO object.

Syntax

UDODeleteProperty(udoHandle, name)

1-11 UniData 7.3 New Features

Parameter

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO object.

name The name of the property. If the property is of UDO_OBJECT or UDO_ARRAY type, its value (either a UDO object or a UDO array) is marked as stand-alone and will be removed from memory if it is not referenced by any UniBasic variable. UDOSetProperty Parameters

UDOGetPropertyNames

The UDOGetPropertyNames function returns a UDO array that holds the names of all the properties in the UDO object.

Syntax

UDOGetPropertyNames(udoHandle, udoArray[out])

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO object.

nameArray[out] The UDO array to hold the names of all the properties in the UDO object. UDOGetPropertyNames Parameters

UDOGetNextProperty

The UDOGetNextProperty function provides a convenient way to walk through all the properties in a UDO object, without needing to know the property names in advance.

UDO Functions 1-12

When all properties on the UDO object are exhausted, the UDOGetNext- Property() function returns UDO_FAILURE, then goes back to the first property.

We recommend that you avoid modifying the properties on a UDO object when calling the UDOGetNextProperty() to retrieve the properties.

Syntax

UDOGetNextProperty(udoHandle, name[out], value[out], value_type[out])

Parameters

The following table describes each parameter of the syntax.

Patameter Description

udohandle Must be a UDO type object.

name[out] The name of the array that holds the names of all the properties in the UDO object.

value[out] If the property is a UDO_OBJECT or UDO_ARRAY type (it is either a UDO object or an array), the output value holds only a reference to the object or array. Further changes to the object or array through this reference, such as updating a property value on the object or removing an array item, affects the original object as well. If the property is a UDO_STRING, UDO_NUMBER, UDO_TRUE, UDO_FALSE, or UDO_NULL type, the output variable value holds the actual value instead of a reference. Further changes to this variable do not affect the original property value.

value_type[out] The type of the value returned by value. For a list of UDO types, see “UDO Value Types.”. UDOGetNextProperty Parameters

1-13 UniData 7.3 New Features

UDOCreate

The UDOCreate function creates a UDO item of the type you specify.

Syntax

UDOCreate(udoType, udoHandle[out])

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoType Must be one of UDO_OBJECT, UDO_ARRAY, UDO_TRUE, UDO_FALSE, or UDO_NULL.

udoHandle If udoType is UDO_OBJECT, udoHandle holds an empty object. If udoType is UDO_ARRAY, udoHandle holds an empty array. If udoType is UDO_TRUE, UDO_FALSE, or UDO_NULL, udoHandle holds the specified value. UDOCreate Parameters

UDOGetType

The UDOGetType() function gets the UDO value type of a UniBasic variable.

Syntax

UDOGetType(udoHandle, type[out)

UDO Functions 1-14

Parameters

The following table describes each parameter of the syntax.

Parameters Description

udoHandle Can be a UDO handle, or a UniBasic string or number.

type[out] The UDO value type. For a list of UDO types, see “UDO Value Types.”. UDOGetType Parameters

UDOIsTypeOf

The UDOIsTypeOf() function tests the UDO value type of a UniBasic variable.

Syntax

UDOIsTypeOf(udoHandle, type)

Parameters

The following table describes each parameter of the syntax.

Parameters Description

udoHandle Can be a UDO handle, or a UniBasic string or number.

type[in] The UDO value type. For a list of UDO types, see “UDO Value Types.”. UDOGetType Parameters

UDOArrayGetSize

The UDOArrayGetSize() function gets the size of a UDO array.

1-15 UniData 7.3 New Features

Syntax

UDOArrayGetSize(udoHandle, size[out])

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO array.

size The size of the UDO array. UDOArrayGetSize Parameters

UDOArrayGetItem

The UDOArrayGetItem() function returns a UDO array item by its index.

Syntax

UDOArrayGetItem(udoHandle, index, value[out], value_type[out])

UDO Functions 1-16

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO array.

index The name of the UDO array index returned. Must be a positive integer.

value[out] The UDO value type of the array item. If the array item is of UDO_OBJECT or UDO_ARRAY type, the output variable “item” holds only a reference to the object or array. Further changes to the object or array through this reference, such as updating a property value or removing an array item, affect the original item as well. If the array item is of UDO_STRING, UDO_NUMBER, UDO_TRUE, UDO_FALSE or UDO_NULL type, the output variable “item” holds the actual value instead of a reference. Further changes to this variable do not affect the original property value.

value_type[out] The type of the value returned by value. For a list of UDO types, see “UDO Value Types.”. UDOArrayGetItem Parameters

UDOArraySetItem

The UDOArraySetItem() function sets or inserts a UDO array element at the position you specify.

Syntax

UDOArraySetItem(udoHandle, index, value)

1-17 UniData 7.3 New Features

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO array.

index The position what you want to set or insert the element. Must be a positive integer.

value The value of the array item you are setting. UDOArraySetItem Parameters

If the index is larger than the size of the array, UDO will pad the array with UDO_NULL values before it inserts the array item into the array.

Otherwise, if the old array item is of UDO_OBJECT or UDO_ARRAY type, either an object or an array will be marked as stand-alone and removed from memory if it is not referenced by any UniBasic variable.

If the new array item is of UDO_OBJECT or UDO_ARRAY type, it must be a stand-alone object or array and it must not be the ancestor of the current UDO object.

UDOArrayInsertItem

The UDOArrayInsertItem() function inserts a UDO array element at the position you specify by index.

Syntax

UDOArrayInsertItem(udoHandle, index, value)

UDO Functions 1-18

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO array.

index The position what you want to insert the item. Must be a positive integer.

value The value of the array item you are inserting. UDOArrayInsertItem Parameters

If the index is larger than the size of the array, UDO will pad the array with UDO_NULL values before it inserts the array item into the array.

UDOArrayAppendItem

The UDOArrayAppendItem() function appends the item you specify to the UDO array.

Syntax

UDOArrayAppendItem(udoHandle, value)

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO array.

value The value of the array item you are appending. UDOArrayAppendItem Parameters

If the new array item is of UDO_OBJECT or UDO_ARRAY type, it must be a stand-alone object or array, and it must not be the ancestor of the current UDO object.

1-19 UniData 7.3 New Features

UDOArrayDeleteItem

The UDOArrayDeleteItem() function deletes the array item you specify by its index.

Syntax

UDOArrayDeleteItem(udoHandle,index)

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO array.

index The index of the item to be deleted. Must be a positive integer. UDOArrayDeleteItem

If the array item is of UDO_ARRAY or UDO_OBJECT type, UDO will make either the UDO object or a UDO array as stand-alone and will remove it from memory if it is not referenced by any UniBasic variable.

UDOArrayGetNextItem

The UDOArrayGetNextItem() function returns the next UDO array item relative to the current position, which is the position of the array the last time it was accessed by this function. The initial position is 1.

Syntax

UDOArrayGetNextItem(udoHandle, value[out], type[out])

UDO Functions 1-20

Parameters

The following table describes each parameter of the syntax.

Parameter Description

udoHandle Must be a UDO array.

value[out] The value of the item.

type[out] The type of the value returned by value. For a list of UDO types, see “UDO Value Types.”. UDOArrayGetNextItem Parameters

After exhausting the entire array, the UDOArrayGetNextItem() function returns UDO_FAILURE and the current position is reset to 1.

We recommend that you not modify the array when calling the UDOArrayGetNextItem() function. If you must modify the array, remember that UDOArrayGetNextItem() always returns the item at the current position +1.

UDOGetLastError

If the previous UDO call returned UDO_ERROR, use the UDOGetLastError() function to return the error code and error message.

Syntax

UDOGetLastError(errorCode[out], errorMessage[out])

1-21 UniData 7.3 New Features

Parameters

The following table describes each parameter of the syntax.

Parameter Description

errorCode The UDO error code. For a list of error code, see “UDO Error Codes.”

errorMessage The UDO error message. UDOGetLastError Parameters

UDO Functions 1-22

Chapter Data Type Enforcement 2

Data Type Enforcement ...... 2-2 Selecting an Attribute for Data Type Enforcement . . . . . 2-2 Creating and Deleting Metadata List ...... 2-4 Data Type Enforcement (DTENF) Commands ...... 2-7 Deploying Data Type Enforcement ...... 2-11

Data Type Enforcement

Beginning at UniData 7.3, UniData provides a data type check on data you write to a file in an effort to avoid writing bad data to the . This data type check is file-based.

You can specify a field in a file on which you want to run a data type check. In each record write, UniData then checks that field against the data type defined by the metadata. If a write fails, UniData reports the record ID and the data that failed the check.

For information about the U2Metadata Manager tool (U2 MDM), see the online help available from the Help > Help Contents option in the U2 Metadata Manager tool.

You can define the following data types to check:

 INTEGER (SMALL INT)  NUMERIC (DECIMAL, FLOAT, REAL)  DATE (with a date format such as D2, D, or D6)

The data type is determined by the conversion code in the dictionary record of the attribute.

Conversion Code Data Type

Dn DATE

MT TIME

MD0 INTEGER (SMALL INT)

MD2, MR2 NUMERIC (DECIMAL, FLOAT, REAL) Data Types

Selecting an Attribute for Data Type Enforcement

To select an attribute to apply data type enforcement, use the U2 Metadata Manager (U2 MDM) tool. For information about installing the Metadata Manager tool and connecting to the server, see the online help in the U2 Metadata Manager (U2MDM) tool.

Data Type Enforcement 2-2

From the Start menu, click All Programs, then click Rocket U2 > U2 Metadata Manager. A window similar to the following example appears:

From the U2 Resource View, expand Accounts, then expand the account where the file for which you want to define attributes for data type enforcement resides. Drag the file name and place it in the Metadata pane, or right-click the file name, then select U2 Metadata Manager > Open U2 MDM Editor.

2-3 UniData 7.3 New Features

Click the Metadata tab. A CUSTOMER editor similar to the following example appears.

Select the attribute for which you want to enforce the data type. In the Enforced column, select true.

Creating and Deleting Metadata List

Use the commands discussed in this section to create, delete, and view metadata.

CREATE.METADATA

The CREATE.METADATA command creates a metadata list for a UniData file from the Metadata Repository File (_METADATA_REPOSITORY_) that contains all of the D-type attributes for which you want to enforce the data type. You can create only one definition for each location. U2 MDM physi- cally saves the metadata list information to the file property group (FPG) of the file.

Syntax

CREATE.METADATA filename USING REPOSITORY

Data Type Enforcement 2-4

Parameters

The following table describes each parameter of the syntax.

Parameter Description

filename The UniData hashed file for which you want to define metadata to check.

USING REPOSITORY The name of the core mapping file generated from the Metadata Manager. For information about the Metadata Manager, see the U2 Metadata Manager online help. CREATE.METADATA Parameters

Example

The following example illustrates the CREATE.METADATA command:

:CREATE.METADATA INVENTORY USING REPOSITORY Metadata is created.

DELETE.METADATA

Use the DELETE.METADATA command to delete the metadata list previ- ously created for the file.

Syntax

DELETE.METADATA filename

where filename is the name of the file for which you created metadata.

LIST.METADATA

The LIST.METADATA command lists all the D-type attributes and associa- tions previously defined for filename.

Syntax

LIST.METADATA filename

where filename is the name of the file for which you created metadata.

2-5 UniData 7.3 New Features

Example

The following example illustrates the output from the LIST.METADATA command:

:LIST.METADATA INVENTORY Data for Column @ID Position: 0 Data Type: VARCHAR Type Enf: 0 dict info: 'INVENTORY' 10R S Data for Column INV_DATE Position: 1 Data Type: DATE Type Enf: 1 dict info: D4/ 'Inventory}Date' 10R S Data for Column INV_TIME Position: 2 Data Type: TIME Type Enf: 1 dict info: MTH 'Inventory}Time' 5R S Data for Column PROD_NAME Position: 3 Data Type: VARCHAR Type Enf: 0 dict info: 'Product}Name' 10T S Data for Column FEATURES Position: 4 Data Type: VARCHAR Type Enf: 0 dict info: 'Features' 30T S Data for Column COLOR Position: 5 Data Type: VARCHAR Type Enf: 0 dict info: 'Color' 10T MV LINE_ITEMS Data for Column QTY Position: 6 Data Type: INT Type Enf: 0 dict info: MD0 'Quantity' 6R MV LINE_ITEMS Data for Column PRICE Position: 7 Data Type: FLOAT Type Enf: 1 dict info: MD2,$ 'Price' 10R MV LINE_ITEMS Data for Column REORDER Position: 8 Data Type: VARCHAR Type Enf: 0 dict info: 'Reorder}Point' 6R MV LINE_ITEMS

Data for Association_0

Data Type Enforcement 2-6

Name: SingleValuedFields SM Type: S Field List: @ID INV_DATE INV_TIME PROD_NAME FEATURES

Data for Association_1 Name: LINE_ITEMS SM Type: MV Field List: COLOR QTY PRICE REORDER :

Data Type Enforcement (DTENF) Commands

This section describes the ECL commands UniData provides for data type enforcement. These commands maintain the data type enforcement (DTE) list in the file property group of the UniData hashed file.

ENABLE.DTENF Command

The ENABLE.DTENF command enables one or more items in a metadata list. You can generate or add items to the DTENF list. For WRITE operations, data type enforcement goes through the LOCLIST and returns and error when the first location fails the data type check.

Syntax

ENABLE.DTENF filename [ALL | FIELDLIST name_list | LOCLIST loc_list] [DTE.OPT {IGNORE | LOG | ON.ERROR}]

Parameters

The following table describes each parameter of the syntax.

Parameter Description

filename The name of the file for which you want to enable data type enforcement.

ALL Enable all fields in the _METADATA_REPOSITORY_ record. ENABLE.DTENF Parameters

2-7 UniData 7.3 New Features

Parameter Description

FIELDLIST name_list Enables the fields defined by name. name_list. is defined as name1 name2 name3 ...

LOCLIST loc_list Enables the fields by location. loc_list is defined as location1 location2 location3 ...

DTE.OPT The error handling option to use when a data type enforcement check fails. Valid options are:  IGNORE - UniData takes no action If the dte log exists, and error is written to the DTE_acct_pid record.  LOG - Write the error to the DTE_acct_filename record in the dte log.  ON.ERROR - Returns a WRITE error and sets an error status. The INMAT function returns the following values after a UniBasic WRITE is executed from a UniBasic program or subroutine: 0 – The WRITE completed successfully. 2 – The WRITE completed, but data type enforcement checking failed. Check the log file for errors. ENABLE.DTENF Parameters (continued)

Example

The following example illustrates the ENABLE.DTENF command:

:ENABLE.DTENF CUSTOMER ALL DTE.OPT LOG DTE has been changed on file CUSTOMER,1 DTE item(s) enabled

DISABLE.DTENF Command

Use the DISABLE.DTENF command to delete items from the DTENF list.

Syntax

DISABLE.DTENF filename [ALL | FIELDLIST name_list | LOCLIST loc_list]

Data Type Enforcement 2-8

Parameters

The following table describes each parameter of the syntax:

Parameter Description

filename The name of the file for which you want to disable data type enforcement.

ALL Disable all defined fields in the DTE list.

FIELDLIST name_list Disables the fields defined by name. name_list is defined as name1, name2, name3 ...

LOCLIST loc_list Disables the fields by location. loc_list is defined as location1, location2, location3 ... DISABLE.DTENF Parameters

LIST.DTENF Command

The LIST.DTENF command lists the items in the current DTE list.

Syntax

LIST.DTENF filename

where filename is the name of the file for which you want to list the DTE items.

Example

The following example illustrates the output from the LIST.DTENFcommand:

:LIST.DTENF INVENTORY DTE enabled on INVENTORY. Option: 1 Location: 1 Datatype: DATE Location: 2 Datatype: TIME Location: 7 Datatype: FLOAT

2-9 UniData 7.3 New Features

VERIFY.DTENF Command

The VERIFY.DTENF command checks the locations defined in the DTE list and generates a list of @IDs that contain invalid data types.

Syntax

VERIFY.DTENF filename

Where filename is the name of the file for which you want to verify data types.

Example

The following example illustrates the VERIFY.DTENF command. One record is selected because Robert is the value of the INV_DATE attribute, which is defined as a DATE data type.

VERIFY.DTENF INVENTORY

1 records selected to list 0.

> LIST INVENTORY INV_DATE INV_TIME PROD_NAME FEATURES COLOR PRICE QTY REORDER DI 09:26:59 Feb 24 2012 1 INVENTORY 56060 Inventory Date Robert Inventory Time 12:00PM Product Name Trackball Features Super Deluxe Model Color Price Quantity Reorder Difference Gray $98.99 494 70 424

1 record listed

SET.DTELOG Command

The SET.DTELOG command enables or disables the DTE log. The name of the log file is DTE_acct_pid, and is located in the $UDTTMP directory.

Syntax

SET.DTELOG [ON | OFF]

Data Type Enforcement 2-10

Parameters

The following table describes each parameter of the syntax.

Parameters Description

ON Enables the DTE log file.

OFF Disables the DTE log file. SET.DTELOG Parameters

The INMAT Function

The INMAT function returns the following values after a UniBasic WRITE is executed from a UniBasic program or subroutine:

 0 – The WRITE completed successfully  2 – The WRITE completed, but data type enforcement checking failed. If you specify the LOG DTE.OPT, the errors appear in the file_level log. If you specify the IGNORE option, use the SET.DTELOG com- mand to set up your log file

Deploying Data Type Enforcement

If you use a test account to set up data type enforcement, you can copy the changes to the live account in certain conditions. This works if the dictionary files in the live account are identical to those in the test account. To copy changes to the live account, use a paragraph similar the following example.

:AE VOC DEPLOYDTE Top of New "DEPLOYDTE" in "VOC". *--: I 001= PA 002= SETFILE<>/_METADATA_REPOSITORY_<> OVERWRITING 003= COPY FROM <> TO _METADATA_REPOSITORY_ <> OVERWRITING 004= * 005= DTE_SETUP <> <> 006= * *--:Bottom

2-11 UniData 7.3 New Features

The next paragraph copies the item from the source repository to the local repository, creates the metadata, and enables data type enforcement:

:AE VOC DTE_SETUP

Top. *--: P 001: PA 002: * 003: DISPLAY 004: DISPLAY -----Creating METADATA of <>----- 005: CREATE.METADATA<> USING REPOSITORY 006: * 007: DISPLAY 008: DISPLAY * ------009: LIST.METADATA <> 010: * 011: DISPLAY 012: DISPLAY -----Enable DTE for <>----- 013: ENABLE.DTENF <> ALL DTE.OPT <> 014: * 015: DISPLAY 016: DISPLAY *------017: LIST.DTENF<> 018: * Bottom.

Data Type Enforcement 2-12

Chapter EDA Replication 3

EDA Replication ...... 3-2 Setting Up a Server ...... 3-3 Create a New UniData Server Connection ...... 3-4 Defining a Data Source...... 3-10 Defining EDA Replication Parameters ...... 3-15

EDA Replication

At this release, EDA Replication is introduced. EDA Replication is useful if you want to maintain an account from which you can create reports. This new version of UniData increases your options for keeping your applications available. Now you can replicate your data to an SQL database in addition to keeping your data safely stored in UniData. When you store data in UniData, it is simultaneously replicated to Oracle, IBM DB2, or Microsoft SQL Server. Use the replicated database for data-mining or reporting while you use UniData as your production workhorse.

To manage EDA Replication, use the EDA Replication Config Tool. This tool enables you to edit EDA map schemas, edit data source definitions, and convert UniData files to EDA files.

EDA Replication 3-2

Setting Up a Server

To access the EDA Replication Config Tool, from the Start menu, select Programs, then select Rocket U2, then select EDA Replication Config Tool. The EDA Replication Tool appears, as shown in the following example:

3-3 UniData 7.3 New Features

Create a New UniData Server Connection

To create a new UniData server connection, right-click U2 Servers, and from the context menu, select New U2 Server. A dialog box similar to the following example appears:

Enter Server Name

In the Name box, enter a unique identifier for the new server.

Enter Host Name

In the Host box, enter the network name of the host computer where the UniData database resides, or the IP address.

EDA Replication 3-4

Select the Database

From the U2 database options, select UniData.

If you want to define the protocol type, RPC port number, RPC service name, or the login account, click Advanced. A dialog box similar to the following example appears:

3-5 UniData 7.3 New Features

EDA Replication 3-6

Protocol Type

In the Protocol Type box, choose the type of communication you are using the server. You can choose Default, TCP/IP, or Lan Manager. The default is TCP/IP.

RPC Port Number

In the RPC Port # box, enter the port number of the UniRPC server running on the host. The default port number is 31438.

RPC Service Name

In the RPC Service Name box, enter the name of the RPC service on your system. For UniData, this is normally udcs.

Login Account

In the Login Account box, enter the name of the account to which you want to log on when accessing UniVerse.

Commands to Execute

Click Add in the Commands to Execute box to enter commands you want to execute when you log on to the server. The following dialog box appears:

3-7 UniData 7.3 New Features

Specify Session to Run/Debug UniBasic Programs

In the Specify the session to run/debut your BASIC programs on server side area, specify the type of connection you want to make to server. You can specify Telnet or SSH.

In the Port Number box, enter the port number you want to use, if you do not want to used the default port number of 23.

Select the Use Device License check box if you want to enable device licensing when connecting to the server.

Click Finish to establish the UniData server. The new server appears in the U2 Resource view of the EDA Replication Config Tool.

EDA Replication 3-8

Connect to UniData Server

To connect to the UniData server, right-click the server name, then click Connect. The following dialog box appears:

In the User ID box, enter the User ID for the machine on which UniData is running. In the Password box, enter the password for this user. To connect to the U2 server, click Finish.

3-9 UniData 7.3 New Features

The Accounts and existing Data Source definitions appear in the U2 Server list, as shown in the following example:

Defining a Data Source

You must define a data source pointing to the external database to which you want to connect.

To define a new data source, connect to your UniData server, right-click Data Sources, then click New EDA Data Source. The Create a New EDA Data Source dialog box appears, as shown in the following example:

EDA Replication 3-10

In the Enter Data Source Name box, enter a unique name for the external data source, then click Finish.

3-11 UniData 7.3 New Features

A data source information dialog box appears in the right pane of the EDA Schema Manager window, as shown in the following example:

In the DSN/Net Service/DB box, enter the name of the external database to which you are connecting. The name of the external database must be the data source name defined in the ODBC Data Source Administrator.

From the Driver list, select the type of driver.

EDA Replication 3-12

To define an EDA data source connection, click Add. The EDA Data Source Connection dialog box appears, as shown in the following example:

In the Login User ID box, enter the user ID on the external server.

In the Password box, enter the password corresponding to the User ID.

In the Re-enter Password box, type the password again to verify it.

To maintain the connection on the external server after a transaction commits, select YES from the Hold Flag list. Otherwise, if you want to disconnect from the external server after the transaction commits, select NO.

Note: If you do not use UniBasic transactions, each UniData database operation, such as a READ or WRITE, corresponds to an external transaction.

In the Qualified Users box, enter the UniData user IDs of users who can access the external server from the UniData account using the external Login User ID you specify. Separate the users by a “|” symbol. If all UniData users can access the external account, enter an asterisk (*).

3-13 UniData 7.3 New Features

The following example shows a completed EDA Data Source dialog box:

To test the connection to the external instance, click Test. If the connection is successful, a message similar to the following example appears:

EDA Replication 3-14

Defining EDA Replication Parameters

In the EDA Replication Config Tool, right-click the account to which you want to replicate your EDA data, then select EDA replication config tool. The EDA Replication Config Toll editor is displayed, as shown in the following example:

3-15 UniData 7.3 New Features

Configuring Replication Parameters

Click Configure Replication Parameters. The Configure Replication Parameters panel appears, as shown in the following example:

EDA Replication 3-16

To change the value of a configuration parameter, click the New Value column of the parameter you want to change, then enter the new value for the parameter.

MAX_LRF_FILESIZE

The maximum Log Reserve File Size, in bytes. The default value is 1,073,741,824 (1 GB). The maximum value is 2,147,483,136.

MAX_REP_DISTRIB

Reserved for internal use.

MAX_REP_SHMSZ

The maximum shared memory buffer segment size. The default value is 67,108,864 (64 MB).

N_REP_OPEN_FILE

The maximum number of open replication log files for a udt or tm process. The default value is 8.

REP_CP_TIMEOUT

Specifies the cm daemon timeout interval for replication at checkpoint. The default value is 200 seconds. If this value is set to 0 the cm daemon will not time out.

3-17 UniData 7.3 New Features

REP_FLAG (Replication Flag)

The REP_FLAG parameter turns UniData Data Replication on or off. If you choose the install UniData with the Replication feature, UniData sets the REP_FLAG to 1. The following table describes the REP_FLAG options:

Value Description

0 (zero) The UniData Data Replication System is off.

Any positive integer The UniData Data Replication System is on. REP_FLAG Values

REP_LOG_PATH

The full path to the location of the replog file.

TCA_SIZE

The maximum number of entries in the transaction control area (TCA). TCA is only used when there is more than one replication group configured, and there are transactions across replication groups. The default value is 2048.

If you are not using transaction processing, this parameter is irrelevant. If you are using transaction processing, set the value of TCA_SIZE to at least the number of users on the system.

UDR_CONVERT_CHAR

When this value is set to 1, if the publishing system and the subscribing system have a different I18N group, UniData converts marks and SQLNULL marks to those on the local machine on the data passed between the two systems. The default value is 0.

After you make your desired changes, click Save Changes.

EDA Replication 3-18

Configuring the Replication System

To define the system to which you want to replicate EDA data, click Configure Replication System. The Configure Replication System dialog box appears, as shown in the following example:

From the Replication Systems list, select the system to which you want to replicate data. This system should be the same system on which the EDA account resides.

3-19 UniData 7.3 New Features

The Configure Replication System dialog box appears, as shown in the following example:

Define Replication System ID

System ID is the name you define for the replication system. This name should be unique on a system. System ID can contain a combination of alpha- betic characters, number, and any of the following character: ~ ! @ $ % ^ & * - + . / \.

Define Host Name

The Host Name defines the host name of the replication system location. A system can have only one host name.

EDA Replication 3-20

Define UniData Version

In the Version box, select the version of UniData on the system location. The version number must be 60 or higher.

DHCP Check Box

The DHCP check box specifies that the local system has a dynamic IP address. If you define a local system as a DHCP system, UniData Data Repli- cation automatically sends the current IP address in the SYNC request to the server.

Select Auto Resume

Auto Resume indicates whether replication from the system you specify is synchronized and resumes automatically when UniData starts, or after a reconfiguration. Select Yes if you want to automatically synchronize or No if you do not want to automatically synchronize.

Define the Sync Interval

Sync Interval defines the time interval, in minutes, in which the replication system automatically synchronizes replication.

UniData Data Replication automatically synchronizes subscribing systems with their publisher every period defined by sync_interval. A sync_interval of 0 indicates a manual synchronization system, where the system does not automatically synchronize the systems.

Sync Interval applies only to those subscribing groups that have deferred replication. It does not apply to publishing groups.

Select Connect Authorization

For remote systems with a static IP address, the publishing system can always trust the subscribing system because the IP address is defined in the repsys file. However, if the remote system is a DHCP system, the publishing system cannot verify the IP address.

3-21 UniData 7.3 New Features

In order to verify the subscribing system, select the Connect Authorization check box. UniData Data Replication performs an authorization check when a SYNC request is received from the subscribing system.

Define Timeout

Timeout defines the number of seconds to wait if no packets are received from the system before suspending replication.

The publishing system sends a packet to the subscribing system approximately every 4 seconds when replication is idle. The subscribing system then sends a packet back to the publishing system. If the subscribing system location has time out defined, the publistener process counts the time that has elapsed between packets being received. If the amount exceeds the value defined by timeout, replication is suspended.

In the value of Timeout is 0, no timeout occurs.

We recommend that you not set the value of the TIMEOUT phrase to less than 2 minutes.

Define Exception Action

The replication exception action is a shell script on platforms, or a batch program on Windows platforms. Define the full path to the exception action using Browse. For example, if you define a replication exception action as UDRepExceptionAction.sh in the /usr/ud73 directory, browse to that directory.

EDA Replication 3-22

Define Replication Account

The account definition is automatically populated with the account you previously defined. To define a different account to which you want to replicate EDA data, click Add in the Account Definitions area. The Repli- cation System Definition dialog box appears, as shown in the following example:

In the Account Name box, enter the name of the account. In the Account Path box, select the path to the account using the Account Path arrow. Click Finish to save the definitions.

To save your settings, click Save Changes.

3-23 UniData 7.3 New Features

Choosing Files to Replicate

Click Choose Files to Replicate. If you have not previously defined a group, the following message appears:

EDA Replication 3-24

Click Create to define a replication group. The Choose Files to Replicate dialog box appears, as shown in the following example:

Defining Group Name

Enter a unique name for the subscribing group in the Group ID box,

Defining Replication Level

In the Level box, select the level of replication. You can only choose FILE for EDA Replication.

3-25 UniData 7.3 New Features

Select Files to Publish

In the Files area of the Publishing Group Details dialog box, click Add to select the files you want to publish. A dialog box similar to the following example appears:

By default, both the data portion and the dictionary portion of the file are selected. If you do not want to publish the data portion of the file, clear the Data check box. If you do not want to publish the dictionary portion of the file, clear the Dict check box. To enable the ability to update the file on the subscribing system, select the Sub Writable check box.

EDA Replication 3-26

Select the files you want to publish, then click Finish.

Define Replication Distribution Details

In the Distributions area, click Add to define replication distribution details. The Replication Distribution Details dialog box appears, as shown in the following example:

Select the local system using the System Name arrow.

Select the Replication mode you want to use. For information about types of UniData Replication, see Chapter 1, “Introduction and Terminology” in the UniData Data Replication manual. Click Finish.

Enter RFS Failover System

If you want this publishing group to automatically failover to a standby system, select the standby system in the RFS Failover System box.

3-27 UniData 7.3 New Features

Set Configuration Parameters

Set any of the configuration parameters necessary for your environment in the Configuration area of the Publishing Group Details dialog box, as shown in the following example:

For information about these parameters, see Chapter 2, “Installing and Configuring UniData Data Replication” in the UniData Data Replication manual.

To save your settings, click Save Changes.

EDA Replication 3-28

Synchronizing Replication Files

Click Synchronize replication files. The Synchronize replication files dialog box appears, as shown in the following example:

Select the files from the source account that you want to synchronize with the target account, then click Start File Synchronization.

3-29 UniData 7.3 New Features

If the file you are trying to synchronize already exists on the target file, UniData displays the following message box:

If you want to overwrite the existing file, select Synchronize existing files in the target account.

Click OK. This process may take several minutes or longer, depending on the size of the files.

While UniData is synchronizing the files, it pauses the database.

EDA Replication 3-30

When the synchronization is complete, UniData displays a message similar to the following example:

Creating EDA Schemas for Replicated Files

You can create a Default EDA schema for the files you selected, which maps each D-type attributes, or select the attributes you want to map.

3-31 UniData 7.3 New Features

Creating Default EDA Schemas

To create a default EDA schema, click Create Default EDA Schemas. The following dialog box appears:

Select the data source for which you want to create schemas, or click New Data Source to create a new data source. Click OK.

UniData displays informational messages when creating the schemas, as shown in the following example:

Creating EDA Schemas

To select the dictionary attributes you want to map, click Create EDA Schemas.

Select the data source for which you want to create schemas, or click New Data Source to create a new data source. Click OK.

EDA Replication 3-32

Select the dictionary attributes for which you want to create a schema. If you are creating schemas for multiple files, click the arrow next to the current file name to proceed to the next file.

The following example illustrates the U2 Dictionary Attributes dialog box:

When you have finished selecting the dictionary attributes for which you want to create schemas, click Finish.

UniData creates the schema files and generates informational messages.

3-33 UniData 7.3 New Features

Converting Replicated Files to EDA Files

To convert replicated files to EDA files, click Convert the Replicated Files to EDA Files. A dialog box similar to the following example appears:

EDA Replication 3-34

Select the files you want to convert to EDA. Make sure you have synchro- nized the files before converting them to EDA. Click EDA Convert. The following dialog box appears:

Select the type of conversion you want to use. Valid options are:

 Reconvert – If the file has already been converted to EDA and you want to convert the file again, select Re-convert  Force – Drops existing tables before creating new ones  Verbose – Show detailed messages during the conversion process

Click Finish. UniData suspends replication during the conversion process and converts the replicated files you selected to EDA files and displays infor- mational messages.

3-35 UniData 7.3 New Features

Chapter HTTP Digest Authentication 4

HTTP Digest Authentication ...... 4-2 How Digest Authentication Works...... 4-2 WWW-Authenticate Response/Proxy-Authenticate Header Parameters 4-4 Authorization Request Header Parameters ...... 4-5 Using Digest Authentication with Microsoft IIS Web Servers . . . 4-6 Secure HTTP Authentication through Proxy ...... 4-7 Multiple Same-Name Headers in Response Messages . . . . . 4-8 C:\Program Files (x86)\Adobe\AdobeFrameMaker10\UniData 7.3.4\NEWFEATURES\NEWFEATCH04.fm 8/14/13

HTTP Digest Authentication

The HTTP 1.1 standard specifies two authentication methods, Basic and Digest. The Basic authentication method passes credentials (user name and password) in clear text format to an HTTP server. These credentials can be intercepted. To improve security, Digest Authentication has been added to UniData 7.3. With digest authentication, instead of passing credentials in clear text, a digest is passed. The digest uses a time stamp and random data in the authentication message header, and the real password is not exposed. Digest Authentication is based on RFC2617.

How Digest Authentication Works

When a Web resource is protected, a client that wants to access the resource through an HTTP request message has to authenticate itself to the server. According to the RFC 2617 specification, if the initial client request does not contain valid authentication data, the HTTP server sends back a response message with HTTP status code 401. For Digest authentication, the response message looks similar to the following example:

HTTP/1.0 401 UnauthorisedServer: HTTPd/0.9Date: Sun, 10 Apr 2009 20:26:47 GMTWWW-Authenticate: Digest reaom=”[email protected] qop=”auth,auth-int”, nonce=”dcd98b7102dd2f0e8b11d0f600bfb0c093”, opaque=”5ccc069c403ebaf9f0171e9517f40e41”Content-Type: text/htmlContent- Length: 311 Error

401 Unauthorised.

4-2 UniData 7.3 New Features C:\Program Files (x86)\Adobe\AdobeFrameMaker10\Un

When receiving this response, the HTTP client has to obtain credentials, calculate the digest, and append an “Authorization” header in a new request, similar to the following example:

GET /dir/index.html HTTP/1.0 Host: localhost Authorization: Digest username=”Mufasa”, realm=”[email protected]”, nonce=”dcd98b7102dd2f0e8b11d0f600bfb0c093”, uri=”/dir/index.html”, qop=auth, nc=00000001, cnonce=”0a4f113b”, response=”6629fae49393a05397450978507c4ef1”, opaque=”5ccc069c403ebaf9f0171e9517f40e41”

According to RFC 2617, this is how the digest is calculated:

HA1 = MD5(A1) = MD5(username:realm:password)

If the Quality of Protection (qop) value in the WWW-Authenticate header is “auth” or unspecified, the digest is calculated as:

HA2 = MD5(A2) = MD5(method:digestURI)

If the qop value is “auth-int” this is how the digest is calculated:

HA2 = MD5(A2) = MD5(method:digestURI:H(entity-body))

The response is calculated as:

Response = MD5(HA1:nonce:nonceCount:clientNonce:qop:HA2)

The difference between a the “auth” qop value and the “auth-int” qop value is that “auth-int” include the request’s body, not the headers, into the calcu- lation of HA2, which can detect any modification of the request content during transfer. This ensures data integrity. These calculations are performed by UniBasic.

4-3 C:\Program Files (x86)\Adobe\AdobeFrameMaker10\UniData 7.3.4\NEWFEATURES\NEWFEATCH04.fm 8/14/13

WWW-Authenticate Response/Proxy-Authenticate Header Parameters

The following table describes the parameters for the WWW-Authenticate Response and Proxy-Authenticate headers:

Parameter Description

Digest Indicates that the server is asking for Digest authentication.

Realm Specifies the authentication realm. The client understands the realm and gives the client an idea of the credentials being requested.

Nonce A server-generated value used in the calculation of the digest, returned to the server unchanged. This proves that the client has a valid response.

Opaque A value the client must return to the server unchanged.

Stale This will normally be in response to the client’s request containing an authorization header. If the value is “true,” the nonce used in the digest calculation is aged, signaling a possible replay attack.

Algorithm Specifies the hash algorithm to use when computing the digest. The default is MD5, but can be specified as MD5-sess, which means the client calculates the digest only once for a session.

Qop Quality of protection. Valid options are authentication only or authentication plus integrity protection. WWW-Authenticate Response/Proxy-Authenticate Header Parameters

4-4 UniData 7.3 New Features C:\Program Files (x86)\Adobe\AdobeFrameMaker10\Un

Authorization Request Header Parameters

The following table describes the parameters in the Authorization request header.

Parameter Description

Digest Indicates that the client is responding to a Digest access authenti- cation challenge.

Realm Specifies the authentication realm. This realm should be under- stood by the client, and gives the client an idea of which credentials are being requested. It must match the value in the WWW-Authen- ticate response header.

Nonce A server-generated value to use in the calculation of a digest, which should return to the server unchanged. This is used to prove that the client has a valid response.

Opaque A value the client use return to the server unchanged. Opaque does not participate in a digest.

Algorithm Specifies a hash algorithm to use when computing a digest. The default is MD5. This must be the same as the algorithm in the WWW-Authenticate header on the server.

Qop Quality of protection, either authentication only or authentication plus integrity protection.

Uri Specifies the requested URI on the server. The URI is repeated here to guarantee it will work in a multi-intermediate proxy environment.

Nc Client nonce count. Indicates the number of times the client has used this nonce for calculating digests.

Cnonce Client nonce.

Response Digest calculated based algorithm. Authorization Request Header Parameters

4-5 C:\Program Files (x86)\Adobe\AdobeFrameMaker10\UniData 7.3.4\NEWFEATURES\NEWFEATCH04.fm 8/14/13

Using Digest Authentication with Microsoft IIS Web Servers

The following conditions must be met if using HTTP Digest Authentication against Microsoft IIS Web servers:

 The IIS server must be running Windows Server 2000 or above.  The domain to which the IIS server is a member must include a domain controller that is running Windows 2000 or Windows Server 2003.  The IIS server and a user logging on to the IIS server must belong to the same domain. They can, however, be joined through trusts.  Each user that needs to be authenticated must have a legitimate account in the Active Directory on the particular domain controller.  User passwords must be stored in a reversibly encrypted format in the Active Directory. You can use the Active Directory Users and the computer console to access the Account tab of the Properties dialog box to enable reversible encryption.  Recent Windows 2003 and IIS versions support “Advanced Digest Authentication” which does not require that the user password be stored in reversibly encrypted format. The password is stored in predigested format. To enable this feature, the IIS server and the domain controller must both be running on Windows 2003 with the latest service pack.

4-6 UniData 7.3 New Features C:\Program Files (x86)\Adobe\AdobeFrameMaker10\Un

Secure HTTP Authentication through Proxy

In secure HTTP mode, if a request goes through an intermediary, such as a proxy server, the request is using “tunnel mode” through the proxy, which means that the encrypted message is not decrypted by the proxy, just passed through to the destination server. Before this release, UniData could not handle a situation where the proxy itself requested authentication. At this release, Proxy authentication is supported in both Basic and Digest formats.

In previous releases of UniData, a secure HTTP request could be sent through a proxy server, and UniData could perform authentication to the destination web server through the proxy with a secure connection. However, if the proxy server required UniVerse to authenticate, indicted by a response with a 407 status, UniData could not establish a secure connection.

In UniData 7.3, UniData performs proxy authentication automatically when a secure HTTP connection is requested. You must set up credentials, including user name, realm and password, prior to invoking a secure HTTP request.

4-7 C:\Program Files (x86)\Adobe\AdobeFrameMaker10\UniData 7.3.4\NEWFEATURES\NEWFEATCH04.fm 8/14/13

Multiple Same-Name Headers in Response Messages

An HTTP response message can contain multiple headers with the same name. For example, you can receive a response message with “Set-Cookie” headers, or multiple “WWW-Authenticate” headers.

The getResponseHeader() function currently always returns the first header with a matching name. At this release, the getResponseHeader() and SOAPGetResponseHeader() functions return all values with the specified header to a dynamic array.

Consider the following response message:

HTTP/1.1 401 Unauthorized Server: Microsoft-IIS/5.1 Date: Sun, 22 Nov 2009 20:23:34 GMT WWW-Authenticate: Negotiate WWW-Authenticate: NTLM WWW-Authenticate: Basic realm=”defaultRealm” Connection: close Content-Type: text/html Content-Length: 4046 After calling getResponseHeader(httphandle,”WWW-Authen- ticate”,headers), the output parameter will contain the following attribute mark-separated value:

NegotiateNTLMBasic realm=”defaultRealm”

4-8 UniData 7.3 New Features

Chapter Disabling U2 Data Replication 5

Disabling U2 Data Replication ...... 5-2 Replication DISABLE Mode ...... 5-3 Replication ENABLE Mode ...... 5-5 Runtime Error Handling ...... 5-6 Recovering the System ...... 5-7 Enabling or Disabling U2 Data Replication ...... 5-9 Enabling or Disabling U2 Data Replication through XAdmin . 5-9 Exception Action Script ...... 5-11 Error Messaging ...... 5-12 Disabling U2 Data Replication

In U2 Data Replication suspension mode, the publisher continues generating replication logs and reserves them for the next synchronization process. This feature can quickly synchronize the standby database without a lot of user intervention. However, if replication is suspended too long, either because of the subscriber system failure and recovery, or for subscriber system mainte- nance, the publishing system may accumulate too many replication logs that consume a lot of disk space and slow down the system. In an extreme case, the system may run out of the disk space and crash the publishing system.

U2 Data Replication provides subscriber database refreshing as an alter- native method to synchronizing the subscriber database instead of replication synchronization. Subscriber database refreshing is a backup from the publishing system and restoring it to the subscribing system, with some limited unavailable time on the publishing system. You may choose this method if the subscribing system cannot be fully recovered on its own, or in the case of a longer suspension period. In either of these situations, subscriber database refreshing will abandon the replication logs on the publishing system.

An issue emerged that if an upcoming Subscriber Database Refreshing is scheduled, there was no need for the publishing system to keep running replication and reserving replication logs that would eventually be abandoned. U2 Replication Disablement is an enhancement to the U2 Data Replication that allows a database administrator to temporarily disable the replication system and stop generating unnecessary replication logs for better performance, and to avoid running out disk space which could trigger system crash.

5-2 UniData 7.3 New Features If an RFS-enabled publishing system crashes, the current recovery has two steps. First, the RFS recovery process applies before image logs to the database files and restores the physical consistency of the files. Then the repli- cation recovery process handles the after image logs. If there is no intentional failover, the replication recovery process applies the logs to the database. If there is a failover or intentional failover, the RFS after image logs are used to resynchronize to the failed-over system. This mechanism ensures data consistency and quick synchronization should failover occur after the primary system crash. However, if replication recovery fails or some other serious failures occur and the replication system cannot recover, the DBA may want to disable replication and have full RFS recovery to quickly overcome the failure and recover the system. The new U2 Replication Disablement mechanism is addressing this function.

5-3 Replication DISABLE Mode

In replication DISABLE mode, all replication functions stop, but the repmanager continues to run. The following actions occur when U2 Data Replication is disabled:

 All replications are suspended.  All publishing processes stop.  The udt and tm processes stop generating replication logs.  The repmanager daemon only accepts the ENABLE, RECONFIG, and STOP commands.  The SYNC, SUSPEND, and RESET commands do not proceed until Replication is enabled.  The DISABLE mode persists after stopping and restarting UniData.  Reconfiguring U2 Data Replication does not affect the DISABLE mode.

If one of the following events occurs, U2 Data Replication automatically switches to the DISABLE mode:

 The database administrator issues a DISABLE command.  A fatal replication system error occurs. The error handling procedure sends a request to disable replication.  UniData is started with startud -D.

When the Replication Manager receives a DISABLE request, it performs the following tasks:

 Suspends all active replications.  Sets the Replication Disable flag and saves it in the udrepsys.log.  Issues the dbpause command.  Exits the publishing processes.  If the ClearLog option was specified, clears the replication log files for all replication groups.  Issues the dbresume command.  If the disable request was issued in error handling, executes the Exception Action script, if defined, on the local system.

5-4 UniData 7.3 New Features When the Replication Manager starts with the disable option, it loads the replication configuration, sets the Replication Disable flag and saves it in the udrepsys.log, and continues running in DISABLE mode.

5-5 Replication ENABLE Mode

The Replication ENABLE mode is the normal running mode for U2 Data Replication. If U2 Data Replication is disabled, it is enabled if the system administrator issues the ENABLE command, or UniData is started with the - i option.

When the Replication Manager receives an ENABLE request, it performs the following tasks:

 Issues the dbpause command.  Clears the Replication System disable flag and saves it in the udrepsys.log file.  Resets the Log Sequence Number (LSN} for all groups.  Clears the replication log files.  Starts the publishing processes for all publishing groups.  Issues the dbresume command.  Issues the SYNC command to all replications if AUTORESUME in enabled.

5-6 UniData 7.3 New Features Runtime Error Handling

If you disable U2 Data Replication, the runtime error handling of U2 Data Replication changes. If a U2 Data Replication incurs a fatal error, U2 Data Replication now disables U2 Data Replication and continues running UniData in DISABLE mode rather than crashing the publishing system.

The following system errors will result in the publishing system being disabled:

 When a udt or tm processes encounters a Log Extension File (LEF) error when handling replication logs.  When the publishing system cannot access the Log Reserve File (LRF)  When the publishing process is terminated.  When the publishing process exits abnormally.

Applications continue to run in DISABLE mode.

We recommend that you write and deploy a U2 Replication Exception Action script. If U2 Data Replication is disabled due to an unexpected event, the Replication Manager executes the script.

On a subscribing system, when a subscribing process or replication writer process encounters an LEF or LRF failure, U2 Data Replication is suspended.

5-7 Recovering the System

At UniData 7.3, the -D option has been added to the startud command. This starts UniData and U2 Data Replication in DISABLE mode.

If the Recoverable File System (RFS) is enabled and you are starting UniData after a system crash, the crash recovery behaves differently between the DISABLE mode and the ENABLE mode. Regardless if the system is in DISABLE mode because of starting UniData with the -D option or disabled because of a system crash, full RFS recovery is performed, and before image and after image log files are applied.

In ENABLE mode, the restart process applies only the before image log files and generates replication recovery logs from the after image logs. If a failover occurred, U2 Data Replication uses the replication recovery logs in the synchronization process. Otherwise the Replication Writer processes apply the replication recovery logs to the database.

The DISABLE mode supports recovering from a failed recovery process. If you try to recover the system when U2 Data Replication is in ENABLE mode and the recovery fails, you can still try to recover the system in DISABLE mode.

The following steps describe the steps for the second recovery if the first recovery fails:

1. The init_sm process creates the Replication Manager process. If you specify the -D option when starting UniData, the Replication Manager disables U2 Data Replication. 2. The init_sm process starts the Restart process for recovery. 3. The Restart process applies the before image logs to the database. 4. If U2 Data Replication is disabled, the Restart process applies the after image log files to the database. Otherwise, the Restart process generates replication recovery logs from the after image logs. 5. The Restart process resets the before image and after image logs. 6. The init_sm process stops the Replication Manager process and starts the sm daemon.

5-8 UniData 7.3 New Features 7. A new Replication Manager is started. If U2 Data Replication is disabled, the Replication Manager writes the replication recovery logs to the database. If U2 Data Replication is enabled, the Repli- cation Manager starts a replication procedure that either generates a failover log from the replication recovery logs if the replication has failed over, or reapplies the replication recovery logs to the database if the replication has not failed over.

5-9 Enabling or Disabling U2 Data Replication

You can enable or disable U2 Data Replication using the startud command, the ud_repadmin command, or through the U2 Extensible Administration Tool (XAdmin).

Enabling or Disabling U2 Data Replication through XAdmin

To enable or disable U2 Data Replication through XAdmin, from the Admin Tasks view, click Replication, then click the Replication Tool tab. A dialog box similar to the following example appears:

To enable U2 Data Replication, click the Target for which you want to enable replication, then click Enable.

To disable U2 Data Replication, click the Target for which you want to disable replication, then click Disable.

You must be logged in as root to enable or disable U2 Data Replication.

5-10 UniData 7.3 New Features Enabling or Disabling U2 Data Replication Using ud_repadmin

Use the ud_repadmin command to enable or disable U2 Data Replication from the level.

To disable U2 Data Replication, use the disable option:

ud_repadmin disable [-clearlog] [-verbose]

The -clearlog option clears the replication log files. The -verbose option displays messages to the screen.

To enable U2 Data Replication, use the enable option:

ud_repadmin enable [-verbose]

The -verbose option displays messages to the screen.

You must be logged in as root to enable or disable U2 Data Replication.

Disabling U2 Data Replication Using startud

You can use the startud command to enable or disable U2 Data Replication.

startud -D

If you use the -i option with the startud command, U2 Data Replication will be enabled when the database starts. This option should be used with caution, as it triggers broader actions than merely enabling U2 Data Repli- cation. If you use the -i option on an RFS system after a crash, RFS recovery is disabled. This could result in file corruption to recoverable files. With U2 Data Replication, the LSN numbers are also reset and the LRF logs abandoned.

5-11 Exception Action Script

You can write and deploy and Exception Action script that U2 Data Repli- cation executes when replication is suspended unexpectedly. You can register the script using the EXCEPTION_ACTION phrase in the local system repsys file. If U2 Data Replication is suspended unexpectedly, U2 Data Replication executes the script and sets up environment variables to indicate the error.

The following table describes the environment variables returned by the U2 Data Replication Manager:

Environment Variable Description

UNIREP_GRPNAME The replication group that triggered replication disablement.

UNIREP_REMOTESYS The local system name defined in the repsys file.

UNIREP_REPTYPE Empty.

UNIREP_ERRCODE The replication system error code that triggered repli- cation disablement.

UNIREP_ERRSTRING The error message pertaining to the error code.

The following environment variables were added at UniData 7.3:

UNIREP_REPSTATUS The replication status. Valid values are REP_SUSPENDED or REP_DISABLED.

UNIREP_PID The process ID that triggered replication disablement. This value is empty if the status is REP_SUSPENDED.

UNIREP_OSERRNO The operating-system error code that triggered the disablement. This value is empty if the status is REP_SUSPENDED. Environment Variables

5-12 UniData 7.3 New Features Error Messaging

When U2 Data Replication is disabled, detailed error messages are written to the rm.log. The following example illustrates messages written to the log when a publishing process is terminated:

Wed Oct 5 10:53:17 RM: sigchld received: pid=393236, dsig=9 Replication daemon on group 0(393236) is killed(9)! Wed Oct 5 10:54:06 RM: Force stop group acct_grp(0) Wed Oct 5 10:54:06 RM: kill publistener 454762 RM trying to kill 454762 by sig 9 RM: kill 454762 Wed Oct 5 10:54:06 RM: kill Publisher 393236 RM trying to kill 393236 by sig 9 RM: kill 393236 Wed Oct 5 10:52:48 2011: Fatal error from process 393236: Group=0, Rep Error=2560:Publisher killed; OS Error=0:Error 0 Replication start disabling replication! RM: Force RFS group commit. Replication is Disabled! RM: Pause database activity. CheckPoint time before ForceCP: Wed Oct 5 10:55:53 2011 .CheckPoint time after ForceCP: Wed Oct 5 10:58:55 2011 .CP has been forced successfully. DBpause successful. RM: Force RFS group commit. Stopped Publishing Group acct_grp successfully. RM: Disable Replication. RM: Resume database activity. DBresume successful.

Execute Replication Exception Action program /disk1/repacct/repeventtrig.sh Publisher killed, RM disabled replication successfully.

5-13

Chapter U2 Metadata Manager 6

U2 Metadata Manager ...... 6-2 U2 MDM Editor ...... 6-2 Schema Tool ...... 6-2 Generating Data in U2 MDM ...... 6-2 Schemas in U2 MDM ...... 6-3 U2 Metadata Manager

The U2 Metadata Manager (U2 MDM) client is an Eclipse-based tool that facilitates schema management at an account level. It is also used to create the metadata files used in data type enforcement. The U2 Metadata Manager is a client-side tool used to make changes to the U2 database servers, which allows users to better describe the type of data stored in locations of their data files. It generates metadata based on existing U2 dictionaries and their relationship to the data files. The U2 Metadata Manager allows users to create a basis for generating account level repositories for data type enforcement.

This tool, and the associated database changes, go beyond the U2 dictionary allowing the U2 developer to define the type of data expected in a given file, optionally enforcing that data type, by either blocking or warning and logging about data violating the specified data type.

The U2 MDM perspective contains the U2 MDM editor, as well as multiple panes, or views. From these views, you can view your U2 dictionary, define metadata to describe the file's data, and create first normal form maps of your metadata files.

U2 MDM Editor

When you create a new metadata file, 1NF map, or schema, you will view the results in the U2 MDM editor. The editor is made up of three panes; Graphic, Metadata, and 1NF.

Schema Tool

The U2 MDM tool provides you with a utility that verifies your schema files are SQL-compliant. It does this by running JDBC queries against the database using the using the schema generated from the 1NF map.

6-2 Generating Data in U2 MDM

A metadata file is used to establish data type enforcement on your U2 files and to map your dictionary information to a first normal form file. The metadata file is used to determine which synonym to use in cases where multiple field aliases exist and to map field conversions and format specifications to the corresponding SQL data type.

To use a UniData file with JDBC or ODBC, it must be presented to JDBC or ODBC applications as a set of related 1NF tables. This is called 1NF mapping of your UniData or UniVerse data. Note that this set of 1NF tables is only a representation of the UniData or UniVerse data, and the data itself still resides in the original files only. This mapping is performed automatically by U2 MDM once you decide which data you want to expose to the JDBC or ODBC applications.

Schemas in U2 MDM

In U2 MDM, the editor allows manipulation of metadata and first normal form (1NF) map data. The metadata defines what each location in the file contains. This metadata describes the type of data (in SQL terms), whether the field can be set to null, and whether the data type is being enforced by the database. These factors help in the creation of a 1NF map. The 1NF map allows you to specify which of the fields described in the metadata you want to be accessible by 1NF tools such as ODBC or JDBC. This 1NF map is used to generate the schema. Generating a schema means that the metadata for the fields present in the 1NF map, such as field location and data type, and the 1NF specific items, such as table and column names, are combined in the U2 system tables comprising the schema.

6-3 UniData 7.3 New Features VSG Schemas in U2 MDM

The U2 Metadata Manager tool provides functions similar to those found in VSG. Both tools create a U2 schema as an end result. The U2 MDM tool is able to understand a schema created using the VSG tool. U2 MDM can display this data, but it cannot manipulate the schema information. This feature can be useful if you want to review existing schema information prior to using U2 MDM to generate a new schema. Once the U2 MDM tool generates a schema for a given database file, any existing schema for that file, whether generated by U2 MDM or VSG is replaced with the new schema. In the event that the schema generation fails, the existing schema is deleted and the problem preventing the new schema from being generated must be addressed before a new schema can be created.

VSG is able to read the schema information created by the U2 MDM tool, but it cannot modify the schemas generated by U2 MDM.

6-4

Chapter Miscellaneous Enhancements 7

Changes to FILEINFO() ...... 7-2 New U2 Data Replication File ...... 7-3 UniData Upgrades and Replication ...... 7-5 U2 Extensible Administration Tool Help ...... 7-6 Changes to FILEINFO()

The UniBasic FILEINFO(24) function, related to U2 Data Replication, has been modified and now returns the following codes:

1 - The file is being published 2 - The file is being subscribed 3 - The file is subwriteable 0 - The file is not published, subscribed, or subwriteable.

Note: If U2 Data Replication is not running, the FILEINFO(24) function will return 0 for any file used with this function.

7-2 UniData 7.3 New Features New U2 Data Replication File

At this release, the repacct.def file, located in the /usr/ud73/include directory on UNIX or the UDTHOME\include directory on Windows platforms, has been added. This file includes a default list of files to be included or excluded for each account-level replication group.

7-3 Following is an example of the repacct.def file:

# Definition of default excluded objects for account replication EXCLUDED_FILE=DICT.DICT EXCLUDED_FILE=DICT.VOC EXCLUDED_FILE=SQL.HELP EXCLUDED_FILE=BCI.HELP EXCLUDED_FILE=BASIC.HELP EXCLUDED_FILE=HELP.FILE EXCLUDED_FILE=ERRMSG EXCLUDED_FILE=SYS.HELP EXCLUDED_FILE=SYS.MESSAGE EXCLUDED_FILE=SYS.TERMINALS EXCLUDED_FILE=REVISE.DISCUSSIONS EXCLUDED_FILE=REVISE.PROCESSES EXCLUDED_FILE=STAT.FILE EXCLUDED_FILE=TESTQ

EXCLUDED_FILE=__SAVEDLISTS_ EXCLUDED_FILE=_PARTFILES_ EXCLUDED_FILE=_COMO_ EXCLUDED_FILE=_PH_ EXCLUDED_FILE=_UFD_ EXCLUDED_FILE=_DEVICE_ EXCLUDED_FILE=UD;ACCESS EXCLUDED_FILE=UD.ACCOUNT EXCLUDED_FILE=UD_LOGS EXCLUDED_FILE=UD.TRANS

EXCLUDED_FILE=UD_UDRPUB EXCLUDED_FILE=UD_UDRSUB EXCLUDED_FILE=UDRSYS

EXCLUDED_FILE=UD_SCHEMA EXCLUDED_FILE=UD_ASSOC EXCLUDED_FILE=UD_COLUMNS EXCLUDED_FILE=UD_TABLES EXCLUDED_FILE=UD_VIEWS EXCLUDED_FILE=UD_USERS

FILE=SUB_WRITEABLE DATA VOC FILE=SUB_WRITEABLE AE_DOC FILE=SUB_WRITEABLE _MAP_ FILE=SUB_WRITEABLE _KEYSTORE_ FILE=SUB_WRITEABLE _SAVEDLISTS_ FILE=SUB_WRITEABLE PTERM.FILE FILE=SUB_WRITEABLE UNIVERSE.MENU. FILE FILE=SUB_WRITEABLE UD.SAVEDLISTS

7-4 UniData 7.3 New Features UniData Upgrades and Replication

It is possible to use the failover technology within Replication to perform a phased upgrade of systems, such as upgrading one system while the other system is being used as the production system.

You cannot use U2 Data Replication at UniData 7.3 with a server running a previous version of UniData.

If you want to perform a phased upgrade, please review the table below or check with U2 Technical Support to see if there are any prerequisites for the version or versions concerned. When running U2 Data Replication, you may have different versions of UniData on your publisher and subscriber systems. From time to time, however, enhancements or fixes to U2 Data Replication result in a change to the communication protocol used. All systems in a U2 Data Replication configuration must be running the same protocol. Additionally, replication log structure changes can require the installation of compatible releases on all servers, even if the protocol has not changed.

The following table summarizes compatible ranges of UniData versions for U2 Data Replication systems:

Earliest Latest Release Release Notes

6.0.6 7.1.6 Protocol 10002

7.1.7 7.1.7 Protocol 10003

7.1.8 7.1.16 LEF log structure change

7.1.17 7.1.23 System byte/order fix

7.2.0 7.2.curren Protocol 10004 - Account Level Replication & log t structure change.

7.3.0 7.3.curren Protocol 10006 - Replication Disablement t U2 Data Replication Protocols

7-5 U2 Extensible Administration Tool Help

A first iteration of U2 Extensible Administration Tool Help is built into XAdmin V3.10.1. To access the Help system, select Help > Help Contents from the XAdmin main menu.

The U2 Extensible Administration Tool Help covers the following subjects in this initial release: Getting started

 Overview of XAdmin and the workspace  Creating and connecting to U2 servers Admin tasks

 Accounts· Creating and viewing U2 accounts  Disk Space Viewing and managing disk space usage  ·SSL Configuration Generating certificate signing requests Generating SSL certificates Creating security context records Configuring SSL for U2 servers

These topics give you a preview of other Help content to come. We plan to add content to this Help system iteratively in future releases of U2 DBTools.

7-6 UniData 7.3 New Features