在启用定制逻辑策略后,可以使用样本应用程序。下列步骤涉及几个 DB2 Everyplace 应用程序和工具的使用:
过程
在此样本中使用的文件路径是特定于 Windows 的,而变量
%DSYINSTDIR% 是安装了 DB2 Everyplace 的目录。对于 UNIX,将
%DSYINSTDIR% 替换为 $DSYINSTDIR。
- 使用 IBM Sync 来刷新设备(用户=nurse1,密码=nurse1)上的初始数据
- 使用 DB2eCLP 来查看 VNMEDICALRECORD 表中的数据。此表的模式为:
- RecordID integer primary key
- Date_C date
- Time_C time
- PatientID char(9) NOT NULL
- BloodPressure char(7)
- PulseRate smallint
- Temperature decimal(4,1)
- Weight decimal(5,2)
- Comment varchar(100)
- 使用 DB2eCLP 来插入医疗记录
- CLP:> insert into vnmedicalrecord values
(1000, current date, current time, '900000001', '140/85', 80, 100.01, 145.50,
'CL statistic');
- 使用 IBM Sync 来使 vnmedicalrecord 医疗记录与数据源同步
- 在同步期间,如果您要使用 BeforeTableSyncIn、TableSyncIn 和 AfterTableSyncIn 策略,则
DB2 Everyplace 定制逻辑将把日志消息写入 STDOUT。STDOUT 记录在文件 %DSYINSTDIR%\Server\logs\DB2eServer\native_stdout.log(搜索字符串“TableSyncInPolicy”、“BeforeTableSyncInPolicy”和“AfterTableSyncInPolicy”)中。
- 每隔 60 秒就会周期性地发生一次复制。在复制期间,如果您要使用在数据库复制前、在表复制前、表复制、在表复制后和在数据库复制后策略,则定制逻辑将把日志消息写入 STDOUT。
- 使用 DB2eCLP 来插入医疗记录
- CLP:> insert into vnmedicalrecord values (-1001, current date, current
time, '900000001', '140/85', 80, 100.01, 145.50, 'CL primary key change');
- 使用 DB2eCLP 来复查此新创建的记录。注意,主键值是 -1001。
- 使用 IBM Sync 来使此医疗记录与数据源同步。将会发生几项操作:
- 要查看可以如何将定制逻辑用于解决冲突,必须将周期复制更改为按需复制:
- 启动“移动设备管理中心”。
- 编辑 Visiting Nurse 预订(JDBCSUB1)
- 在高级复制预订中,选择定义预订,然后选择计时。将 60 更改为 0。
- 按如下所示在 VNURSE 数据源中插入医疗记录:
- insert into dsysample.vnmedicalrecord (1002,
current date, current time, '900000001', '140/85', 80, 100.01, 145.50, 'CL
conflict source data');
- 使用 DB2eCLP 来插入医疗记录
- CLP:> insert into vnmedicalrecord values
(1002, current date, current time, '900000001', '140/85', 80, 100.01, 145.50,
'CL conflict resolution - winner').
- 使用 IBM Sync 来使此医疗记录与数据源同步。
- 执行手工复制
- 使用 IBM Sync 来针对冲突解决的结果同步。
- 因为源和设备都插入了冲突记录(具有相同的主键 1002),所以“定制逻辑”策略将通过从设备“nurse1”选择获胜者来解决冲突。这覆盖了缺省冲突解决算法,该算法总是从数据源中选择记录作为获胜者。以下为对执行此冲突解决的样本“定制逻辑”的引用。
- 在设备上,使用 DB2eCLP 来查看获胜者是从设备插入的记录。
- 在源上,验证获胜者是从设备插入的记录。
相关任务
相关概念