FILE メッセージ・タイプを使用した Windows CE でのレプリケーションのセットアップ

本書では、FILE メッセージ・タイプを使用して Windows CE でレプリケーションを設定する方法について説明します。

要件

ActiveSync バージョン 2.x または 3.x をデスクトップにインストールして設定する必要があります。また、これらの ActiveSync はハンドヘルド・デバイスとの通信が可能でなければなりません。ActiveSync は、次の Microsoft Web サイトからダウンロードできます。

バージョン 3.1:
http://www.microsoft.com/windowsmobile/resources/downloads/pocketpc/activesync31.mspx

バージョン 3.5:
http://www.microsoft.com/mobile/pocketpc/downloads/activesync35.asp

.・Windows XP、2000、98、95、または NT (Service Pack 3 以降)

・Pocket PC または Pocket PC 2002 を使用している場合は、Adaptive Server Anywhere (SQL Anywhere) 6.0.3、7.x、または 8.x を使用できます。

・Windows CE 2.11 を使用している場合は、Adaptive Server Anywhere (SQL Anywhere) 6.0.3 または 7.x を使用できます。

・Windows CE 2.0 を使用している場合は、Adaptive Server Anywhere (SQL Anywhere) 6.0.2 を使用する必要があります (注:Adaptive Server Anywhere (SQL Anywhere) 6.0.3 は、Windows CE 2.0 では機能しません。また、Adaptive Server Anywhere (SQL Anywhere) 6.0.2 は、Windows CE 2.1 では機能しません)。

本書は、Windows XP を使用して作成されています。

Windows CE 2.x でオペレーティング・システムのバージョンをチェックするには、次の手順に従います。

1. [スタート] - [設定] - [コントロール パネル] - [システム] を選択します。

2. [システムのプロパティ] ダイアログで [システム] タブをクリックします。オペレーティング・システムのバージョンが表示されます。

Pocket PC 2002 でオペレーティング・システムのバージョンをチェックするには、次の手順に従います。

1. [スタート] - [設定] を選択します。

2. [システム] タブの [バージョン情報] をタップします。


レプリケーションをセットアップするための準備

作業を始める前に、以下のことを確認します。

・Windows CE 2.x の場合は、Handheld_PC 同期ファイルというフォルダ (または、同期可能な同等のフォルダ) が Windows デスクトップ・マシンに存在していなければなりません。このフォルダは、ActiveSync ソフトウェアのインストール時に作成されます。このフォルダがない場合は、ActiveSync のマニュアルを参照してください。Windows CE 2.x ハンドヘルド・デバイスの場合、\My Documents\同期ファイルが同期可能なフォルダになります。

・Pocket PC の場合、同期ファイルフォルダは、\My Documents ディレクトリに配置されます。

注: Handheld_PC 同期ファイルは、<デバイス名>同期ファイル、<デバイス名>My Documents という名前になっている場合があります。Windows、ハンドヘルド・デバイス上のフォルダ名を確認してください。

注: Windows CE および Pocket PC では、バックスラッシュ (\) をルートと呼びます。C:\ や D:\ という名前はありません。

本書の残りの部分では、この「レプリケーションをセットアップするための準備」の指示に従ってデスクトップ・コンピュータとハンドヘルド・デバイスが適切に設定されていることを前提としています。

デスクトップ・マシンでのレプリケーションのセットアップ

デスクトップ・マシンでレプリケーションをセットアップするには、次の手順に従います。

1. 統合データベース asademo.db に接続します。Sybase Central で、[ツール] - [接続] を選択します。[新しい接続] ダイアログが表示されたら、リストから Adaptive Server Anywhere (SQL Anywhere) 8 プラグインを選択します。

2. [接続] ダイアログの [ID] タブをクリックします。以下の値を入力します。

・ユーザ dba
・パスワード sql

3. [データベース] タブをクリックします。[参照] をクリックして、asademo.db ファイルを検索します。

・Adaptive Server Anywhere (SQL Anywhere) 6.x では、デフォルトのインストール・ディレクトリは C:\Program Files\Sybase\Adaptive Server Anywhere 6.0 です。

・Adaptive Server Anywhere (SQL Anywhere) 7.x では、デフォルトのインストール・ディレクトリは C:\Program Files\Sybase\SQL Anywhere 7 です。

・Adaptive Server Anywhere (SQL Anywhere) 8.x では、デフォルトのインストール・ディレクトリは C:\Program Files\Sybase\SQL Anywhere 8 です。

4. [OK] をクリックして、統合データベースに接続します。

5. パブリッシャを定義します。

・Sybase Central の左側のウィンドウ枠で、asademo データベース・アイコンを展開します。

・左側のウィンドウ枠で [ユーザとグループ] フォルダを開きます。

・DBA ユーザを右クリックして、ポップアップ・メニューから [パブリッシャに変更] を選択します。。

6. [ユーザとグループ] フォルダで、[ユーザの追加] をダブルクリックします。ウィザードの指示に従って、リモート DBA 権限を持つ user1 という名前のユーザを作成します (リモート DBA 権限は、SQL Remote Message Agent によって要求されます)。

7. メッセージ・タイプを設定します。

・Sybase Central で [SQL Remote] フォルダをダブルクリックします。

・[メッセージ・タイプ] をダブルクリックします。

・[FILE] をダブルクリックします。

・プロパティのダイアログで、[パブリッシャ・アドレス] フィールドに cons と入力します。

注:本書の目的のためには、デスクトップ・マシンに配置されている Handheld_PC 同期ファイルフォルダに cons という名前のフォルダを作成する必要があります。

統合データベースフォルダの最終的なアドレス (デスクトップ・マシン上のパス) は、…\Handheld_PC 同期ファイル\cons でなければなりません。

Pocket PC の場合は、cons フォルダを同期ファイルフォルダの中に作成してください。フルパスは次のとおりです。

C:\Documents and Settings\My Documents\Pocket_PC My Documents\同期ファイル\cons

8. リモート・ユーザを定義します。

・手順 6 で作成した user1 を右クリックして、ポップアップ・メニューから [リモート・ユーザに変更] を選択します。

・表示されたダイアログの [アドレス] フィールドに remote1 と入力します。

・[OK] をクリックしてダイアログを閉じます。

注:パブリッシャのアドレスとリモート・アドレスの前に「\My Documents\同期ファイル」を付けるように CE デバイス上の dbremote がハード・コードされているのを認識することが重要です。つまり、リモート・データベース上のパブリッシャのアドレスを remote1 に設定し、リモート・ユーザのアドレスを cons に設定した場合に dbremote を実行すると、dbremote は \My Documents\同期ファイル\cons および \My Documents\同期ファイル\remote1 に同期しようとします。したがって、リモート・データベースと統合データベースの間で正常にレプリケーションを行うには、このディレクトリ構造が CE デバイスに存在していなければなりません。

上記の操作を行うと、次のような表示になります。

DBA の [タイプ(Type)] カラムはパブリッシャ(Publisher)、user1 の [タイプ] カラムはリモート・ユーザ(Remote User) になっていることに注意してください。

9. パブリケーションを定義します。

・[SQL Remote] フォルダを開きます。

・[パブリケーション] フォルダを開きます。

・[パブリケーションの追加] をダブルクリックします。

・ウィザードでパブリケーションの名前を pubOrder に設定し、[次へ] をクリックします。

・[sales_order (DBA)] テーブルをアーティクルに追加します。 アーティクルの定義の詳細については、次に示すマニュアルの項を参照してください。

・SQL Anywhere Studio 8.x を使用している場合は、『SQL Remote ユーザーズ・ガイド』の第 7 章「Adaptive Server Anywhere の SQL Remote 設計」にある「既存のパブリケーションの変更」を参照してください。

・SQL Anywhere Studio 7.x を使用している場合は、『レプリケーションおよび同期ガイド』の第 15 章「Adaptive Server Anywhere の SQL Remote 設計」にある「既存のパブリケーションの変更」を参照してください。

・[完了] をクリックします。

10. サブスクリプションを定義します。user1 を pubOrder パブリケーションにサブスクライブします。

・Sybase Central の左側のウィンドウ枠で [ユーザとグループ] フォルダを開きます。

・user1] を右クリックして、ポップアップ・メニューから [プロパティ] を選択します。

・[サブスクリプション] タブをクリックします。

・[サブスクリプション作成] ボタンをクリックします。

・pubOrder パブリケーションを選択してから、すべてのダイアログが閉じられるまで [OK] をクリックします。

11. デスクトップの Handheld_PC同期ファイルフォルダでリモート・ユーザのアドレスを作成します。

・Handheld_PC同期ファイルフォルダをダブルクリックします。

・Remote1 という名前の新しいフォルダを作成します。

・そこには cons フォルダがあります。

12. これで、リモート・データベースの抽出と配備が行えるようになります。

・Sybase Central の左側のウィンドウ枠で [asademo-DBA] を右クリックし、ポップアップ・メニューから [データベースの抽出] を選択して、ウィザードの指示に従います。指定が必要な場合を除き、デフォルトの設定を受け入れます。

・リモート・ユーザを求められたら、リモート・ユーザ user1 を選択します。

・リモート・データベースを抽出するロケーションの指定を求められたら、Handheld_PC 同期ファイルへのパスを指定します。

a. デスクトップで、Handheld_PC 同期ファイルフォルダを右クリックして [プロパティ] を選択します。

b. [ショートカット] タブをクリックして、[リンク先] フィールドから行をコピーします。

例 (PocketPC の場合):C:\Documents and Settings\ My Documents\Pocket_PC My Documents\同期ファイル

c. ロケーションの指定フィールドで、現在そこにあるアドレスを削除し、コピーしたアドレスを貼り付けます。

例 (PocketPC の場合):C:\Documents and Settings\My Documents\Pocket_PC My Documents\同期ファイル

・新規データベース・ファイルを作成して次のファイルに再ロードすることを選択します。

例 (PocketPC の場合):C:\Documents and Settings\My Documents\Pocket_PC My Documents\同期ファイル\user1.db 同期ファイルフォルダにブラウズしたら、user1.db と入力する必要があります。

・[完了] をクリックしてウィザードを終了します。

13. すべてが正常に機能していることを確認するために、Pocket PC を同期させます。user1.db および user1.log ファイルを CE デバイスに移動する必要があります。

14. 同期ファイルフォルダにはデータベース・ファイルとログ・ファイルを保持してはいけません。データベースとログ・ファイルに変更を加えるたびに、ActiveSync はデータベース全体を同期させます。この処理は、CE では大きな負荷となります。Windows CE 2.x を使用している場合は、次の手順に従ってください (Pocket PC の場合は、手順 15 に進んでください)。

・\My Documents をダブルクリックして [ファイル] メニューから新規フォルダを選択することにより、Windows CE デバイスに新しいフォルダを作成します。

・そのフォルダに Rep という名前を付けます。

・user1.db および user1.log ファイルを同期ファイルフォルダから Rep フォルダに移動します。これにより、\My Documents\同期ファイルフォルダには cons フォルダと remote1 フォルダだけが存在することになります。

15. Pocket PC を使用している場合は、次の手順に従ってください。 [プログラム] メニューから [ファイル エクスプローラ] を選択することによって、Pocket PC デバイスのルートに新しいフォルダを作成します。

・[スタート] - [プログラム] - [ファイル エクスプローラ] を選択します。

・[マイデバイス] を選択して、他に何も選択できないことを確認します。選択できる場合は、[マイデバイス] を選択できることを確認します。この確認は、Pocket PC のルートにアクセスするために行います。

・[ファイル] - [新規フォルダ] を選択し、そのフォルダに Rep という名前を付けます。

・user1.db および user1.log ファイルを [Rep] フォルダに移動します。この操作は、次の手順に従ってデスクトップから行うことができます。

a. [マイ コンピュータ] をクリックします。

b. [Pocket PC] デバイス・アイコンをクリックします。

c. 同期ファイルフォルダをクリックします。

d. user1.db と user1.log を強調表示します。

e. 選択したファイルを右クリックして、ポップアップ・メニューから [切り取り] を選択します。[切り取り] を選択すると、これらのファイルは自動的にデスクトップの同期フォルダから削除されます。

f. デバイスのルートにある Rep フォルダに移動して、[貼り付け] を選択します。

デスクトップで dbremote をセットアップします。

1. デスクトップ・マシンの右下隅にある赤いアイコンを右クリックして [終了] を選択することにより、Adaptive Server Anywhere (SQL Anywhere) をシャットダウンします。Sybase Central を閉じます。

2. dbremote のショートカットをデスクトップに作成します。そのショートカットの名前を dbremoteCons に変更します。

3. dbremote ショートカットを右クリックして、[プロパティ] を選択します。

4. [ショートカット] タブをクリックします。

5. リンク先の内容をクリアします。

6. 次の行をリンク先に追加します。

“C:\Program Files\Sybase\SQL Anywhere 8\win32\dbremote.exe” -c “uid=dba;pwd=sql;dbf=c:\Program Files\sybase\SQL Anywhere 8\asademo.db”

7. [作業フォルダ] フィールドの内容をクリアして、次の行を入力します。

例 (PocketPC の場合):”C:\Documents and Settings \My Documents\Pocket_PC My Documents\同期ファイル”

二重引用符は必ず付けてください。SQL Anywhere Studio が C: ドライブにインストールされていない場合は、C: ドライブを適切なドライブに置き換える必要があります。また、ハンドヘルドのフォルダ名も確認してください。

8. [適用] をクリックし、続いて [OK] をクリックします。

9. デスクトップの dbremote ショートカットをダブルクリックします。

10. Pocket PC 用に dbremote をセットアップします (Windows CE 2.x を使用している場合は、手順 11 に進んでください)。次の手順に従って、PocketPC の [スタート] メニューに dbremote のショートカットを作成します。

・デスクトップで [メモ] を起動します。

・次の行を入力します。

126#”\Program Files\Sybase\ASA\dbremote.exe” -c “uid=user1;pwd=user1;dbf=\Rep\user1.db;start=\Program Files\Sybase\ASA\dbsrv8.exe”

・126# は文字数です。

・このファイルを dbremote.lnk としてデスクトップの temp フォルダに保存します。

・dbremote.lnk を CE の \windows\スタートメニューフォルダに移動します。

・[スタート] - [dbremote] を選択します。

・手順 12 に進みます。

11. Windows CE 2.x 上で dbremote をセットアップします。dbremote のショートカットを Windows CE のデスクトップに作成します。

・[スタート] - [プログラム] - [エクスプローラ] - [Program Files] - [Sybase] - [ASA] を選択します。

・dbremote をクリックして強調表示します。

・エクスプローラの [ファイル] メニューで [編集] をクリックして、[コピー] を選択します。

・エクスプローラを閉じます。

・[ALT] キーを押したまま、Windows CE デスクトップの空き領域をタップします。[ショートカットの貼り付け] を選択します。ショートカットが表示されない場合は、アイコンを再整列してみてください。

・dbremote ショートカットを強調表示して、そのショートカットを 1 回タップします。次に、[ALT] キーを押したまま、そのショートカットをもう一度タップします。

・[プロパティ] を選択します。

・[ショートカット] タブをクリックします。”\Program Files\Sybase\ASA\dbremote.exe” と表示されます。

・すべてそこに残したまま、次の行を追加します。
-c “uid=user1;pwd=user1;dbf=\Rep\user1.db;start=\Program Files\Sybase\ASA\dbsrv8.exe”

・最終的なコマンドは次のようになります。
“\Program Files\Sybase\ASA\dbremote.exe” . -c “uid=user1;pwd=user1;dbf=\Rep\user1.db;start=\Program Files\Sybase\ASA\dbsrv8.exe”

・[適用] をクリックし、続いて [OK] をクリックします。

Windows CE で dbremote を実行するときには、dbsrv8.exe などの実行プログラムの検索場所を正確に伝えてください。Windows CE は、パスや環境変数を持っていません。開始行なしに dbremote を実行した場合は、”SQL 文が失敗しました: (-80) データベース・サーバを起動することができません” というエラーが表示されます。

12. 先に進む前にデスクトップ上のフォルダを同期させてください。この操作を行うには、ActiveSync をデスクトップ・マシン上で起動している必要があります。[ActiveSync] アイコンをダブルクリックして、[ファイル] メニューから [同期] を選択します。同期ファイルフォルダ内に配置されているデータや同期ファイルフォルダ内で変更されているデータが自動的に同期されます。したがって、メッセージがリモート・ユーザに送られると、ハンドヘルド・デバイスにそのメッセージが自動的にコピーされ、メッセージがハンドヘルド・デバイスに送られると、リモート・ユーザにそのメッセージが自動的にコピーされます。

13. Windows CE デバイスで、作成した dbremote ショートカットをダブルクリックします。今回は、メッセージが相互に同期されます。