RDOHELP72.HLB  —  Replication Option, DEFINE_TRANSFER, More
    After you issue the DEFINE TRANSFER statement, the transfer does
    not execute until one of the following events occurs:

    -  The time specified in the corresponding DEFINE SCHEDULE
       statement arrives

    -  You issue a START TRANSFER NOW statement

    You cannot alter a transfer using RDO. You must either drop
    the transfer and re-create it, or use the SQL ALTER TRANSFER
    statement.

    You must have READ privilege for the relations and views of a
    Oracle Rdb source database that you specify in a DEFINE TRANSFER
    statement. Replication Option returns an error message when you
    specify relations and views in a DEFINE TRANSFER statement for
    which you do not have READ privilege. Replication Option does not
    check for READ privilege for relations and views when you specify
    a database accessed through the Rdb Transparent Gateways.

    You must execute the DEFINE TRANSFER statement outside of the
    scope of a transaction. If you issue this statement when a
    transaction is outstanding, Replication Option returns an error
    message.

    You can refer to relations, fields, and views in a DEFINE
    TRANSFER statement either implicitly or explicitly. When you
    include either the MOVE RELATIONS ALL, SELECT FIELDS ALL, or
    MOVE VIEWS ALL clause, you refer to relations, fields, or views
    implicitly. Replication Option uses the current definitions
    of the relations, fields, and views in the source database and
    stores those names explicitly in the transfer definition. You
    refer to relations, fields, and views explicitly when you include
    the MOVE RELATION, SELECT FIELDS, or MOVE VIEWS clauses and
    supply specific relation, field, or view names.

    All fields that you name in the record selection expression (RSE)
    of the DEFINE TRANSFER statement must also be included in the
    SELECT FIELDS clause. If you do not name the fields explicitly
    in the SELECT FIELDS select-field-name statement or implicitly
    in the select-field-name clause, Replication Option returns
    an error message when the transfer executes, indicating that the
    field name is not found in the symbol table.

    Replication Option transfers those COMPUTED_BY fields that
    depend only on the values of a relation in which the field is
    defined. You cannot transfer views that contain unsupported
    COMPUTED_BY fields. If views that contain unsupported COMPUTED_
    BY fields are specified in the move-views-clause of a DEFINE
    TRANSFER statement, the transfer definition fails. You need to
    redefine the transfer, excluding the views that refer to the
    unsupported COMPUTED_BY fields.

    Replication Option allows you to transfer views in two ways:

    o  Using the move-views-clause

       Replication Option transfers the definition of the view
       when you specify MOVE VIEWS view-name or MOVE VIEWS ALL. You
       must also explicitly or implicitly name in the DEFINE TRANSFER
       statement all the relations, views, or fields on which the
       transferred view definitions are based. The transfer will fail
       if any underlying relations, views, or fields are not named.

    o  Using the move-relations-clause

       Replication Option transfers a view by creating a relation
       in the target database containing the view's records when
       you use the MOVE RELATION clause. This method improves query
       performance in the target database. For example, you can
       achieve the effect of a CROSS clause by transferring a view
       that is a CROSS in the source.

    You specify the relations you wish to move in the move-relations-
    clause and the views in the move-views-clause of the DEFINE
    TRANSFER statement. When you are doing an extraction rollup
    transfer, you specify the relations you wish to move in the
    move-relations-rollup-clause of the DEFINE TRANSFER statement.

    The same clause can occur in a DEFINE TRANSFER statement no more
    than once. You cannot specify the same relation or view more than
    once in the move clauses. If a relation name or view name appears
    in more than one move clause, Replication Option returns an
    error.

    Individual move-relations clauses are separated by semicolons,
    as indicated in the syntax diagrams. You can implement the move-
    relations-clause in two ways:

    o  Specify MOVE RELATIONS ALL

    o  Specify a series of relations separated by semicolons

    The move-relations-clause has the following characteristics and
    limitations:

    o  All fields in each move-relations-clause must reside in the
       same relation.

    o  You cannot name the same relation in more than one MOVE clause
       of a single transfer definition.

    The move-relations-rollup-clause has the following
    characteristics and limitations:

    o  All fields in each move-relations-rollup-clause must reside in
       the same relation.

    o  You cannot name the same relation in more than one MOVE clause
       of a single transfer definition.

    o  For each relation of a move-relations-rollup-clause that you
       enter, you can supply a target relation specification in the
       form of an INTO RELATION clause. You can create one or many
       relations in the target database from several source database
       relations by renaming the target relations in the transfer
       definition.

    o  You cannot specify MOVE RELATIONS ALL or SELECT FIELDS ALL in
       a move-relations-rollup-clause. When you specify these clauses
       in the DEFINE TRANSFER statement, the transfer will fail at
       the time of definition.

    The format of record selection expressions (RSE) that you can
    include in a transfer definition for extraction and extraction
    rollup transfers is more limited than the RSE allowed by RDO. You
    cannot include the following expressions and clauses in the RSE
    of the MOVE clause of the DEFINE TRANSFER statement:

    o  CROSS clause

    o  ANY operator

    o  UNIQUE operator

    o  Host variable

    o  Statistical expressions

    o  FIRST FROM expression

    o  Database key values

    o  Segmented string expressions

    You can specify FIRST clauses, REDUCED clauses, and SORTED BY
    clauses in the RSE of both extraction and extraction rollup
    transfers. You can achieve the effect of a CROSS clause in an
    extraction or an extraction rollup transfer by transferring a
    relation, that is itself a view, defined in the source database
    as a cross of two or more relations.

    The next example shows an extraction transfer definition that
    specifies the FIRST, REDUCED, and SORTED BY clauses in the RSE.
    The transfer also achieves the capability of a CROSS clause by
    moving a view, CURRENT_SALARY. In the source database, CURRENT_
    SALARY is a cross of the EMPLOYEES, SALARY_HISTORY, and JOB_
    HISTORY relations.

    RDO> INVOKE DATABASE FILENAME PERSONNEL
    RDO> DEFINE TRANSFER SALARY_HISTORY EXTRACTION
    cont>  TO NEWNODE::NEWDISK:[NEWDIR]EMP_SALARY
    cont>  MOVE RELATION FIRST 1000 E IN EMPLOYEES
    cont>     REDUCED TO E.LAST_NAME
    cont>     SORTED BY ASCENDING E.LAST_NAME
    cont>     SELECT FIELDS ALL;
    cont>  MOVE RELATION C IN CURRENT_SALARY  SELECT FIELDS ALL
    cont>  LOG IS FIRSTDISK:[FIRSTDIR]EMP_SALARY.LOG
    cont> END.

    Because you cannot use certain expressions to identify required
    records, the resulting groups of records transferred to the
    extraction database might be larger than the number of extracted
    records users will actually use. However, local users on
    the target node can then include precise RSEs accessing the
    extraction database.

    The format of an RSE that you can include in the transfer
    definition for replication transfers is more limited than the
    RSE allowed by RDO. You cannot include the following forms of
    expressions or clauses in the RSE of the MOVE clause of the
    DEFINE TRANSFER statement:

    o  FIRST clause

    o  CROSS clause

    o  REDUCED clause

    o  SORTED BY clause

    o  ANY operator

    o  UNIQUE operator

    o  Host variable

    o  Statistical expressions

    o  FIRST FROM expression

    o  Database key values

    o  Segmented string expression

    Because you cannot use certain expressions to identify required
    records, the resulting groups of records transferred to the
    replication database might be larger than the number of records
    users will actually use. However, local users on the target node
    can then include precise record selection expressions when using
    RDO to access the replication database.

    If a transfer fails during execution, the transfer will begin
    again at the next scheduled retry time if the failure results
    from a nonfatal error.

    This next transfer will start from the beginning to ensure
    consistency with any updates that might have been made to the
    source database.

    Replication Option transfers only definitions for the database,
    fields, and relations specified in the transfer definition. If
    the source database includes additional database entities such
    as indexes, constraints, or access control lists, these are not
    transferred to the target database. You must either directly
    access the individual target database and explicitly define these
    entities or run command procedures to define the entities after
    the transfer executes.

    When relations specified in the transfer definition are created
    in the target database, they are given the access control lists
    (ACLs) that have the Oracle Rdb default values. You can change the
    ACLs in the target database after it has been created.

    Replication Option does not support SQL ANSI-style privileges.
    Target databases that Replication Option creates use the
    default Oracle Rdb ACL-style privileges. SQL ANSI-style privileges
    assigned to a source database are not copied to or preserved on
    target databases during transfers.

    In a transfer definition, you can use logical symbol names to
    name the source database file, the target database file, the
    copy process log file, and the prologue and the epilogue command
    procedure files. However, Replication Option treats these file
    names differently:

    o  Source database file logical names

       If the source file name is a logical symbol that translates
       to a standard OpenVMS file name specification, Replication
       Option performs the logical name translation. The
       SHOW TRANSFER DEFINITION statement shows the source file
       name in its translated form. The logical symbol can also
       translate into strings that, in turn, contain logical symbols.
       As long as the resulting string looks like a OpenVMS file
       specification and the logical symbol is not a concealed device
       name, the translation process is repeated.

       If the logical symbol translates into an Rdb Transparent Gateway
       access string (for example, /TYPE=VIDA/FILE=ACCESS_FILE/...),
       Replication Option does no further translations. Even if
       the VIDA name string contains logical symbol references,
       these references are not translated into OpenVMS file
       specifications. You can use a logical name in place of the
       string to identify an Rdb Transparent Gateway database.

    o  Target database file logical name

       If the target database name is a logical name, it is not
       translated by Replication Option when it is stored in the
       transfer definition.

    o  Copy process log file logical name

       Replication Option translates the log file logical name in
       the same way as source file logical names, with the following
       exceptions:

       o  The log file specification is translated in RDO when the
          DEFINE TRANSFER statement is executed.

       o  These log file names must be standard OpenVMS file
          specifications. Node names or version numbers are not
          allowed.

    o  Prologue and epilogue command procedure file logical names

       Replication Option translates the prologue and epilogue file
       logical names in the same way as the source file logical name,
       with the following exceptions:

       o  The prologue and epilogue file specifications are
          translated in RDO when the DEFINE TRANSFER statement is
          executed.

       o  The log file names must be standard OpenVMS file
          specifications. Node names and version numbers are
          allowed. Replication Option expects node names in file
          specifications to be from one to six characters long.
          DECnet/OSI permits node names to be much longer than
          this. In order to use Replication Option in a DECnet/OSI
          environment, you must define and use short synonyms for
          the long node names. Node name synonyms can be registered
          either in a local or distributed name service database. For
          details on establishing node name synonyms, refer to the
          documentation for DECnet/OSI.

    Prior to Rdb/VMS Version 3.1, data values for text fields were
    sorted in ascending or descending order based on the ASCII
    character set. With Rdb/VMS Version 3.1 and higher (and Oracle Rdb
    Version 5.0 and higher), you can create databases that specify
    different sort sequences on a field-by-field basis. You can
    specify the default for the database as a whole. Replication Option
    has not enhanced transfer definitions to handle collation
    sequences in any way. In addition, target databases created by
    Replication Option do not have the collation sequence attributes
    defined. Sorting in a target database remains ASCII-based.

    Currently, there is no way that users can transfer default
    collation sequences for fields or databases.

    In an extraction transfer, you can change table definitions
    in the source database or definitions of columns on which the
    transferred tables are based. However, those changes are not
    reflected in the transfer definition.

    In replication transfers, you can make such changes until the
    initial transfer begins. Thereafter, any attempts to change
    or delete definitions for tables or columns in the replication
    transfer are not allowed, with the exception of the following
    four column attributes; these attributes can be modified even
    after the initial transfer begins:

    o  Edit string

    o  Default value for DATATRIEVE

    o  Query name for DATATRIEVE

    o  Query header

    However, note that if you do change the attributes listed in a
    source column, a comparable change is not made automatically to
    the target database column. If you want that to happen, you must
    make the change in both the source and the target databases.

    In both extraction and replication transfers, if you make changes
    that cause the source tables or columns to be incompatible
    with the transfer definitions, Replication Option detects these
    differences at the time of transfer execution. The transfer
    fails, the transfer status reflects the failure, and the transfer
    is suspended.

    However, with extractions or initial replications, the copy
    process does not detect changes to the data type of a field.
    For example, you can change a field from the data type CHAR to
    the data type INTEGER without causing a failure.
Close Help