要启用用户组来访问其成员所需要的数据和文件,必须定义一个或多个复制预订。复制预订提供了一些规范,用于说明源系统(企业服务器)中的信息如何与目标系统(移动设备)同步。
可以在“移动设备管理中心”中创建几种类型的预订:DataPropagator 预订、JDBC 预订、上载预订、文件预订和定制预订。
要确定您需要创建哪些预订,评估移动用户进行工作当前所需要的信息。他们的应用程序要访问哪些数据?它们要定期查看或使用哪些文件?
使用“创建 JDBC 预订”笔记本来创建 JDBC 表预订。
您创建的每个表预订可以引用一个或多个表。
要创建 JDBC 预订
在认证用户后,Sync Server 确定用户所属的组,然后查询管理控制数据库,确定哪些预订涉及到该请求。因此,Sync Server 必须能够按名称唯一地标识每个预订。
要标识 JDBC 预订
在“标识”页上,填写下列字段
仅 Microsoft 提供的 Microsoft High Encryption Pack 为 Windows CE 和 Win32 平台提供了加密支持。必须安装 Microsoft High Encryption Pack 才能在 Windows CE/Pocket PC 客户机或 Win32 平台客户机和 DB2 Everyplace Sync Server 之间使用加密。要在 Palm OS 上支持加密, 需要 Palm OS 3.3 或更新版本。
要指定加密级别
在“标识”页上,使用加密级别字段来选择加密级别。下列三个选项可用:
必须指定源和镜像数据库。对于上载预订,不需要镜像数据库。
要指定源数据库驱动程序和 URL
在“创建 JDBC 预订”笔记本的“源”页上,提供下列信息:
单击测试连接来验证源数据库设置。
需要为同步预订指定镜像数据库,但不需要为上载预订指定镜像数据库。
要指定镜像数据库驱动程序和 URL
在“创建 JDBC 预订”笔记本的“镜像”页上,提供下列信息:
单击“测试连接”来验证源数据库设置。
您必须对每个 JDBC 预订定义至少一个表。如果为预订指定了多个表,则这些表将按照您创建预订时添加它们的次序进行同步。“定义复制预订”窗口上的表列表显示了此次序。
一定不能在两个不同的预订中指定相同的源表和目标表。如果要创建两个复制同一个源表的预订,请使用不同的目标表。
要将表添加至预订
单击过滤器,以更改用来限制表列表中的可用表的源过滤器。“过滤器”窗口打开。
% 符号是一个通配符。在“源模式”和“源表” 字段中输入 % 时将显示表列表中所有可用的表。
当您对一个特定的表(例如,一组探访护士使用的 PATIENTS 表)创建预订时,出于性能方面的考虑会使您只复制该表中的数据子集。您可通过对预订中的每个表选择要复制的个别行或列来指定此子集。
例如,您可决定仅与使用 PATIENTS 表的探访护士相关的列为 PATIENT_NAME、ADDRESS、PHONE 和 DOCTOR 字段。然后,您可决定通过定义 WHERE 子句(该子句过滤为特定医生工作的护士的数据)来进一步过滤数据。
您可将预订的数据过滤器与组的过滤器集或用于个别用户的过滤器集组合使用,以进一步地过滤数据。
要过滤在同步期间将被复制的数据
例如,假定您想要探访护士只能在 PATIENTS 表中看到 JOBCODE 列的值为 VNURSE 的数据行。您将输入以下 WHERE 子句:
JOBCODE='VNURSE'
不必在子句开头输入 WHERE。
例如,假定您想要用户只能看到与其自己的职位代码相关的数据。定义用来引用对每个个别用户定义的数据过滤器值的变量,而不是对整个预订的 JOBCODE 参数的值进行硬编码:
JOBCODE=':JOB.'
在个别用户的数据过滤器中,您可将 :JOB 参数设置为每个用户的职位代码。有关对个别用户过滤数据的更多信息,参见过滤对用户可用的数据和预订级别、组级别或用户级别的水平过滤。
基于性能原因,您可能不想要 Sync Server 在每个同步请求排队时对其执行复制。要改进性能,可以执行下列其中一项:
当对同步请求进行批处理时,Sync Server 会在自上次复制后经过了对批处理窗口定义的秒数时开始复制同步请求。
有关如何将 Sync Server 设置为在任何给定时间执行复制的信息,参见按需复制。
要对同步请求进行批处理:
对同一镜像数据库定义的所有预订共享批处理参数的相同值。所作的任何更改都会影响对镜像数据库定义的所有预订。
在定义预订之后,必须指定哪些预订集使用它。在将预订与预订集相关联时,可将该预订集指定给组,以供组成员访问在预订集引用的预订中定义的数据和文件。
一个预订可供数目不受限制的预订集使用。然而,使用不同特权定义的两个预订不能属于同一预订集。
如果两个具有不同特权的预订与同一个表进行同步,则它们必须使用不同的镜像(中间层)服务器。仅当两个具有不同特权的预订与不同的表进行同步时,才可以使用同一个镜像数据库。
要指定使用此预订的预订集
如果没有任何预订集出现在可用的预订集列表中,则单击创建,以便在不关闭当前的“JDBC 预订”笔记本的情况下创建预订集。“创建预订集”笔记本打开。
DataPropagator 预订提供了一些规范,用以说明源表中的数据如何与移动设备上的表同步。
要创建 DataPropagator 预订:
例如,您想要在每次同步时都复制源表中的所有数据吗?还是只复制某些行?对预订指定的数据过滤适用于使用该预订的所有组。
本节中更为详细地说明了这些步骤中的大多数步骤。
在认证用户之后,Sync Server 会确定用户所属的组,然后查询“管理控制数据库”以确定该请求涉及哪些预订。因此,Sync Server 必须能够按名称唯一地标识每个预订。
要标识 DataPropagator 预订,在“创建 DataPropagator 预订”笔记本的“标识” 页上的下列字段中输入信息:
对于 DB2 DataPropagator 预订,系统会在将您在此处指定的名称保存到“管理控制数据库”中时将该名称转换为大写字母。在该名称保存到控制数据库中之后,不能重新命名该预订,因为 DB2 DataPropagator 不支持此功能。 必须先删除现有预订,然后用新名称创建新预订。
输入最多 128 个字符的文本来描述此预订。
仅 Microsoft 提供的 Microsoft High Encryption Pack 为 Windows CE 和 Win32 平台提供了加密支持。必须安装 Microsoft High Encryption Pack 才能在 Windows CE/Pocket PC 客户机或 Win32 平台客户机和 DB2 Everyplace Sync Server 之间使用加密。要在 Palm OS 上支持加密, 需要 Palm OS 3.3 或更新版本。
要指定加密级别
在“标识”页上,使用加密级别字段来选择加密级别。加密级别修改后, 预订至该预订的所有用户都必须复位。下列三个选项可用:
要将企业系统上的源数据库映射至移动设备上它的目标数据库,在“创建 DataPropagator 预订”笔记本的“标识”页上的下列字段中输入信息:
必须对源数据库编目。通过单击
按钮,从已编目数据库的列表中选择名称。
此字段自动缺省为您在源数据库字段中输入的名称。仅当在这是对源数据库定义的第一个预订时,您才能覆盖此目标数据库名。
此字段不适用于运行 Palm OS 的设备,因为该操作系统并未使用传统的数据库结构。
在开始设置同步之前,必须在中间层系统上创建镜像数据库。您可以通过单击创建按钮启动“创建数据库”向导来创建镜像数据库。然后,可在预订中标识该镜像数据库。
要标识镜像数据库,从“创建 DataPropagator 预订”笔记本“标识页”上的镜像数据库字段中的列表中选择一个镜像数据库名。此字段会显示在调用了“移动设备管理中心”的服务器上定义的所有数据库。
复制源是一个表,它驻留在数据从其复制至目标系统的源系统上。您必须对每个 DataPropagator 预订定义至少一个复制源。一定不能在两个不同的预订中指定相同的源表和目标表。如果要创建两个复制同一个源表的预订,请使用不同的目标表。
如果为预订指定了多个表,则这些表将按照您创建预订时添加它们的次序进行同步。“定义复制预订”窗口上的表列表显示了此次序。
要将复制源添加至预订:
因为复制源可由不同于 DB2 Everyplace Sync Server 的工具使用和管理,所以在您定义源时,确保以所有应用程序都可利用的方式来控制对数据的访问。
预订名字段反映您在“标识” 页上输入的预订的名称。Apply 限定符字段表示 Sync Server 用于对此数据库定义的所有预订的唯一限定符。
Apply 限定符使中间层镜像数据库与企业系统上它的主数据库的同步进程更为流畅;当 Apply 程序运行时,DataPropagator 用同一个 Apply 限定符为所有预订复制数据。Apply 限定符缺省为镜像数据库的名称。
在同一预订中,源表可映射至多个目标表名。但是,DB2 DataPropagator 使用单一更改数据表来在两个目标表之间复制更改。
在创建特定表(例如,探访护士组的 PATIENTS 表)的预订时,基于性能方面的考虑,您可能只能复制预订中的数据子集。您可通过对预订中的每个表选择要复制的个别行来指定此子集。
例如,您可决定仅与使用 PATIENTS 表的探访护士相关的列为 PATIENT_NAME、ADDRESS、PHONE 和 DOCTOR 字段。然后,您可决定通过定义 WHERE 子句(该子句过滤为特定医生工作的护士的数据)来进一步过滤数据。
您可将预订的数据过滤器与组的过滤器集或用于个别用户的过滤器集组合使用,以进一步地过滤数据。
要过滤将在同步期间复制的数据:
例如,假定您想要探访护士只能在 PATIENTS 表中看到 JOBCODE 列的值为 VNURSE 的数据行。您可输入以下 WHERE 子句:
JOBCODE='VNURSE'
一定不能在子句开头使用 WHERE 关键字。
您可单击示例来显示样本 WHERE 子句。
例如,假定您想要用户只能看到与其自己的职位代码相关的数据。定义用来引用对每个个别用户定义的数据过滤器值的变量,而不是对整个预订的 JOBCODE 参数的值进行硬编码:
JOBCODE=':JOB.'
在个别用户的数据过滤器中,您可将 :JOB 参数设置为每个用户的职位代码。有关对个别用户过滤数据的更多信息,参见过滤对用户可用的数据和预订级别、组级别或用户级别的水平过滤。
基于性能原因,您可能不想要 Sync Server 在每个同步请求排队时对其执行复制。要改进性能,可以执行下列其中一项:
当对同步请求进行批处理时,Sync Server 会在自上次复制后经过了对批处理窗口定义的秒数时开始复制同步请求。
有关如何将 Sync Server 设置为在给定时间执行复制的信息,参见按需复制。
要对同步请求进行批处理:
对同一镜像数据库定义的所有预订共享批处理参数的相同值。所作的任何更改都会影响对镜像数据库定义的所有预订。
对源数据库定义的所有预订共享同一用户标识和密码以获得对数据库的访问权。如果这是对源数据库创建的第一个预订,则您需要指定此用户标识和密码。为此,在“创建 DataPropagator 预订”笔记本的“认证”页上输入下列值:
Sync Server 会根据此信息创建 DataPropagator 用来访问源数据库的密码文件。该密码文件存储在 Sync Server 运行于其中的目录中。
在定义预订之后,必须指定要使用它的预订集。如果将预订与预订集相关联,则可将该预订集指定给组,以便让组成员可以访问在预订集引用的预订中定义的数据和文件。
一个预订可供数目不受限制的预订集使用。然而,使用不同特权定义的两个预订不能属于同一预订集。
如果两个具有不同特权的预订指向同一个表,则它们必须使用不同的镜像(中间层)服务器。仅当两个具有不同特权的预订与不同的表进行同步时,才可以使用同一个镜像数据库。
要指定使用此预订的预订集:
如果可用的预订集列表中没有显示任何预订集,则将需要创建预订集。可现在单击创建来打开“创建预订集”笔记本,或稍后创建预订集,并在以后将其与预订相关联。有关创建预订集的更多信息,参见使组能够访问其数据和文件。
上载预订是一种 JDBC 预订,它允许将行直接插入到源数据库中的表中。源表可以驻留在任何支持 JDBC 的数据库中。上载预订可以改进 Sync Server 的吞吐量、简化管理和提高系统可靠性。
在客户机设备只用于收集数据并且及时获取客户机设备上的表的更新 并不是主要的关心事项的情况下,可以使用上载预订。这样的情况包括:
除了要求源数据库必须支持 JDBC 和 SQL INSERT 语句之外,对源数据库没有什么限制。由于上载预订不进行复制,所以,对 Sync Server 的压力大为减轻。
在上载预订中,当与 Sync Server 进行同步时,手持式设备上的 DB2 Everyplace 数据库引擎直接与源数据库进行通信,以插入已添加至 DB2 Everyplace 数据库的行。数据流是单向的,不刷新设备上的表。此过程不涉及镜像数据库。
如果使用主键,就会拒绝导致主键冲突的多个插入。这些拒绝同时记录在客户机中以及 Sync Server
上的“移动设备管理中心”(MDAC)中。其他操作,如 DELETE 和 UPDATE,
或者被源数据库忽略,或者被拒绝。表 7列示了客户机操作和结果。
操作 | 结果 |
---|---|
在主键中不引起冲突的客户机 INSERT 操作 | 插入到源数据库中 |
在主键中引起冲突的客户机 INSERT 操作 | 被拒绝,并将错误信息记录在客户机和 MDAC 中 |
客户机的 UPDATE 操作 | 被拒绝,并将错误信息记录在客户机和 MDAC 中 |
客户机的 DELETE 操作 | 被安静地忽略 |
第一次同步 | 在客户机中创建不带行的表 |
在上载预订中,Sync Server 从不更新设备的 DB2 Everyplace 数据库中的相关表。
使用“创建上载预订”笔记本来创建上载表预订。有关如何打开笔记本的信息,参见创建同步对象。您创建的每个表预订可以引用一个或多个表。
要创建上载预订
本节中更详细地说明了这些步骤。
在认证用户后,Sync Server 确定用户所属的组,然后查询管理控制数据库,确定哪些预订涉及到该请求。因此,Sync Server 必须能够按名称唯一地标识每个预订。
要标识上载预订
仅 Microsoft 提供的 Microsoft High Encryption Pack 为 Windows CE 和 Win32 平台提供了加密支持。必须安装 Microsoft High Encryption Pack 才能在 Windows CE/Pocket PC 客户机或 Win32 平台客户机和 DB2 Everyplace Sync Server 之间使用加密。要在 Palm OS 上支持加密, 需要 Palm OS 3.3 或更新版本。
要加密加密级别
在标识页上,从加密级别下拉列表中选择加密级别。下列三个选项可用:
由于不涉及镜像数据库,所以,只能为上载预订指定源数据库。
要指定源数据库驱动程序和 URL
在“创建上载预订”笔记本的源页上,提供下列信息:
您必须对每个上载预订定义至少一个表。
要将表添加至预订
单击过滤器,以更改用来限制表列表中的可用表的源过滤器。“过滤器”窗口打开。
% 符号是一个通配符。在“源模式”和“源表” 字段中输入 % 时将显示表列表中所有可用的表。
在定义预订之后,必须指定哪些预订集使用它。在将预订与预订集相关联之后,可将该预订集指定给一个组,以使组成员能够访问数据和文件。组可以访问的数据和文件在该预订集所引用的预订中定义。
一个预订可供数目不受限制的预订集使用。
要指定使用此预订的预订集
如果没有任何预订集出现在可用的预订集列表中, 则单击创建,以便在不关闭当前“创建上载预订”笔记本的 情况下创建预订集。“创建预订集”笔记本打开。
要为用户提供对它们所需的文件的访问权,可定义一个或多个文件预订。与 DataPropagator 预订(它可包含多个表)不同,一个文件预订只能包含一个文件。因此,如果用户组需要访问几个文件,则您必须创建几个文件预订(然后按指定预订集会访问的信息中所说明的那样将它们指定给预订集,并按启用组以访问数据和文件中所说明的那样 将预订集指定给组)。一个文件不能在多个预订中被引用。
对其预订组的文件可以是存储在源服务器上的任何文件。可以使用文件预订来作为一种方便的将数据和应用程序文件分布至用户并进行更新的方法。例如,它可以是要安装在移动设备上的应用程序文件,或是使 Palm OS 应用程序起作用所必需的资源文件,或是包含晨会备忘录的平面文件。
要创建文件预订:
这些步骤会在本节中作进一步的说明。
在认证用户之后,Sync Server 会确定用户所属的组,然后查询“管理控制数据库”以确定该请求涉及哪些预订。为此,Sync Server 必须能够根据名称唯一地标识每个文件预订。
要标识文件预订,在“创建文件预订”笔记本的“标识” 页上输入下列信息:
仅 Microsoft 提供的 Microsoft High Encryption Pack 为 Windows CE 和 Win32 平台提供了加密支持。必须安装 Microsoft High Encryption Pack 才能在 Windows CE/Pocket PC 客户机或 Win32 平台客户机和 DB2 Everyplace Sync Server 之间使用加密。要在 Palm OS 上支持加密, 需要 Palm OS 3.3 或更新版本。
要加密加密级别
在“标识”页上,使用加密级别字段来选择加密级别。下列三个选项可用:
源文件必须可用于在调用“移动设备管理中心”的中间层系统中进行选择。因此,在定义预订之前,连接至文件所在的源系统,或将文件从源系统复制至中间层系统。如果同步配置只有两层,则文件可能已经在调用“移动设备管理中心”的系统上。
在“创建文件预订”笔记本的“标识” 页上的源文件名字段中指定源文件的名称。
在创建文件预订之后,会存储在此处指定的文件的副本来确保预订的完整性,以防文件有任何闪失。如果更新了文件,必须标志要再次复制至每个预订的用户的源文件。有关更多信息,参见标志出引用已更改的文件的预订。
由于 Palm OS 移动设备将文件名存储在文件自身中,所以目标文件名字段会被忽略。
在定义预订之后,必须指定要使用它的预订集。如果将预订与预订集相关联,则可将该预订集指定给组,以供其成员访问在预订集引用的预订中定义的数据和文件。
一个预订可供数目不受限制的预订集使用。
要指定使用此预订的预订集:
如果可用的预订集列表中没有显示任何预订集,则将需要创建预订集。可现在单击创建来打开“创建预订集” 笔记本,或稍后创建预订集,并在以后将其与预订相关联。有关创建预订集的更多信息,参见使组能够访问其数据和文件。
您还可以使用“预订集”笔记本将预订与预订集相关联。有关更多信息,参见指定预订集会访问的信息。
如果对预订中引用的文件作了更改,则需要标志出源文件已更改,以使 Sync Server 在下一次同步时将该文件复制至预订的用户。这是一种非常方便的在移动设备上更新或升级应用程序和数据文件的方法。
要标志源文件已更改:
使用“创建定制预订”笔记本来创建定制预订。定制预订可用来定制缺省适配器或使用第三方适配器。
要创建定制预订
这些步骤会在本节中作进一步的说明。
在认证用户后,Sync Server 确定用户所属的组,然后查询管理控制数据库,确定哪些预订涉及到该请求。因此,Sync Server 必须能够按名称唯一地标识每个预订。
要标识定制预订
在“标识”页上,填写下列字段:
定制预订不支持加密。在加密字段中选择“无”。
要启动定制器
在“标识”页上,单击
按钮来启动在预订所使用的定制适配器的
“定制器”类名字段中所定义的定制
Java 类文件。仅当适配器请求时,定制器才可用。否则,
会在其他字段输入定制预订的附加参数。
在定义预订之后,必须指定哪些预订集使用它。在将预订与预订集相关联时,可将该预订集指定给组,以供组成员访问在预订集引用的预订中定义的数据和文件。
一个预订可供数目不受限制的预订集使用。
要指定使用此预订的预订集
如果没有任何预订集出现在可用的预订集列表中,则单击创建,以便在不关闭当前“定制预订”笔记本的情况下创建预订集。“创建预订集”笔记本打开。
使用“创建定制适配器”笔记本来创建定制适配器。DB2 Everyplace Sync Server 包括四个缺省适配器。这些缺省适配器包括:
DSYDPROPR 用于关系数据的 DataPropagator 适配器 DSYJDBC 用于关系数据的 JDBC 适配器 DSYFILE 用来复制文件的文件适配器 Agent Adapter 用来运行存储过程的“远程查询和存储过程”适配器
定制适配器允许您扩展 DB2 Everyplace Sync Server 的功能。
要创建定制适配器
这些步骤会在本节中作进一步的说明。
要标识定制适配器
在“标识”页上,填写下列字段:
要指定“定制器”类名和“签名”
在“标识”页上,填写下列字段:
签名用来标识适配器的类。这会防止将关系数据预订与文件适配器一起使用。例如, 如果 WIDGET 适配器有许多实例(所有实例都使用同一签名 WidgetSig), 且 WIDGET 适配器的每个实例都有一个不同的函数, 则使用此 WIDGET 适配器的每个现存定制预订都可以使用相同签名(WidgetSig)的任何定制 WIDGET 适配器。
要指定通信属性
在“标识”页上,填写下列字段:
XXX.XXX.XXX.XXX:PPPP
其中,XXX.XXX.XXX.XXX 是 IP 地址,PPPP 是端口号。
要指定文件属性
在“标识”页上,填写下列字段:
按需复制功能使您能够随时请求复制。这是将复制设置为根据常规时间间隔自动运行的替代方法。可以在创建新预订时启用按需复制,可以在编辑现有预订时启用按需复制。如果重新配置现有的预订,则必须重新启动 Sync Server 小服务程序以使更改生效。
要启用按需复制:
当 Sync Server 小服务程序启动时,初始复制照常发生。但是,不自动执行任何后续复制。可以使用 dsyreplicate 命令请求后续复制。要请求复制:
dsyreplicate m_vnurse
注意: