Use direct load materialization to materialize data between different
primary and replicate databases. Direct load materialization is also available between two
SAP ASE databases.
Direct load materialization differs from other automatic materialization methods:
- This automatic materialization method can be used for SAP ASE,
Microsoft SQL Server, Oracle, and DB2 UDB primary databases.
- Materialization queues are not used with direct load
materialization. Data is loaded directly from a primary table into a replicate
table.
- Replication is suspended selectively:
- Multiple tables can be concurrently materialized with direct
load materialization.
- When subscription materialization stops due to an error, regular
replication of other tables is not suspended.
- Multiple threads can be used to load data from one primary table
to its corresponding replicate table. You can tune this multi-threaded behavior
with max_mat_load_threads.
- When
a subscription is materialized using direct_load, you can
use the configuration parameter dsi_check_unique_key to
control the SAP Replication Server behavior on checking the no unique key
criteria. This configuration parameter is available at the server-level through
configuration replication server and at the
connection-level through alter connection. Its possible
values are on and off, and on is its default value.
If
dsi_check_unique_key is on, the primary tables with
no unique key must not have any activity until the subscription is VALID. If
the activity occurs, the subscription may fail during the catch-up phase and
the subscription is aborted, and marked with error. When the subscription is
aborted, it must be dropped and recreated. Before recreating the
subscription, cleaning up the replicate table (like truncate table) is
required.
When you set
dsi_check_unique_key to off,
the subscription may be created successfully, but may potentially have data
inconsistency. Turn off this configuration parameter only under these
circumstances to ensure data is correct following subscription validation:
- There cannot be any delete statements at the primary table with no
unique key.
- There cannot be any insert statements of duplicate rows at the
primary table with no unique key.
Direct load materialization can be used to materialize data
from:
-
SAP ASE to SAP ASE
-
SAP ASE to SAP HANA database
-
Microsoft SQL Server to SAP HANA database
-
Oracle to SAP HANA database
-
DB2 UDB to SAP HANA database
Direct load materialization is enabled through the
direct_load option of the
create subscription command. When using direct load materialization,
note these restrictions for
create subscription:
- When the direct_load
option is used, no other subscription can be created or defined at the same
time for the same replicate table.
- The direct_load option is
for subscriptions to table replication definitions only and is used with
without holdlock. It cannot be used
with the without materialization or
incrementally options.
- The user and password options are used only with direct_load.
- You cannot use the direct_load option against a logical or alternate connection.
The primary connection in the replication definition and the replicate
connection in the subscription must be physical connections.
- The maintenance user of the primary database cannot be used
in the user and password options to create subscriptions.
- You cannot use other automatic materialization methods if
the primary database is not SAP ASE. The only automatic materialization
option for Oracle or other databases is direct load materialization.
- You cannot drop a subscription with the with purge option if the replicate database is
not SAP ASE.
- The direct_load option is
available only if the replicate SAP Replication Server site version and
route version are 1571100 or later.
- You can use row filtering, name mapping, customized function
strings and datatype mapping with subscriptions created using the direct_load option.
- If you create a subscription with the
direct_load option and if the number of concurrent
subscription requests exceeds num_concurrent_subs, SAP
Replication Server marks the subscription as PENDING. SAP Replication Server
processes the subscription only after the number of concurrent subscription
requests falls below num_concurrent_subs.
Primary Database Considerations
- Depending upon the primary database, SAP Replication Server
either connects directly to the primary database, or connects to the
Replication Agent for that primary database.
- You must have Replication Agent version 15.7.1 SP100 or
later to materialize data from a non-SAP ASE primary database using direct
load materialization.
- When invoking the create subscription
command, if SAP Replication Server connects to Replication Agent, it needs
to use the Replication Agent administrator login name and password.