同期サーバー 管理ガイド


同期が行われる仕組み

同期化処理は単一方向にも双方向にも行えます。このセクションでは、双方向の同期について説明します。双方向の同期化処理は、次の 2 つのステップに分かれます。

この 2 段階処理は、同期セッション と呼ばれます。

モバイルからソースへ

図 2 は、ユーザーが実行依頼した変更内容が同期時にどのようにソース・データベースに適用されるかを示しています。図の番号は、その番号の後に続く説明に対応しています。

図 2. ユーザーが同期をとるために実行依頼した変更内容がソース・データベースに 適用される仕組み

ユーザーが同期をとるために実行依頼した変更内容がソース・データベースに 適用される仕組み

  1. 在宅介護の専門家あるいは訪問看護婦は、Palm OS デバイス上の VNMEDICALRECORD 表のローカル・コピーにある患者の血圧を更新します。看護婦は表の編集に使用したアプリケーションを終了してから、IBM Sync アイコンをタップしてデバイス上の同期クライアント・ソフトウェアを開始します。

    同期クライアント・アプリケーションが開始したら、看護婦は同期させるアプリケーション名を選択してから、「Synchronize (同期)」をタップして同期の要求を行います。

  2. 要求は、認証されてから、中間層システム上の入力キューに置かれます。

    デバイス上の同期クライアント・ソフトウェアは、ソース・サーバー (ソースからモバイルへを参照) からの同期応答を待ちます。

  3. ユーザーは、サブスクリプションされているデータのサブセットおよびファイルのみを同期させることができます。
  4. データはステージング表に置かれます。 他の更新が行われているときに変更をステージングすることができるため、ステージング表は同期要求のスループット・キャパシティーの向上に役立ちます。
  5. データはステージング表からミラー表 (この例では VNMEDICALRECORD) にコピーされ、潜在的な更新の矛盾は解決されます。ミラー表への変更内容は DB2 ログに記録されます。
  6. DB2 DataPropagator 収集プログラムが開始されます。このプログラムは、ミラー表への変更内容を DB2 ログから取り込み、それらを変更データ (CD) 表に書き込みます。
  7. DB2 DataPropagator 変更適用プログラムが開始され、変更データ表の変更内容をソース・システム上の VNURSE データベースにあるソース表 VNMEDICALRECORD に適用します。

ソースからモバイルへ

図 3 は、同期をとる時に、ソース表の変更内容がユーザーのモバイル・デバイス上の DB2 Everyplace 表にどのように適用されるかを示しています。同期サーバーは、ユーザーが最後に同期をとった以降に行われたすべての関係するソース・データの変更内容をユーザーに送信します。同期サーバーは、ユーザーがサブスクリプションしているデータについての変更のみを送信します。

図の番号は、その後に続く説明に対応しています。

図 3. ソース・データベースへの変更内容がモバイル・データベースに適用される仕組み

ソース・データベースへの変更内容がモバイル・データベースに適用される仕組み

  1. ソース・システム上で継続して実行されている DB2 DataPropagator 収集プログラムは、DB2 ログから VNMEDICALRECORD ソース表に対する変更内容を取り込み、それらを変更データ表に書き込みます。
  2. DB2 DataPropagator 変更適用プログラムは、変更データ表の変更内容をミラー表 VNMEDICALRECORD に適用します。更新の矛盾が確認された場合、このステップの処理で解決されます。
  3. データに対する変更内容は、同期応答メッセージとして中間層システム上の出力キューに送信されます。
  4. 同期クライアント・ソフトウェアは、出力キューから同期応答メッセージを取り出します。クライアントからの取り出し要求は認証されます。
  5. データに対する変更内容は、表のクライアント・ローカル・コピーに適用されます。同期セッションが終了します。

同期の取り消し

1 つの同期は、いくつかの同期セッションで構成される場合があります。同期処理を取り消し、それを後で再開した場合、同期サーバーは、処理を最初からやり直すのではなく、完了しなかった同期セッションから再開を試みます。

たとえば、1 つのサブスクリプション用に 100 レコードの同期、そしてもう 1 つのサブスクリプション用に 50 レコードの同期を要求したとします。取り消した時点で、最初のサブスクリプションの 100 レコードが完全に同期化されていた場合、同期を再開すると、残りの 50 レコードだけが同期化されます。これは、最初の同期セッションが完了していたためです。

同期セッション中に同期を取り消すと、その特定セッション内のレコードは全く同期化されません。すべての変更済みレコードが正常にデバイスからサーバーに送信されたが、サーバーの応答中に取り消された場合、ユーザーが同期サーバーに再接続した時点でサーバーは応答を再開します。

矛盾の処理方法

クライアントが DB2 Everyplace 同期サーバーに実行依頼した変更内容が、他のクライアントが、以前行った変更内容、またはソース表に対して同時に行った変更内容と矛盾することが時々発生する場合があります。同期サーバーは、レプリケーション・サブスクリプションにおける各表の各記録のバージョンをトラックします。各クライアントは、各クライアントの各表との最後の同期の各レコードのバージョンを維持するために同じようにトラックされます。この情報によって、同期サーバーは、クライアントが行の古いバージョンのデータに基づいてその行を更新しようとしているかどうかを判別することができます。クライアントが行の古いバージョンのデータに基づいてその行の更新を試みた場合は、更新はリジェクトされます。

矛盾の解決は、図 4 に示すように、データが中間層システム上のミラー表にステージされるときに行われます。これは、次のレプリケーション・サイクルで行われます。クライアントによる更新に起因する矛盾は、その同期中に応答メッセージがそのクライアントに戻されるまで検出されません。クライアントによる変更内容がリジェクトされても、次に同期をとるまではそのクライアントには知らされません。クライアントによる変更が古いレコードに基づいたものである場合は、そのレコードの正しいバージョンが元の同期要求で戻されます。

図 4. 同期サーバーによる矛盾の取扱方法

同期サーバーによる矛盾の取扱方法

更新がリジェクトされたクライアントは、リジェクトされたレコードと、そのレコードの訂正バージョンの両方を受け取ります。リジェクトされたレコードは、クライアントのログに記録されます。そのレコードの訂正バージョンが、クライアントの DB2 Everyplace データベースにある元の (リジェクトされた) レコードを置き換えます。

DataPropagator が変更されたデータを中間層からソース・データベースに適用する場合は、別のタイプの矛盾が発生します。これらの矛盾の管理および解決の方法の詳細については、「DB2 ユニバーサル・データベース レプリケーションの手引きおよび解説書」および「DB2 ユニバーサル・データベース 管理の手引き」を参照してください。


同期サーバーの使用

部分目次

  • 同期のクイック・スタート
  • 同期の準備
  • Palm OS エミュレーターのセットアップ
  • Palm OS エミュレーターの構成
  • Palm OS デバイスのセットアップ
  • Palm OS デバイスの構成
  • IBM Sync の構成
  • Palm OS エミュレーターまたはデバイス上のデータの同期と検証
  • Symbian OS V6.0 デバイスのセットアップ
  • PC 上の m-Router Connect の構成
  • デバイス上の m-Router Connect の構成
  • ISync の構成
  • Symbian OS V6.0 デバイス上のデータの同期
  • 同期に関するチュートリアル
  • データに対する JDBC サブスクリプションの作成
  • データに対する DataPropagator サブスクリプションの作成
  • DataPropagator サブスクリプションのためのソースの設定
  • DataPropagator サブスクリプションの作成
  • データベースの構成と、DataPropagator サブスクリプションのキャプチャーの開始
  • サブスクリプションのモバイル・サブスクリプション・セットへのグループ化
  • モバイル・ユーザーの作成
  • データ同期グループの作成
  • アプリケーション・サーバーの開始
  • リモート・アクセス・サービスの使用
  • 同期化

  • 同期のクイック・スタート

    同期のクイック・スタートを実行する前に、まず最初に、クライアントのモバイル・デバイス上およびサーバー上に DB2 Everyplace データベース・エンジンと同期クライアント・アプリケーションをインストールする必要があります。クライアントとサーバーの両方に、同じバージョンの DB2 Everyplace Database および同期サーバーをインストールしなければなりません。モバイル・デバイス上にこれらのアプリケーションをインストールする方法については、「DB2 Everyplace アプリケーション開発ガイド」を参照してください。

    DB2 Everyplace 同期サーバーには、同期サーバーをインストールした後で同期をテストする際に使用できる、サンプルのデータベースと構成が含まれています。同期サーバーをインストールしたときに、サンプル・データもインストールできます。同期サーバーのインストール時にサンプル・データのインストールを行なわなかった場合は、この時点でサンプル・データをインストールする必要があります。

    Windows オペレーティング・システムでのサンプルのインストール

    1. ¥SyncServer¥Sample¥ ディレクトリーで、dsysample.exe を実行します。「Create sample (サンプルの作成)」ウィンドウがオープンします。
    2. Username (ユーザー名)」フィールドに、ご使用の DB2 ユーザー ID を入力します。
    3. Password (パスワード)」フィールドに、ご使用の DB2 パスワードを入力します。このユーザー ID とパスワードは、JDBC サンプルのデータベースおよび構成を作成するために使用されます。
    4. Create (作成)」をクリックします。

    UNIX オペレーティング・システムでのサンプルのインストール

    1. 「DB2 Command (DB2 コマンド)」ウィンドウをオープンします。
    2. ディレクトリーを $DSYINSTDIR/Sample に切り替えます。
    3. dsysample.sh db2userid db2password を実行します。ここで、db2userid は有効な DB2 ユーザー ID で、db2password はそれに対応するパスワードです。


    [ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]