IBM FileNet P8, バージョン 5.2.1            

複製

Content Engine オブジェクトの複製では、リポジトリー間 (具体的には Content Engine オブジェクト・ストア・リポジトリーと外部リポジトリー間) で複製可能なオブジェクトを選択的にコピーし、同期を保守することができます。Content Engine オブジェクトの複製では、以下の操作がサポートされています。

複製フレームワークによって 1 つ以上のリポジトリーにコピーされたオブジェクトを、複製されたオブジェクト と言います。複製されたオブジェクトのコピーをレプリカ と言います。

Content Engine Java™ および .NET API には、Content Engine オブジェクトの複製をサポートするクラスとプロパティーがいくつか組み込まれています。ただし、複製の開始および構成には、一般に管理ツールを使用します。詳細については、Content Federation Services for Image Services のセットアップ (Setting up Content Federation Services for Image Services) または Content Federation Services for Content Manager OnDemand のセットアップ (Setting up Content Federation Services for Content Manager OnDemand) を参照してください。

複製可能オブジェクト

複製の対象となるのは、Replicable クラスのサブクラスからインスタンス化される Content Engine オブジェクト (複製可能 オブジェクトと呼ばれる) です。

Replicable オブジェクトには、以下のプロパティーが含まれています。

複製されたオブジェクト

Content Engine オブジェクト・ストア内の各オブジェクトには、Content Engine によって制御される固有 ID があります。ただし、外部リポジトリー内で複製されたオブジェクトは、元のオブジェクトとは異なる固有 ID を持ち、これを Content Engine が制御することはできません。ExternalIdentity オブジェクトは、外部リポジトリー内で複製されたオブジェクトの ID を表します。このオブジェクトは、Replicable オブジェクトの ExternalIdentityList コレクションから取得できます。各 ExternalIdentity オブジェクトには、以下のプロパティーがあります。

複製の開始

Content Engine の複製可能オブジェクトの複製を開始するには、そのオブジェクトの ReplicationGroup プロパティーを (ReplicationGroup オブジェクトで表される) 複製グループに設定します。ReplicationGroup プロパティーにデフォルト値を設定すると、新しいインスタンスを自動的に複製するクラスを構成することができます。Content Engine の複製可能オブジェクトに対する複製を停止するには、そのオブジェクトの ReplicationGroup プロパティーを null に設定します。オブジェクトの複製が停止すると、その既存のレプリカは削除されませんが、更新同期はキャンセルされます。

リポジトリー

Content Engine オブジェクトの複製は、ObjectStore オブジェクトで表されるオブジェクト・ストア・リポジトリーと、ExternalRepository オブジェクトで表される外部リポジトリーの間で行われます。これらのオブジェクトはどちらも、Repository 基本クラスのサブクラスのインスタンスです。

外部リポジトリー

オブジェクト・ストア・リポジトリーと違い、外部リポジトリーは Content Engine の外部にあるリポジトリーです。IBM® がサポートしている外部リポジトリーはすべて、コンテンツを統合することもできます。コンテンツの統合とは、外部リポジトリー内のドキュメントを参照する Content Engine ドキュメントを作成し、ソース・ドキュメントのメタデータと Content Engine ドキュメントのプロパティーをマッピングするプロセスです。コンテンツの統合を使用することにより、複数のアプリケーションで生成され、異種データベースまたは複数のサーバーに保管されているデータを統合することができます。特定の外部リポジトリーは、以下のいずれかのオブジェクトで表されます。これらのオブジェクトは、ContentFederatingRepository インターフェースのサブインターフェースからインスタンス化されます。

  • CMODRepository: コンテンツを統合できる IBM Content Manager OnDemand 外部リポジトリー。
  • ImageServicesRepository: コンテンツを統合できる IBM FileNet® Image Services 外部リポジトリー。

各外部リポジトリーでは、ExternalClassDescription オブジェクトのリストが保守されます。これらの各オブジェクトは、複製可能な外部リポジトリー内の複製可能クラスに関する情報を示します。この情報を使用して、クラスとプロパティーのマッピングを定義することができます。各クラスは、外部リポジトリーからオブジェクト・ストアに複製されるように構成するか、オブジェクト・ストアから複製されるオブジェクトのターゲットとして構成するか、あるいはその両方として構成することができます。ExternalClassDescription オブジェクトは ExternalClassDescriptionList コレクションに保管されています。このコレクションは、ExternalRepository オブジェクトの ExternalClassDescriptions プロパティーによって返されます。

複製グループ

複製グループとは、複製を有効にすることのできるオブジェクト・ストアおよび外部リポジトリーのグループです。各複製グループは、ReplicationGroup オブジェクトで表されます。複製が有効になっているオブジェクト・ストア内の各複製可能オブジェクトは、ReplicationGroup プロパティーによって自身が帰属している複製グループを指定します。

オブジェクト・ストアまたは外部リポジトリーは、複数の複製グループに参加することができます。複製された各オブジェクトは単一の複製グループに属さなければなりませんが、所定のオブジェクト・ストアまたは外部リポジトリー内で複製されたオブジェクトどうしが同じ複製グループに属している必要はありません。

ReplicationGroup オブジェクトには、ReplicationParticipantList コレクションを指定する ReplicationParticipants プロパティーがあります。このコレクションは、グループの複製参加者を定義するものです。これは ObjectStoreParticipant オブジェクトと ExternalParticipant オブジェクトによって混成され、各オブジェクトは ReplicationParticipant 基本クラスから派生されます。オブジェクト・ストアまたは外部リポジトリーを複製グループの複製参加者として追加するには、ObjectStoreParticipant オブジェクトまたは ExternalParticipant オブジェクトを参加者リストに追加します。逆に、複製グループからリポジトリーを削除するには、参加者リストから参加者を削除します。ある参加者が複製グループから削除されると、残りの参加者は、削除されたオブジェクト・ストアまたは外部リポジトリーに対するアウトバウンド・ジャーナル・エントリーの生成または処理を行わなくなります。外部リポジトリーの場合は、インバウンドの変更内容が処理されなくなります。

複製参加者

複製参加者とは、オブジェクト・ストアまたは外部リポジトリーが複製グループに参加することを意味し、ReplicationParticipant 基本インターフェースで表されます。このインターフェースには、参加者の複製モードを指定する ReplicationMode プロパティーがあります。

ReplicationParticipant インターフェースには、以下のサブインターフェースがあります。

  • ObjectStoreParticipant: オブジェクト・ストアの参加者を表します。このインターフェースからインスタンス化されたオブジェクトには、オブジェクト・ストア・リポジトリーを指定する ObjectStore プロパティーがあります。
  • ExternalParticipant: 外部リポジトリーの参加者を表します。このインターフェースからインスタンス化されたオブジェクトには、以下のプロパティーがあります。

複製モード

各複製参加者は、リポジトリーを指定するだけでなく複製モードも指定します。この複製モードによって、複製グループ内でオブジェクトがどのように複製されるかが決まります。複製モードは、参加者の ReplicationMode プロパティーによって制御されます。このプロパティーは、ReplicationMode 定数のいずれかを指定します。サポートされる複製モードは以下の 2 つです。

  • MASTER: このモードでは、リポジトリー内に複製されたオブジェクトを変更でき、変更内容は複製グループ内の他の参加者に伝搬されます。
  • SLAVE: このモードでは、リポジトリー内に複製されたオブジェクトが読み取り専用になり、複製グループ内でマスター・モードで動作している別のリポジトリーから変更内容が伝搬された場合にのみ変更されます。

パートナー・オブジェクト・ストア

複製グループ内の各外部リポジトリー参加者は、その複製グループ内のオブジェクト・ストアとパートナーになる必要があります。このオブジェクト・ストア・パートナーは、外部リポジトリーから変更内容を受け取る唯一の受信側であり、その外部リポジトリーに変更内容を送信する唯一のオブジェクト・ストアです。マルチサイト構成では、同じサイト内のオブジェクト・ストアを外部リポジトリーとして選択することをお勧めしますが、任意のオブジェクト・ストアをパートナーとして選択することが可能です。パートナー・オブジェクト・ストアは、外部リポジトリーと、そのリポジトリーが属する複製グループに以下のような影響を与えます。

  • 外部リポジトリーからパートナー・オブジェクト・ストアに変更内容がプルされると、そのパートナー・オブジェクト・ストアがスレーブ・モードで動作している場合でも、グループの他のメンバーに伝搬するために、ジャーナル・エントリーを使用してそれらの変更内容がバッチ処理されます。
  • パートナー・オブジェクト・ストアで変更が行われると、外部リポジトリーを含むグループ内の他のすべてのメンバーに伝搬するために、ジャーナル・エントリーを使用してそれらの変更内容がバッチ処理されます。
  • 非パートナー・オブジェクト・ストアで変更が行われると、他のすべてのオブジェクト・ストアに伝搬するために、ジャーナル・エントリーを使用してそれらの変更内容がバッチ処理されます。外部リポジトリーは除外されます。

クラスとプロパティーのマッピング

オブジェクト・ストアから外部リポジトリーにオブジェクトを複製する前に、まずそのクラスとプロパティーをマッピングする必要があります。マッピングは、外部リポジトリー内のオブジェクトのオブジェクト ID と、オブジェクト・ストア内のオブジェクトの Content Engine オブジェクトの間で維持されなければなりません。これにより、外部 ID を持つインバウンド更新で、更新の適用先となる正しい Content Engine オブジェクトを見つけられるようになります。

外部クラスのマッピングは ExternalClassAlias オブジェクトのリストとして、マッピングされた Content Engine クラスと関連付けられた ReplicableClassDefinition オブジェクトに保管されます。このリストへは、ExternalAliases プロパティーによって返される ExternalClassAlias オブジェクトの ExternalClassAliasList コレクション内でアクセスすることができます。各 ExternalClassAlias オブジェクトには、以下のプロパティーがあります。

  • ExternalRepository: マッピングされた外部クラスが定義されている外部リポジトリーを表す ExternalRepository オブジェクト。
  • ClassIdentity: マッピングされた外部クラスの ID。
  • AliasDirection: クラスの別名に対して、マッピングが適用される方向。このプロパティーは、以下のいずれかの ReplicationDirection 定数を指定します。
    • INBOUND: 外部リポジトリーから Content Engine オブジェクト・ストアに外部クラスのインスタンスを複製できることを指定します。この結果、マッピングされた Content Engine クラスのインスタンスが作成されます。
    • OUTBOUND: マッピングされた Content Engine クラスのインスタンスを外部リポジトリーに複製できることを指定します。この結果、指定された外部クラスのインスタンスが作成されます。
    • BOTH: 外部リポジトリーから Content Engine オブジェクト・ストアに外部クラスのインスタンスを複製でき、それを Content Engine オブジェクト・ストアから外部リポジトリーに複製されるオブジェクトのターゲットにすることもできます。

外部プロパティーのマッピングは、ExternalPropertyAlias オブジェクトのリストとして、マッピングされた Content Engine クラスに関連付けられている ReplicableClassDefinition オブジェクト内の PropertyDefinition オブジェクトに保管されます。 このリストへは、ExternalAliases プロパティーによって返される ExternalPropertyAlias オブジェクトの ExternalPropertyAliasList コレクション内でアクセスすることができます。各 ExternalPropertyAlias オブジェクトには、以下のプロパティーがあります。

  • ExternalRepository: マッピングされた外部プロパティーが定義されている外部リポジトリーを表す ExternalRepository オブジェクト。
  • ClassIdentity: マッピングされた外部プロパティーが含まれている、マッピングされた外部クラスの ID。
  • PropertyIdentity: マッピングされた外部プロパティーの ID。
  • AliasDirection: プロパティーの別名に対して、マッピングが適用される方向。このプロパティーは、以下のいずれかの ReplicationDirection 定数を指定します。
    • INBOUND: マッピングされた Content Engine クラスのインスタンスに外部リポジトリーの変更内容が伝搬されると、マッピングされた Content Engine プロパティーに外部プロパティーの値がコピーされることを指定します。
    • OUTBOUND: 外部クラスのインスタンスに Content Engine の変更内容が伝搬されると、マッピングされた Content Engine プロパティーの値が、指定された外部リポジトリーのプロパティーにコピーされることを指定します。
    • BOTH: 伝搬の方向に応じて、インバウンド方向またはアウトバウンド方向にプロパティー値をコピーできることを指定します。

ジャーナル・エントリー

Content Engine オブジェクトが最初に複製グループと関連付けられる (オブジェクトの複製が開始される) か、複製グループと既に関連付けられている Content Engine が変更されるたびに、処理対象のキューにジャーナル・エントリーが書き込まれます。サーバー・バックグラウンド・タスクでは、新しいジャーナル・エントリーと、失敗したエントリー (再試行準備ができている) が定期的に照会されます。これらのエントリーはバッチ単位で適切な外部リポジトリー・プロバイダーに送信され、このプロバイダーがオブジェクトを外部リポジトリーに複製するか、またはオブジェクトの更新内容を伝搬します。このタイプの処理をアウトバウンド処理 と言います。

各ジャーナル・エントリーは、ReplicationJournalEntry オブジェクトで表されます。このオブジェクトには、以下のプロパティーがあります。

  • DestinationRepository: このジャーナル・エントリー操作のソース・オブジェクトの宛先となる外部リポジトリー。
  • HeldUntilDate: このジャーナル・エントリーに対する現在のリースが期限切れになる日時、または失敗後に再試行する日時。
  • LastFailureReason: ジャーナル・エントリー操作の直近の失敗条件の説明 (存在する場合)。
  • ReplicationGroup: このジャーナル・エントリー操作のソース・オブジェクトが属する複製グループを表す ReplicationGroup オブジェクト。ReplicationGroup プロパティーがある非 NULL 値から別の非 NULL 値に変更される特別な場合には、リポジトリーの場所に応じて、以下のタイプのジャーナル・エントリーが生成されます。
    • 新規グループではなく元の複製グループにあるリポジトリーの場合は、複製解除ジャーナル・エントリーが生成されます。
    • 元のグループではなく新規グループにあるリポジトリーの場合は、開始ジャーナル・エントリーが生成されます。
    • 元のグループと新規グループの両方にあるリポジトリーの場合は、プロパティーの変更内容 (およびその他の更新内容) を伝搬するために、更新ジャーナル・エントリーが生成されます。
  • ReplicationOperation: このジャーナル・エントリーの操作タイプを指定します。次の値から 1 つを指定できます。
    • 0 (開始): このタイプのジャーナル・エントリーは、オブジェクトの ReplicationGroup プロパティーが初めて NULL 以外の値 (オブジェクトを複製する必要がある) に設定された場合に書き込まれます。
    • 1 (更新): このタイプのジャーナル・エントリーは、複製されたオブジェクトの変更 (削除を含む) があった場合に書き込まれます。
    • 2 (複製解除): このタイプのジャーナル・エントリーは、プロパティーが NULL (そのオブジェクトの複製を停止する) に設定された場合に書き込まれます。
    • 3 (クラス確認): このタイプのジャーナル・エントリーは、複製プロバイダーが外部リポジトリーに、そのリポジトリーのクラス・マッピングが変更されたことを通知する必要がある場合に生成されます。
    • 4 (グループ確認): このタイプのジャーナル・エントリーは、複製プロバイダーが外部リポジトリーに、そのリポジトリーを伴う複製グループ構成が変更されたことを通知する必要がある場合に生成されます。
  • ReplicationStatus: このジャーナル・エントリー処理状況を指定する ReplicationJournalStatus 定数。定数には、以下のいずれかの値を設定できます。
    • FAILED: 複製ジャーナル・エントリーの処理が複数回失敗し、中止されました。
    • IN_PROGRESS: 複製ジャーナル・エントリーの処理が進行中です。
    • RETRY_WAIT: 複製ジャーナル・エントリーの処理が少なくとも 1 回失敗し、再試行を待機中です。
    • WAITING: 新しいジャーナル・エントリーが初回の処理を待機中です。
  • RetryCount: キューに入っているこのジャーナル・エントリーの、残りの処理試行回数を指定します。
  • SourceObject: このジャーナル・エントリーを生成した複製操作のオブジェクト・ストア内のソース・オブジェクト。


最終更新日: 2015 年 10 月
replication_concepts.htm

© Copyright IBM Corp. 2015.