ドライバは、直接と間接の2つのデータ同期モデルをサポートしています。いずれの用語も、同期されるデータの最終的なターゲットに関連して考えるとよくわかります。
次の節では、直接および間接同期が購読者および発行者チャネルの両方でどのように機能するかを説明します。
間接同期は、中間ステージングテーブルを使用して、アイデンティティボールトとデータベース間のデータを同期します。
次の図では、間接同期が購読者および発行者チャネルの両方でどのように機能するかを示します。次のシナリオでは、1つまたは複数の顧客テーブルおよび中間ステージングテーブルを保持できます。
Figure 1-2 購読者チャネルでの間接同期

購読者チャネルは、同期スキーマの中間ステージングテーブルを更新します。同期トリガは、次に、データベース内のその他の場所の顧客テーブルを更新します。
Figure 1-3 発行者チャネルでの間接同期

顧客テーブルが更新されると、同期トリガは、中間ステージングテーブルを更新します。次に、発行者トリガが1つまたは複数の行をイベントログテーブルに挿入します。発行者チャネルは、挿入された行を読み取ってアイデンティティボールトを更新します。
イベントログテーブルから読み取られる行の内容によっては、アイデンティティボールトを更新する前に、発行者チャネルで、中間テーブルから追加情報を取得することが必要になる場合があります。アイデンティティボールトを更新した後、発行者チャネルは、行を削除するか、処理済みのマークを付けます。
直接同期は、一般に、ビューを使用して、Identity Managerとデータベース間のデータを同期します。JDBC用ドライバが要求する構造と一致しているテーブルであれば、それを使用できます。
次の図では、直接同期が購読者および発行者チャネルの両方でどのように機能するかを示します。次のシナリオでは、1つまたは複数の顧客ビューまたはテーブルを保持できます。
Figure 1-4 購読者チャネルでの直接同期

購読者チャネルは、同期スキーマのビューを通じて既存の顧客テーブルを更新します。
NOTE:ビューを使わない直接同期は、顧客テーブルがJDBC用ドライバで要求される構造と一致する場合のみ可能です。詳細については、間接同期を参照してください。
Figure 1-5 発行者チャネルでの直接同期

顧客テーブルが更新されると、発行者トリガは、1つまたは複数の行をイベントログテーブルに挿入します。発行者チャネルは、挿入された行を読み取ってアイデンティティボールトを更新します。
イベントログテーブルから読み取られる行の内容によっては、アイデンティティボールトを更新する前に、発行者チャネルで、ビューから追加情報を取得することが必要になる場合があります。アイデンティティボールトを更新した後、発行者チャネルは、行を削除するか、処理済みのマークを付けます。