簡介
本文將描述如何通過使用 DB2 Everyplace Sync Server 和 DB2 Everyplace Sync ClIEnt 來使 DB2 ® Everyplace™ 移動設備和企業數據源之間的數據和應用程序同步。在本文中,我們將使用 DB2 Everyplace Enterprise Edition 8.1 for Windows® 2000 and Windows NT®。
本文要求您安裝並配置了 DB2 Everyplace Enterprise Edition 8.1 和 DB2 Universal Database™ Enterprise Edition V7.2,並部署了 Palm 地址簿示例,如 通過使用 DB2 Everyplace 為 Palm 設備創建移動應用程序中所描述的那樣。
本文旨在幫助您:
了解移動設備和 DB2 Everyplace 之間的同步進程。
通過使用移動設備管理中心(Mobile Device Administration Center,MDAC)配置同步進程、創建復制存儲以及定義訂閱和訪問控制。
測試樣本地址簿(Sample Address Book)Palm 應用程序和 DB2 數據源之間的同步。
同步解決方案概述
移動數據同步的 DB2 Everyplace 解決方案的關鍵是 DB2 Everyplace Sync Server,它充當客戶機/服務器程序,以管理源關系數據庫和目標數據庫(在移動設備上部署的 DB2 Everyplace 數據庫)之間的雙向數據同步。要同步數據的移動設備上應當安裝 Sync ClIEnt。Sync Server 充當移動設備上的同步客戶機軟件和源服務器上的 DB2 UDB 數據庫或其它 JDBC 數據庫之間的中介。
數據同步可以是雙向的,也可以是單向的。數據既可以傳送到 DB2 Everyplace 移動設備上,也可以傳送到企業數據庫中。例如,用戶可以將 DB2 數據庫中的數據子集下載到移動設備上的 DB2 Everyplace 數據庫,查看數據、對數據進行更改,然後使源數據庫與已更改的數據同步。DB2 Everyplace Sync Server 還提供了解決沖突的機制。
DB2 Everyplace Sync Server 提供了名為移動設備管理中心(MDAC)的管理工具,該工具幫助您管理同步服務並將同步服務提供給有類似數據同步需求的用戶組。
在移動設備上運行的 DB2 Everyplace Sync ClIEnt 包含連接 DB2 Everyplace Sync Server 的應用程序。它處理企業關系數據與 DB2 Everyplace 移動數據庫之間的雙向同步。移動設備還管理與文件訂閱相關的操作,以便方便地將移動應用程序發布到該設備,並且可以執行存儲在 DB2 數據庫中的存儲過程。
圖 1 顯示了移動客戶機、同步服務器和源數據庫之間的交互。
圖 1. 客戶機、中間層和源系統之間的交互。
配置 DB2 Everyplace 同步解決方案
下面是配置步驟概述。
在移動客戶機上安裝 DB2 Everyplace 數據庫引擎和 Sync ClIEnt 應用程序。
創建源(DB2)數據庫和表,以在服務器上實現同步。
通過使用移動設備管理中心(MDAC)創建同步對象。
設置移動設備(在我們的示例中是 Palm Emulator),以獲得同步。
第 1 步:安裝 DB2 Everyplace 和 Sync ClIEnt
如果您閱讀並遵循了我在上一篇文章“使用 DB2 Everyplace 創建無線數據”中給出的指示信息,那麼 DB2 Everyplace 引擎應該已經安裝在 PALM Emulator 上。否則,我們可以按照如下步驟在 Palm Emulator 上安裝 Sync ClIEnt:
在 Palm Emulator 上單擊鼠標右鍵,選擇 Install Application/Database ->Other。
在浏覽窗口中,轉至安裝了 DB2 Everyplace 的目錄(例如 c:\db2everyplace ),然後選擇下列文件:
c:\db2everyplace\sync\ClIEnts\PalmOS\dsyagent.prc
c:\db2everyplace\sync\ClIEnts\PalmOS\imsaconfig.prc
c:\db2everyplace\sync\ClIEnts\PalmOS\imsadb2e.prc
c:\db2everyplace\sync\ClIEnts\PalmOS\imsafile.prc
c:\db2everyplace\sync\ClIEnts\PalmOS\isynce.prc
c:\db2everyplace\sync\ClIEnts\PalmOS\isyncl.prc
c:\db2everyplace\sync\ClIEnts\PalmOS\isyncui.prc
c:\db2everyplace\sync\ClIEnts\PalmOS\PBSPkcs11.prc
c:\db2everyplace\sync\ClIEnts\PalmOS\wbXMLlib.prc
現在,Palm Emulator 上已經安裝了 Sync ClIEnt。
第 2 步:在服務器上創建源(DB2)數據庫和表
我們需要在服務器上創建源表。這些“源”表是我們要使無線數據與之同步的 DB2 服務器數據庫上的表。我們將使用在上一篇文章中創建的地址簿中的數據。要創建源表:
在 Windows 命令提示符處,輸入 db2cmd 。
通過輸入下列語句,創建所需的數據庫和表:
db2 create database address
db2 connect to address
db2 CREATE TABLE Address (FirstName Char(30), LastName Char(30) not null primary key,
Address char(30), Country char(30),PhoneNumber char(15))
db2 disconnect address
這就創建了地址數據庫並在該數據庫中創建了名為 address 的表。
第 3 步:使用 MDAC 創建同步對象
同步對象包含有關同步進程方面的信息。可以為同步配置六種類型的同步對象。
用戶:使用 DB2 Everyplace Sync Server 在源(企業系統)和目標(移動設備)之間同步數據的用戶。將用戶指定給組,這樣就有權使用在該組的 訂閱集中定義的訂閱。
組:有相似移動數據同步需求的一組用戶。為每個組定義同步特征,如組中的用戶需要訪問哪些應用程序來執行其作業以及他們需要訪問哪些企業數據子集。
訂閱:源數據庫或服務器中的哪些信息被復制到目標數據庫(移動設備上的 DB2 Everyplace 數據庫)的詳細說明。可以創建兩種類型的訂閱:
對存儲在源服務器上文件的文件訂閱。
通過使用 DataPropagator™ 或 JDBC™ 訂閱的源數據庫中的表訂閱。
DataPropagator 訂閱向用戶提供了對 DB2 服務器上源表中數據的訪問,JDBC 訂閱向用戶提供了對具有 JDBC 接口的數據源(包括 Oracle®、DB2、Microsoft® SQL Server、Informix®、Sybase® 和 Lotus® Domino™)上源表中數據的訪問權。
訂閱集:訂閱的集合。要向組成員提供對在訂閱中定義的數據和文件的訪問,將訂閱都收集在一個稱為 訂閱集的容器中,然後將該容器對象指定給該組。當用戶啟動設備上的同步客戶機軟件時,他們選擇要同步的訂閱集。出現在客戶機上的訂閱集菜單是根據與用戶組相關的訂閱集列表而創建的。
適配器:用於與 Sync Server 同步和通信的適配器。包括了適配器集合以用於同步文件、關系數據(使用 DB2)、關系數據(使用 JDBC)和遠程查詢和存儲過程功能
日志:在實現移動數據同步之後,可以通過記錄在錯誤日志中的錯誤信息來監控任何同步問題。
針對我們的同步進程,讓我們創建一個用戶、一個組、一個訂閱和一個訂閱集。使用 MDAC 來完成這件事。所有這些同步對象都存儲在同步控制數據庫 DSYSCTLDB 中,該數據庫是在安裝 DB2 Everyplace Sync Server 時創建的。
創建用戶
單擊 User->Create,如下所示:
輸入移動用戶名 — 在我們的示例中是 Naveen — 然後,單擊 Authentication選項卡。
在 Authentication選項卡中,輸入密碼。在從 Mobile ClIEnt 到 Sync Server 的認證過程中將需要這個密碼。
單擊 OK以完成用戶對象的創建。
接下來,必須將該用戶添加到用戶組。提供對在組的訂閱集中定義的訂閱的訪問權時需要組。
創建組
從 MDAC,單擊 Group->Create。
輸入組名。在我們的示例中,使用 NaveenGrp 。
圖片看不清楚?請點擊這裡查看原圖(大圖)。
單擊 Users選項卡,然後將用戶 Naveen 從 Available users移動到 Selected users,然後單擊 OK。
圖片看不清楚?請點擊這裡查看原圖(大圖)。
現在,我們已經將 Naveen 添加到組中。現在讓我們創建訂閱對象。
創建訂閱
在創建訂閱之前,必須將 Address 表定義為 復制源,以便 DB2 Everyplace Sync Server 知道在同步過程中使用哪個表。
該過程分為下列步驟:
定義復制源
創建 JDBC 訂閱
創建鏡像數據庫
定義復制源
從 MDAC,選擇地址數據庫中的 Address 表,然後選擇 Define as Replication Source -> DB2 Everyplace Sync Server。
當窗口出現時,單擊 Run SQL now,使數據庫復制生效。您將接收到消息“Address Table available as a Replication Source”。
現在,我們可以創建 JDBC 訂閱。
創建 JDBC 訂閱
單擊 Subscription,然後選擇 Create ->Table subscription ->JDBC subscription.。
圖片看不清楚?請點擊這裡查看原圖(大圖)。
輸入 JDBC 訂閱的名稱。在我們的示例中,我們將它命名為 AddressJDBC 。
對於加密,選擇 None,並使 Adapter 值保持原樣。
圖片看不清楚?請點擊這裡查看原圖(大圖)。
在 Source 選項卡中,輸入有權訪問 DB2 數據庫的用戶標識和密碼。
對於 Driver,選擇 IBM DB2 UDB local,因為我們已經在本地機器上安裝了 DB2。(如果遠程定位 DB2 UDB,則選擇遠程。)
單擊 Database URL 旁的 選項卡,這將彈出 Select Local DB2 Source Database 窗口,如下所示。選擇 ADDRESS 數據庫,然後單擊 OK。
創建鏡像數據庫
接下來,為應用程序創建並指定一個鏡像數據庫。鏡像數據庫是實施改進同步請求吞吐量能力的操作所必需的。發生其它更新時,可以實施更改。鏡像數據庫也可用於解決由於從多台客戶機進行訪問而產生的任何沖突問題。
要創建鏡像數據庫:
單擊 Mirror選項卡,輸入有權訪問 DB2 數據庫的用戶標識和密碼。
單擊 Database URL 旁的 ,這將彈出 Select Mirror Database 窗口。
單擊 Create,這將調用下面所示的 DB2 數據庫創建向導。輸入數據庫名(我們使用 MR_ADDRS),然後單擊 Finish。
圖片看不清楚?請點擊這裡查看原圖(大圖)。
在 Select Mirror Database窗口上,單擊 Refresh,然後選擇 MR_ADDRS 數據庫,如下所示:
現在,必須將源表(DB2)映射到 DB2 Everyplace 表。要做到這一點:
單擊 Identification 選項卡上的 Define Subscription。
單擊 Add,這將調用下面所示的窗口:
選擇 ADMINISTRATOR.ADDRESS 作為源(DB2 UDB)表。
缺省情況下,目標表被設置成與源表一樣。在我們的示例中,目標表映射到安裝在客戶機端的 DB2 Everyplace 數據庫表。因為源表和目標表有相同的名稱並且有一對一映射,所以它是有效的。如果您有不同的目標表,則需要在 Target table 域中指定它。如果目標表沒有模式,則目標缺省的模式名將與源模式相同。
單擊 Add以添加該信息。
選擇 Define Subscription 窗口上的 Administrator.Address ,然後單擊 Advanced。
圖片看不清楚?請點擊這裡查看原圖(大圖)。
這顯示了源表列與目標表列的映射,它允許您指出想要復制的字段。因為列名都是相同的,所以不需要做任何事。否則,我們必須選擇特定字段並使用 Change選項。
單擊 OK,關閉窗口。
現在,我們已經完成了對訂閱對象的描述,該將訂閱和用戶組分組到 訂閱集了。
創建訂閱集
單擊 MDAC 中的 Subscription Sets部分。
選擇 Create來創建新的訂閱集,它將調用下面顯示的窗口:
在 Identification 選項卡的 Name域中輸入訂閱集名。
單擊 Subscriptions選項卡,將 AddressJDBC 訂閱添加到 Selected subscriptions 選項卡中:
圖片看不清楚?請點擊這裡查看原圖(大圖)。
同樣,單擊 Groups選項卡並將 NaveenGrp 添加到如下所示的 Selected groups 窗格中,然後單擊 OK。
圖片看不清楚?請點擊這裡查看原圖(大圖)。
為用戶組啟用同步:
選擇 Group部分。
選擇 NaveenGrp,單擊它並選擇 Edit,這將調用如下所示的窗口:
圖片看不清楚?請點擊這裡查看原圖(大圖)。
選中 Enable synchronization復選框,然後單擊 OK。
現在,我們配置了訂閱集。
接著,我們繼續配置 Palm Emulator 來實現同步。
第 4 步:配置 Palm Emulator 來實現同步
單擊 Palm Emulator 上的 IBM Sync Application,然後單擊 Options ->settings。