SQL Anywhere Studio MobiLink之二

实现业务规则的重要性

MobiLink的一个主要优点是具有利用其事件驱动的架构定制同步过程的能力。您能够提供自定义脚本为任何特殊事件指定相应处理方法。MobiLink 提供了非常精细的控制;比如说,在涉及100个表的同步过程中,差不多有数千个不同的事件可用。当然,大多数事件无需脚本,采用默认操作即可;在本案例中,为以下事件编写了自定义脚本:

事件名称
脚本用途
upload_insert
为每一个表指定如何处理每一个已上传的插入
upload_update
为每一个表指定如何处理每一个已上传的更新
upload_delete
为每一个表指定如何处理每一个已上传的删除
upload_statistics
为每一个表记录上传行数
begin_download
确定要下载的表和行的集合
download_cursor
为每一个表选择下载的行
download_delete_cursor
为每一个表选择要从远程数据库删除的行的主键
end_download
记录哪一个表和行的集合在变更前不需下载
download_statistics
为每一个表记录所下载的行数
handle_error
对可能发生的特定错误进行特殊处理

完善的应用程序通常在同步过程上运用复杂的业务规则,Mobile Inspector也不例外。为业务规则使用的MobiLink脚本就像“仅District Supervisors可获得District Supervisor Inspection表中的行”一样直观,当然也可实现更复杂的规则。例如,以下download_cursor脚本选择Inspect 行的规则为:该行(1)被分配给特殊检查小组,并且(2a)尚未被下载,或(2b)自上次下载后已更新。此脚本中的SELECT语句使用 BRI_RECD_SYNC_IDS 表识别已分配给该小组的行;而之前更长的begin_download脚本动态填充该表,从而使其可在类似于本例所示的脚本中使用:

SELECT BRI_INSPCTN.INSPCTN_ID,
BRI_INSPCTN.STRCTR_ID,
BRI_INSPCTN.INSPCTN_DT,
...
BRI_INSPCTN.APRVL_DT
FROM WIGINS_UNIT.BRI_INSPCTN
WHERE EXISTS
( SELECT *
FROM WIGINS_UNIT.BRI_RECD_SYNC_IDS,
WIGINS_UNIT.BRI_TMP_SYNC_VRBLS
WHERE BRI_TMP_SYNC_VRBLS.SESSION_ID
= TO_NUMBER ( USERENV ( SESSIONID ) )
AND BRI_RECD_SYNC_IDS.GLOBAL_DB_ID
= BRI_TMP_SYNC_VRBLS.GLOBAL_DB_ID
-- for this remote
AND BRI_RECD_SYNC_IDS.STRCTR_ID
= BRI_INSPCTN.STRCTR_ID
-- matches on structure id
AND BRI_RECD_SYNC_IDS.INSPCTN_ID
= BRI_INSPCTN.INSPCTN_ID
-- matches on inspection id
AND ( BRI_RECD_SYNC_IDS.FRST_DOWNLOAD_TS
= '1900-01-01'
-- not yet been downloaded
OR BRI_INSPCTN.LST_MDFD_TS
>= ? ) )
-- updated since the last synch

MobiLink服务器调用Mobilink脚本,但实际上由中心或“统一”数据库服务器执行脚本,并为MobiLink服务器往返传递行。NC DOT 使用两组Mobilink服务器和两组脚本实现三层数据库架构。在最上面的一级,用Oracle PL/SQL编写的脚本运行于中心的Oracle 9i服务器;上例为此类脚本之一。行被传递到中心站点处运行的Mobilink服务器,并从那里传递到检查办公室的小组负责人的平板电脑上。

在现场,有另一个在每位小组负责人的平板电脑上运行的Mobilink服务器。该服务器调用运行在同一台电脑上的ASA数据库服务器中的SQL脚本;这些行传递到MobiLink服务器,并从那里通过无线连接传送给小组成员。通过这样的设置,小组负责人的数据库在以Oracle同步时作为远程数据库,而在与小组成员同步时作为统一数据库。

时间: 2025-01-07 17:07:14

SQL Anywhere Studio MobiLink之二的相关文章

SQL Anywhere Studio MobiLink之一

简介 北卡罗莱纳运输部(NC DOT)曾面临当今典型移动计算中数据同步的很多挑战.本文概要地介绍了NC DOT Mobile Inspector 应用.桥梁技术检查组内部和中心办公室及时交换信息的需求以及在本应用中实现数据库同步的SQL Anywhere Studio MobiLink技术. NC DOT 应用简介 2004年春天,我来到了北卡罗来纳州的罗利市.在此之前,我从未在桥梁和高架桥上花过太多心思.我不知道定期检查桥梁安全的必要性,当然对"桥梁检查员"这个职务也知之甚少.就我所

SQL Anywhere Studio MobiLink之三

分布式数据挑战 彼此没有固定联系的分布式数据库无法提供任何全系统锁定的机制.特别是没有任何机制可阻止您插入在两个不同远程数据库中具有相同主键的两行,从而在将这些行上传到统一数据库时造成主键冲突. 解决方案之一是使用由一个普通自动增量列加上数据库标识符组成的复合主键来解决不同数据库的自动增量值重叠问题.多列主键使外键定义过于复杂,令应用程序开发人员非常头疼,因此全局惟一标识符(GUID)有时被视为单列替代方案.GUID是具有形如"6F9619FF-8B86-D011-B42D-00C04FC964

SQL Anywhere Studio的主要特点及组件

SQL Anywhere Studio 是一个用于服务器.桌面.移动.嵌入式和远程办公环境的数据管理和同步解决方案.SQL Anywhere 的主要特点--小如指印.企业级特性.出色的高性能.方便易用--已成为成千上万家公司的首选,它们的应用没有运行在数据中心. 以下是 SQL Anywhere 的几个组件: 1.Adaptive Server Anywhere:它是一个既能适应手持设备又合适企业级别安装的数据库管理系统.Adaptive Server Anywhere 拥有出色的高性能,简单易

解析SQL Anywhere Studio与.NET 集成

开发人员能使用.NET 提供的大多数服务将 SQL Anywhere Studio 的功能增加到应用中. 1.通过.NET 访问数据:SQL Anywhere 实现了 ADO .NET 命名空间,提供访问关系型数据的接口. 2.SQL Anywhere 也提供 web 服务.可被 Microsoft .NET 和其他通过因特网协议分布访问基于 XML 数据机制的企业集成平台调用. 3.让数据随处可得:SQL Anywhere 提供的 MobiLink 数据同步让数据在偶尔连接网络的环境中"永远可

SQL Anywhere Studio数据库管理和复制

可以使用 SQL Anywhere Studio 给整个组织中的工作组.移动和嵌入式数据库系统发送信息. SQL Anywhere Studio 包含以下组件. 关系数据库系统 Adaptive Server Anywhere 产品核心的关系数据库是基于事务的SQL 数据库,适用于个人和工作组. Adaptive Server Anywhere 可以在多种操作系统上运行,包括各种 Windows 和 UNIX 操作系统以及 Novell NetWare 操作系统.运行该数据库的硬件包括多 CPU

SQL Server 2005加密体系(二)

server|加密|体系 SQL Server 2005加密体系(二)紧接上一篇,再给一段用密钥加密数据的范例,这段代码比较简单,大黄不准像蹂躏大余一样说我灌水!!! -------------------------------------------------------------------------------- --创建实验用数据库USE masterIF EXISTS(SELECT [name] FROM sys.databases WHERE [name] = 'Sales'

在团队开发环境中使用 Visual Studio .NET (二)

脱机时签入文件 不可能在脱机时签入文件:因为您未连接到网络,签入命令未启用.这是故意设置的,这样可以在项目重新联机时方便地查看哪些文件在脱机时被签出. 进入联机状态 这与进入脱机状态基本上相同.若要使解决方案及其项目联机,请在"File"菜单上,单击"Source Control",然后单击"Change Source Control...".显示的对话框与进入脱机状态时相同.选择"Connected"即可使解决方案和项目联机

SQL Anywhere Studio产品中的应用程序

本文介绍在 SQL Anywhere Studio 产品中与 Adaptive Server Anywhere 一起提供的一些数据库应用程序.这些应用程序可帮助您设计.建立和管理数据库. 您安装哪些组件取决于以下几个方面:正使用的操作系统,在安装软件时所做的选择,以及是独立接收了 Adaptive Server Anywhere 产品还是将 Adaptive Server Anywhere 作为其它产品的一部分安装. 例如,如果您收到的 Adaptive Server Anywhere 是其它产

[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)

原文:[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)  [顶]ORACLE PL/SQL编程详解之二:   PL/SQL块结构和组成元素(为山九仞,岂一日之功)     继上四篇:ORACLE PL/SQL编程之八:把触发器说透                ORACLE PL/SQL编程之六:把过程与函数说透(穷追猛打,把根儿都拔起!)                [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不