BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


奥运快报: 
奥运热点:
 

Sybase 移动数据库同步服务器Mobilink Server中的同步事件与同步脚本

首页 » 论坛 » Sybase »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
Jerry_Beijing   帅哥
新手




UID:588806
注册:2007-7-18
最后登录: 2007-09-10
帖子:2
精华:0

可用积分:102 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


1楼 发表于 2007-9-7 14:47 
前面已发表过一篇关于Sybase移动数据库Pocket PC客户端应用开发的文章,本文将讲解有关Sybase移动数据库同步服务器Mobilink Server的相关技术知识。Sybase移动数据库应用开发技术体系架构是一个非常庞大复杂的技术系统,因此很难通过几篇文章全面概括。如果你对Sybase移动数据库应用开发技术感兴趣,并且想系统的学习相关知识,建议你阅读由中国铁道出版社刚刚出版的《C#与Sybase数据库移动应用开发指南》一书。
   版权声明:本文系作者原创,未经作者同意,任何网络站点与媒体请勿转载!谢谢合作。

    在Sybase MobiLink技术架构中,提出了同步事件与同步脚本的概念。这对于控制远程数据库与统一数据库之间的数据同步的逻辑处理极为重要。你可以通过针对相应同步事件编写同步本,并将其存储在统一数据库中来控制同步程。可以使用SQLJava.NET针对所关心的同步事件编写本。同步多个步骤组成。每个步骤都一的事件名标识。可以通过编写与这些事件关联的来控制同步程。我们可以使用SQLJava.NET针对所关心的同步事件编写本。首先有一点必须明确,同步是被存储到统一数据库中的。由MobiLink服务器控制的。你可以通过统一数据库所提供的存储过程,直接将同步脚本存储在统一数据库中。也可以这样说,MobiLink 同步逻辑由存储在统一数据库中的本组成。其存放结构如下图所示:





被称为表本的本不可以与一个事件关联,且可以与程数据库中关联。MobiLink 同步服务器些任务(例如行的下)的方式是按表个进行的。可以将多个本与同一个事件关联,将每个本与不同的用程序表关联。


脚本版本
本是以组的方式进行组的,这些组被称本版本。通过的版本, MobiLink 可以选择使用一组同步理上载流备下载流编写Java同步逻辑在复上与编写任何其它Java代码没什么不同。你需要的是有关MobiLink的知识、部分有关Java的知识以及有关MobiLink Java API的知识。下面我们来看一个Java同步脚本实例的部分方法实现代码。
package com.mydomain.ml.scripts;
import java.sql.*;
...
import ianywhere.ml.script.DBConnectionContext;
import ianywhere.ml.script.InOutInteger;

public class MyScripts {

public MyScripts(DBConnectionContext dbconnectioncontext)


throws SQLException {


Connection connection;


Statement statement;


ResultSet resultset;


context = dbconnectioncontext;


connection = context.getConnection();


}



public void authParams(InOutInteger inoutinteger, String s, String s1,


String s2) {


rid = s1;


protocol = s2;


System.out.println("authParams: protocol =" + s2);


System.out.println("authParams: rid =" + s1);


}



public void authUser(InOutInteger inoutinteger, String s, String s1) {


_tableName = "";


try {


System.out.println("authUser: Authenticating user in UA: " + s);


Map map = getLoginMap();


...


Iterator it = map.values().iterator();


while (it.hasNext()) {


String value = (String) it.next();


trace("value= " + value);


}


inoutinteger.setValue(1000);


System.out.println("User Authenticated Successfully.");


} catch (Exception exception) {


System.out.println(exception.getMessage());


inoutinteger.setValue(4000);


}


}




...



}
... ...
上面Java类中的authParams()方法可以作为authenticate_parameters事件的同步处理脚本,而authUser()则可以作为authenticate_user事件的同步处理脚本。你可以通过下面的语句方便地将上述Java同步脚本添加到统一数据库中。
call ml_add_java_connection_script('mlversion','authenticate_parameters', ' com.mydomain.ml.scripts.authParams);
call ml_add_java_connection_script('mlversion','authenicate_user', ' com.mydomain.ml.scripts.authUser' );
编写.NET同步逻辑在复上与编写任何其它.NET代码没什么不同。你需要的是有关MobiLink事件的知识,并熟悉MobiLink .NET API.NET同步脚本类数可以使用一个没有参数的构造函数或者一个签名的构造函数,签名的构造函数如下所示。
public MyClass(iAnywhere.MobiLink.Script.DBConnectionContext cc)
没有参数的构造函数的声明形式如下所示。public MyClass()
的同步上下文是的,MobiLink同步服务器通过前用户保持同步。.NET同步脚本类中的同步事件方法必须是public的,这些方法中的参数必须与同步事件所传递的参数个数与类型一致。例如下面的方法,用于验证用户是否合法。
public void DoAuthenticate(ref int authStatus,string user,string pwd,string newPwd)
{

//
处理用户验证逻辑。


}
将这些信息添加到MobiLink系统中,简单的方法是使用ml_add_dnet_connection_script存储过程或ml_add_dnet_table_script存储过程。例如如果Adaptive Server Anywhere数据库中运行以下语句,这些语句将指定只要发authenticate_user 级别事件。
Call ml_add_dnet_connection_script( 'mlversion','authenicate_user','MobilinkProject.AuthClass.AuthUser')

小结
    本文主要讲了有关Sybase移动数据库同步服务器——Mobilink Server中的同步脚本的技术知识。由于文章篇幅过大时无法发表帖子,不得不删除大量的内容。因此上面提到的同步脚本的介绍并不完整。




04.JPG (22.85 KB) 2007-9-7 14:47
 

05.JPG (29.84 KB) 2007-9-7 14:47
 

06.JPG (15.3 KB) 2007-9-7 14:47
 

07.JPG (46.3 KB) 2007-9-7 14:47
 

08.JPG (37.19 KB) 2007-9-7 14:47
 

09.JPG (12.68 KB) 2007-9-7 14:47
 

10.JPG (6.39 KB) 2007-9-7 14:47
 

11.JPG (19.45 KB) 2007-9-7 14:47
 

12.JPG (12.38 KB) 2007-9-7 14:47
 


您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
XMDT
圣骑士




UID:546632
注册:2007-4-2
最后登录: 2008-09-05
帖子:94
精华:0

可用积分:584 (稍有积蓄)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


2楼 发表于 2007-9-9 14:39 
借宝地问一下
molink的同步还支持aix操作系统啊



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘
ivan.deng
新手




UID:561853
注册:2007-5-10
最后登录: 2007-09-20
帖子:2
精华:0

可用积分:2 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


3楼 发表于 2007-9-13 00:18 
支持
最新的5.3上TL4,TL5都做过测试



您对本贴的看法:鲜花[0] 臭蛋[0]
空间积分可以换礼品了! | 有奖跟帖:服务器节能,奖50-100元图书 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘

首页 » 论坛 » Sybase »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.102858 second(s), 5 queries , Gzip enabled