To configure user journal replication processes to support bi-directional data flow, you need the following:
-
A data group (DG) definition is unique to its three part name (Name, System 1, System 2). This allows two DG definitions to be configured to share the same data group name with system 1 and system 2 reversed. You must specify both DG definitions to use the same Data source (DTASRC) parameter value. For example, in the following table both DG definitions use DataGroup1 as the data group name and both specify *SYS1 (System 1) as their DTASRC. This results in one DG definition that replicates from A to B, while the other replicates from B to A.
Example of DG Definitions with reversed system names for bi-directional replication.Data Group Name
System 1
System 2
DataGroup1
A
B
DataGroup1
B
A
-
Both data group definitions must be configured for single-threaded database apply processing. A numeric value for the Number of DB apply sessions (NBRDBAPY) parameter indicates single-threading. A data group that has a non-numeric value for this parameter is part of a resource group and requires conversion to singled-threading before it can be configured for bi-directional user journal replication.
-
For each data group definition, set the DB journal entry processing (DBJRNPRC) parameter so that its Generated byMIMIX element is set to *IGNORE. This prevents any journal entries that are generated by MIMIX from being sent to the target system and prevents looping.
-
The files defined to each data group must be configured for keyed replication. Use topics Keyed replication and Verifying key attributes to determine if files can use keyed replication.
-
Analyze your environment to determine the potential collision points in your data. You need to understand how each collision point will be resolved. Consider the following:
-
Can the collision be resolved using the collision resolution methods provided in MIMIX or do you need customized exit programs? See Collision resolution.
-
How will your business practices be affected by collision scenarios?
For example, say that you have an order entry application that updates shared inventory records such as Figure 15. If two locations attempt to access the last item in stock at the same time, which location will be allowed to fill the order? Does the other location automatically place a backorder or generate a report?
Figure 15. Example of bi-directional configuration to implement file sharing.