同期化処理は単一方向にも双方向にも行えます。このセクションでは、双方向の同期について説明します。双方向の同期化処理は、次の 2 つのステップに分かれます。
図 2 は、ユーザーが実行依頼した変更内容が同期時にどのようにソース・データベースに適用されるかを示しています。図の番号は、その番号の後に続く説明に対応しています。
図 2. ユーザーが同期をとるために実行依頼した変更内容がソース・データベースに 適用される仕組み
同期クライアント・アプリケーションが開始したら、看護婦は同期させるアプリケーション名を選択してから、「Synchronize (同期)」をタップして同期の要求を行います。
デバイス上の同期クライアント・ソフトウェアは、ソース・サーバー (ソースからモバイルへを参照) からの同期応答を待ちます。
図 3 は、同期をとる時に、ソース表の変更内容がユーザーのモバイル・デバイス上の DB2 Everyplace 表にどのように適用されるかを示しています。同期サーバーは、ユーザーが最後に同期をとった以降に行われたすべての関係するソース・データの変更内容をユーザーに送信します。同期サーバーは、ユーザーがサブスクリプションしているデータについての変更のみを送信します。
図の番号は、その後に続く説明に対応しています。
図 3. ソース・データベースへの変更内容がモバイル・データベースに適用される仕組み
1 つの同期は、いくつかの同期セッションで構成される場合があります。同期処理を取り消し、それを後で再開した場合、同期サーバーは、処理を最初からやり直すのではなく、完了しなかった同期セッションから再開を試みます。
たとえば、1 つのサブスクリプション用に 100 レコードの同期、そしてもう 1 つのサブスクリプション用に 50 レコードの同期を要求したとします。取り消した時点で、最初のサブスクリプションの 100 レコードが完全に同期化されていた場合、同期を再開すると、残りの 50 レコードだけが同期化されます。これは、最初の同期セッションが完了していたためです。
同期セッション中に同期を取り消すと、その特定セッション内のレコードは全く同期化されません。すべての変更済みレコードが正常にデバイスからサーバーに送信されたが、サーバーの応答中に取り消された場合、ユーザーが同期サーバーに再接続した時点でサーバーは応答を再開します。
クライアントが DB2 Everyplace 同期サーバーに実行依頼した変更内容が、他のクライアントが、以前行った変更内容、またはソース表に対して同時に行った変更内容と矛盾することが時々発生する場合があります。同期サーバーは、レプリケーション・サブスクリプションにおける各表の各記録のバージョンをトラックします。各クライアントは、各クライアントの各表との最後の同期の各レコードのバージョンを維持するために同じようにトラックされます。この情報によって、同期サーバーは、クライアントが行の古いバージョンのデータに基づいてその行を更新しようとしているかどうかを判別することができます。クライアントが行の古いバージョンのデータに基づいてその行の更新を試みた場合は、更新はリジェクトされます。
矛盾の解決は、図 4 に示すように、データが中間層システム上のミラー表にステージされるときに行われます。これは、次のレプリケーション・サイクルで行われます。クライアントによる更新に起因する矛盾は、その同期中に応答メッセージがそのクライアントに戻されるまで検出されません。クライアントによる変更内容がリジェクトされても、次に同期をとるまではそのクライアントには知らされません。クライアントによる変更が古いレコードに基づいたものである場合は、そのレコードの正しいバージョンが元の同期要求で戻されます。
更新がリジェクトされたクライアントは、リジェクトされたレコードと、そのレコードの訂正バージョンの両方を受け取ります。リジェクトされたレコードは、クライアントのログに記録されます。そのレコードの訂正バージョンが、クライアントの DB2 Everyplace データベースにある元の (リジェクトされた) レコードを置き換えます。
DataPropagator が変更されたデータを中間層からソース・データベースに適用する場合は、別のタイプの矛盾が発生します。これらの矛盾の管理および解決の方法の詳細については、「DB2 ユニバーサル・データベース レプリケーションの手引きおよび解説書」および「DB2 ユニバーサル・データベース 管理の手引き」を参照してください。
同期のクイック・スタートを実行する前に、まず最初に、クライアントのモバイル・デバイス上およびサーバー上に DB2 Everyplace データベース・エンジンと同期クライアント・アプリケーションをインストールする必要があります。クライアントとサーバーの両方に、同じバージョンの DB2 Everyplace Database および同期サーバーをインストールしなければなりません。モバイル・デバイス上にこれらのアプリケーションをインストールする方法については、「DB2 Everyplace アプリケーション開発ガイド」を参照してください。
DB2 Everyplace 同期サーバーには、同期サーバーをインストールした後で同期をテストする際に使用できる、サンプルのデータベースと構成が含まれています。同期サーバーをインストールしたときに、サンプル・データもインストールできます。同期サーバーのインストール時にサンプル・データのインストールを行なわなかった場合は、この時点でサンプル・データをインストールする必要があります。
Windows オペレーティング・システムでのサンプルのインストール
UNIX オペレーティング・システムでのサンプルのインストール