2007-5-28 19:53
petutor
IBM DB2 Everyplace 同步服务器的三种典型管理方式
本文将描述 DB2 Everyplace 同步服务器提供给用户的三种典型管理方式,同时与大家分享作者在项目实践中综合应用这三种方式的经验。
简介
本文将描述 DB2 Everyplace 同步服务器提供给用户的三种典型管理方式,同时与大家分享作者在项目实践中综合应用这三种方式的经验。
本文需要您事先安装下列软件与组件:
WINDOWS 2K SP3 (本文的测试环境为英文版)
DB2 Universal Database Enterprise Edition V7.2 + FIXPACK9
WebSphere Application Server Advanced Enterprise Edition V4.0.2
DB2 Everyplace Enterprise Edition V8.1+FIXPACK2
上述软件与组件同时也是本文的测试环境,其过程将在下文中描述。
本文旨在帮助读者:
了解 DB2 Everyplace 同步服务器的基本工作原理
通过使用移动设备管理中心配置 DB2 Everyplace 同步服务器
通过使用命令行工具执行 DB2 Everyplace 同步服务器的管理任务
通过 XML 脚本编制工具实现对 DB2 Everyplace 同步服务器的自动化管理
2007-5-28 19:53
petutor
测试环境的安装配置
下面是本文的测试环境配置概述:(指定某台服务器作为同步服务器)
安装 WINDOWS 2K SP3
安装 DB2 Universal Database Enterprise Edition V7.2 + FIXPACK9
安装 WebSphere Application Server Advanced Enterprise Edition V4.0.2
安装 DB2 Everyplace Enterprise Edition V8.1+FIXPACK2
注意点:
在步骤 2 中明确只能安装 DB2 UDB V7.2, 而不能是 DB2 UDB V8.1。DB2 Everyplace Enterprise Edition V8.1 对 DB2 UDB V8.1是不支持的。
在步骤3中可以将 WebSphere Application Server Advanced Edition 替换为 WebSphere Application Server Advanced Single Edition 或者是 WebSphere Application Server Enterprise Edition。同时,据产品文档描述,DB2 Everyplace Enterprise Edition V8.1 中对 MIDP 设备的支持中还可以采用 TOMCAT 作为WebSphere Application Server 的替代者,作者没有对这点进行测试,感兴趣的读者请查阅相关产品文档。
在步骤 4 结束后,配置结束以后(配置具体过程可参看参考资料1)。可通过访问 [url]http://ServerIP:PortNo/db2e/db2erdb[/url] 和 [url]http://ServerIP:PortNo/db2e/db2eFilter[/url] 来验证安装配置是否成功。
2007-5-28 19:54
petutor
DB2 Everyplace 同步服务器的基本工作原理
简述:
DB2 Everyplace 是 IBM 普及计算技术解决方案的重要组成部分, 通过 DB2 Everyplace的支持, 一些移动性大的专业人员(如销售人员, 审计员, 技术支持人员, 医生)就能够在办公室以外的地方获取他们所需要的重要数据。
DB2 Everyplace 解决方案具有下列关键功能部件和组件:
DB2 Everyplace 同步服务器,本文将要重点讨论的对象
DB2 Everyplace 移动数据库,此数据库驻留在各种移动设备上,将在后续文章中详细讨论
DB2 Everyplace 同步客户端,作为同步引擎支持各种移动设备并与移动数据库配合工作
基本工作原理:
DB2 Everyplace 同步服务器是一个客户机/服务器程序, 它管理源数据库和目标数据库之间的双向数据同步化。作为同步服务器,它充当了移动设备上的同步客户机软件与源服务器上的 "DB2 UDB" 或 JDBC 数据库之间的桥梁。
在实际应用中,我们采用 DB2 Everyplace 同步服务器和 DB2 Everyplace 同步客户端配合, 实现在 DB2 Everyplace 移动设备与企业数据源之间对数据和应用程序进行同步。
同步过程可以是单向的,也可以是双向的,对于典型的双向同步过程,主要分两个步骤: 1)移动用户提交他们对源数据的本地副本所作的更改。
2)用户接受自从上次同步以来对驻留在企业服务器上的源数据所作的所有修改。
这两个步骤过程合称为同步会话
下图显示了移动客户端,同步服务器和数据源之间的相互关系:
2007-5-28 19:54
petutor
使用移动设备管理中心管理 DB2 Everyplace 同步服务器
"移动设备管理中心" (Mobile Device Administration Center, MDAC)是用于管理同步服务器各个功能模块的强大图形工具, 它允许用户定义用户组要访问的数据和文件的子集。 每当用户请求数据同步化时, 同步服务器就会访问此管理信息。
如何启动移动设备管理中心
如下图所示,用户可以通过选择 Start ->Programs ->IBM DB2 Everyplace ->Start Mobile Device Administration Center 来启动移动设备管理中心
2007-5-28 19:55
petutor
在移动设备管理中,该产品提供了各种同步对象,用户可以通过对这些同步对象的配置来完成对同步服务器的配置。
同步对象包含了同步过程中各方面的信息,在 DB2 Everyplace Enterprise Edition V8.1 中,产品提供了六种类型的同步对象:
组:具有类似移动数据同步化需求的用户组, 对每个组定义同步特征。
用户:一个用户, 使用 DB2 Everyplace 同步服务器来对源与目标之间的数据执行同步。为一个组指定一个用户,以提供对该组的预定集中定义的预定的访问。
服务器:在主机上运行并且侦听端口的 DB2 Everyplace 同步服务器的实例,它在目标与镜像数据库之间同步数据,同时也可以配置服务器以在镜像数据库与源数据库之间复制数据。
预订: 一个规范,说明要将源数据库或服务器中的哪些信息复制至目标数据库。
预订集:预订集合,要为组成员提供对预订中定义的数据和文件的访问,应该将预订收集到一起,放在称为预订集的容器中,然后将此容器对象指定给组。
在同步期间,如果客户机未能成功地对预订进行同步,它就跳过同一预订集中的其余预订,并继续处理下一个预订集。
适配器: 适配器用来与同步服务器同步及通信,其包括了一组适配器,以便对文件,DB2的关系数据,JDBC 的关系数据,远程查询和存储过程功能进行同步。
日志:在实现移动数据同步化之后,可以使用写入日志中的消息来监视所有同步问题。
下图是移动设备控制中心的主控制界面:
2007-5-28 19:55
petutor
控制数据库:
为了便于读者了解 DB2 Everyplace 同步服务器的实际控制过程,这里简单描述一下 DB2 Everyplace 同步服务器的控制中枢 -- 控制数据库。
当我们创建,编辑,删除同步对象时,移动设备管理中心会将管理信息的所有变化记录在同步服务器所在系统上的控制数据库中。此数据库的名称是 DSYCTLDB, 这是一个保留名称, 我们在使用中不能重命名该数据库或是对系统中的任何其它数据库使用名称 DSYCTLDB。
通过下图,读者可以对该控制数据库有些直观的认识:
2007-5-28 19:55
petutor
该控制数据库是在安装时创建,它协助同步服务器认证用户,并获取预订信息以确定要对同步请求复制的内容。读者如果想进一步了解控制数据库的相关消息,可查阅相关产品文档。
我们可以通过移动设备管理中心来创建,编辑,删除同步对象,在项目实践中我们最需要精心设计的是对预订的配置,而我们采用自定义的适配器的机会较少,这里就不详细讲述。 这里主要详细描述对最常用的 JDBC 预订的配置过程。
使用 "创建JDBC预订" 笔记本来创建 JDBC 表预订
您所创建的每个表预订可以引用一个或是多个表
要创建 JDBC 表预订:
1. 打开"创建 JDBC 预订"笔记本
2. 标识预订
3. 指定加密级别
4. 指定源数据库驱动程序和 URL
5. 指定镜像数据库驱动程序和 URL
6. 为预订指定源表,目标表和访问特权
7. 指定如何过滤源表中的数据
8. 将预订集指定给 JDBC 预订
9. 单击确定
标识 JDBC 预订:
2007-5-28 19:56
petutor
在 "标识" 页上, 填写下列字段:
名称:为预订输入一个 1 至 18 个字符的描述性的唯一名称。
描述:可选: 输入最多 128 个字符的文本描述此预订。
同时,我们还可以选择数据传输时的加密级别,有三种选择:无,限制 (56 位数据加密标准),强(128 位数据加密标准),具体情况可进一步查阅相关文档。
指定源数据库驱动程序和 URL
必须指定源和镜像数据库
在该页中, 需要指定下列信息:
数据库 URL
驱动程序
用户标识
密码
验证密码
在全部结束之后,请单击 测试连接来验证源数据库设置
2007-5-28 19:56
petutor
采用相同的方法,我们需要设置好镜像数据库的相关参数。
为预订指定源表,目标表和特权
我们必须对每个 JDBC 预订至少定义一个表。如果为预订定义了多个表,则这些表将按照我们创建预订时添加的次序来进行同步。 "定义复制预订" 窗口上的表列表显示了此次序。
这里有个限制:一定不能在两个不同的预订中指定相同的源表和目标表。如果要创建两个复制同一个源表的预订,请使用不同的目标表。
要将表添加至预订:
1. 在 "JDBC 预订" 笔记本的 "标识" 页上,单击定义预订,"定义复制预订" 窗口打开。
2. 在"定义复制预订" 窗口中,单击添加. "添加表"窗口打开。
3. 在"添加表"窗口中,使用表列表来选择要添加到此预订中的复制源。
4. 在目标模式字段中,指定表在移动设备将使用的模式。如果不指定模式,则在缺省情况下系统将使用源表的模式。
5. 在目标表字段中,指定表在移动设备上的名称。如果不指定名称,在缺省情况下系统将使用源表名。
6. 可选,选择对设备加密复选框。这将对移动设备数据库启用加密 (只有在 WinCE,Win32 和 PalmOS 客户机平台上加密才可用)
7. 可选,选择使用在所选的 DB2 源中定义的约束复选框。 这使所选的 DB2 源表中的约束可以用于目标表。
8. 可选,选择使用在所选的 DB2 源中定义的索引复选框。这使所选的 DB2 源表中的索引可以用于目标表。
9. 单击添加将复制源添加到预订中,单击关闭以关闭 "添加表" 窗口。
2007-5-28 19:57
petutor
上图为添加表的应用窗口。
在实际的项目实践中, 我们可能还需要使用 过滤数据的高级功能,这个配置较为复杂, 将在其它文章中专门讲述。
对同步请求进行批处理
从改进性能的角度考虑,同步服务器不会立即把从同步请求接受到的更改复制至源,反之亦然。复制调用由下列一项控制:
按固定的时间周期,对同步请求进行批处理
下图为固定的时间周期的配置界面:
2007-5-28 19:57
petutor
要对同步请求进行批处理:
1. 确保 "创建 JDBC 预订" 笔记本的 "标识" 页上出现源和镜像数据库。 然后单击定义预订. "定义复制预订" 窗口打开。
2. 单击定时. "预订定时" 窗口打开。
3. 在批处理窗口字段中,指定想要同步服务器在复制周期之间等待的秒数。 缺省设置是3600秒,在程序调试的过程当中建议使用 120 秒。
4. 单击确定。
对同一镜像数据库定义的所有预订共享批处理参数的相同值。所作的任何修改都会直接影响到对镜像数据库定义的所有预订。
将预订配置为在我们发出特殊命令的时候按需执行复制
按需复制功能可以使用户随时请求复制,这是将复制设置为根据常规时间间隔自动运行的备用方法。
当同步服务器 Servlet 启动时,初始复制照常发生。可以在命令行环境下使用 dsyreplicate命令请求后续复制。操作步骤如下:
1.打开 DB2 命令窗口
2.切换至 DB2 Everyplace 安装目录下的 Server\\Bin 子目录
3.发出 dsyreplicate 命令请求复制,dsyreplicate [-timeout timeout] mirror_database_name 其中,timeout 指定 dsyreplicate 等待同步服务器停止所有同步活动的最大时间量(以秒计算)。它指定的并不是复制的时间限制。复制本身没有时间限制,即数据越多,执行复制的时间越长。
4.关闭 DB2 命令窗口
将预订集指定给 JDBC 预订
在定义预订之后,必须指定哪些预订集使用它。在将预订与预订集相关联的时候,可将该预订集指定给组,以供组成员访问在预订集引用的预订中定义的数据。
一个预订可供数目不受限制的预订集使用。
要指定使用此预订的预订集:
1. 转至 "创建 JDBC 预订" 笔记本的" 预订集" 页
2. 在可用的预订集列表中,选择想要让预订与之相关联的预订集。如果没有任何预订集出现在可用的预订集列表中,则单击创建来创建预订集。
移动设备控制中心(MDAC)为用户提供了一个强大的图形工具来配置与同步过程相关的各种信息,它将在后台直接操作我们的控制数据库DSYCTLDB,所以它能够提供的功能集在三种管理方式中也是最多的。
2007-5-28 19:57
petutor
使用命令行工具执行DB2 Everyplace同步服务器管理任务
这种管理方式是通过在命令行方式下调用一些管理脚本来执行DB2 Everyplace 同步服务器管理任务。目前该产品所提供的管理脚本还无法涵盖所有的管理任务,但是在执行某些特殊管理任务的时候,这些管理脚本起到了不可替代的作用。
所有管理脚本文件都存放在 DB2 Everyplace 安装目录下的 Server\\Bin 子目录,下面是其中一部分最常用的命令,感兴趣的读者可以通过脚本自带的帮助信息了解每个管理脚本的执行方式。
dsyctldb.bat 重建同步服务器控制数据库并恢复默认值
如本文前面所述,控制数据库 DSYCTLDB 是 DB2 Everyplace 同步服务器的控制中枢。在实际应用中,我们有时可能需要重建控制数据库或是恢复其默认值。 该脚本通过执行一预定义 SQL 配置文件,将在同步服务器所在系统中的 DB2 数据库实例中重新创建控制数据库。
dsyversion.bat 返回当前同步服务器的版本号
在作者的项目实践中,曾经碰到过由于 DB2 Everyplace 同步服务器和 DB2 Everyplace 同步客户端的版本号不一致从而导致同步失败的情形。该脚本可以方便的帮助我们得到我们所采用的 DB2 Everyplace 同步服务器的版本号。
dsysync.bat 启动同步服务器
在实际项目实践中,用户通常需要手动的重起同步服务器。
比如,我们在移动设备管理中心中需要对一个预订进行修改或是新建一个预订时,需要先将当前服务器停下来。在修改完毕之后,我们即常通过执行该管理脚本来重起同步服务器。
dsysyncstop.bat 停止同步服务器
当我们需要停止同步服务器的时候,请不要直接将后台窗口关掉,这可能会导致意想不到的错误。请通过执行该命令脚本来停止同步服务器。
dsyadminxml.bat 实现同步服务器控制数据库信息和 XML 脚本文件的互交换
该命令脚本提供了一个强大的功能。借助 "XML脚本编制" 工具,我们可以将 DB2 Everyplace 同步服务器的所有控制信息从控制数据库导出到 XML 脚本文件中,并为进行批量处理或自动化而对其进行编辑。 编辑好后,可以将最新的XML 脚本文件重新导入控制数据库,从而实现控制信息的批量更新。这种方式将作为 DB2 Everyplace 同步服务器的第三种重要的管理方式在下个部分中详细介绍。
其它命令请至 Server\\Bin 子目录下调用。
2007-5-28 19:57
petutor
通过 XML 脚本编制工具管理 DB2 Everyplace 同步服务器
在"移动设备管理中心"中,通过一组同步对象来管理同步过程。因此当我们创建,编辑和删除同步对象时,"移动设备管理中心" 会将这些管理信息记录在控制数据库(DSYCTLDB)中。
通过采用 "XML 脚本编制工具",我们可以将控制信息从控制数据库导出到 XML 脚本文件中,并为进行批量处理或自动化而对其进行编辑。例如,在"移动设备管理中心"中,只能每次将一个用户添加到组。如果有大量用户,则采用"移动设备管理中心"执行该任务工作量会非常大。借助"XML 脚本编制工具",可以一次将许多用户添加到组中。我们还可以使用该工具方便地将数据从一台服务器复制或移动到若干台其它服务器中。
下面是管理员或是应用程序开发员在使用 XML 脚本文件时所要执行的典型步骤:
1.通过使用"XML 脚本编制工具" 命令脚本 dsyadminxml.bat,将信息从控制数据库(DSYCTLDB)中导出到 XML 脚本文件中。例如,从 Server/Bin 目录中,输入:
dsyadminxml.bat -x dsyctldbsetting.xml
其中,dsyctldbsetting.xml 是 XML 脚本文件的名称,-x 是命令行参数,它将告诉 XML脚本编制工具创建 XML 脚本文件并将来自控制数据库的信息导入其中。
2.编辑 XML 脚本文件以操纵您选择的同步对象。
3.创建使用经过编辑的 XML 脚本文件的应用程序(这里"XML 脚本编制工具"提供了一组工具 API 来创建应用程序)或是将其导入控制数据库(DSYCTLDB)以实现其批量更新。
下图是从同步服务器控制数据库中导出的 XML 控制文件(dsyctldbsetting.xml)的一部分:可以让读者对 XML 脚本文件有个直观的认识:
2007-5-28 19:58
petutor
借助 "XML 脚本编制" 工具,可以将控制信息从控制数据库导出到 XML 管理文件中,并为进行批量处理或自动化而对其进行编辑。
下图提供了一个例子,我们可以通过导入该脚本文件实现一次性导入三个用户和一个服务器的定义:
2007-5-28 19:58
petutor
使用 XML 脚本编制工具参数:
-x 将数据从控制数据库导出到 XML 文件
-d 将 XML 脚本文件中的 XML 应用于控制数据库
-v 验证 XML 脚本文件中的 XML
-? 显示帮助
命令行使用范例:
dsyadminxml -x dsyctldbsetting.xml 将控制数据库中的控制信息导出。
dsyadminxml -d newdsyctldbsetting.xml 将新的控制信息导入控制数据库。
"XML 脚本编制工具"应用程序编程接口:
同时,该产品还提供了一组 JAVA 应用程序接口以实现脚本编制的自动化,这个接口将帮助我们能够从远程服务器上通过调用 Servlet 或是其他方式实现对控制数据库(DSYCTLDB)的远程管理控制。
下面是产品文档中使用的一个范例,作者在项目实践中也参考了该例,所以它具有较大的参考价值:
在运行该范例时,请将 Server/ Lib 目录下的dsysync.jar 以外部 JAR 的方式加入到项目的构建路径中。
范例代码如下:
package com.ibm.mobileservices.xmlscripting.sample;
/**
* Title: XML Scripting tool Sample Application for DB2 Everyplace
Sync Server
* Description: Example of using the XML tool API to write custom
administration utilities.
* Copyright: Copyright (c) 2002
* Company: IBM
*/
import java.io.FileWriter;
import java.io.FileReader;
import com.ibm.mobileservices.xmlscripting.XMLTool;
import com.ibm.mobileservices.xmlscripting.XMLToolFactory;
/**
* Main class for command line invocation of the XML Scripting sample tool.
*/
public class RunXML {
private RunXML(){}
/**
* Method used when running as an application from the command line.
* @param String[] an array of command line parameters
* @return void
Command line arguments: -x|-d filename
-x create XML file from control database.
* -d apply XML file to control database.
* -v validate XML file with its DTD.
* filename XML file name to process.
Example: java com.ibm.mobileservices.xmlscripting.RunXML -x
"c:\\mydb.xml"
* Example: java com.ibm.mobileservices.xmlscripting.RunXML -d
"c:\\mycommands.xml"
*/
public static void main(String args[]){
String filename = null;
String toOrFromXML = null;
int xmlType = XMLTool.ADD;
String xml = null;
if (args != null && (args.length > 1 && args.length < 3) ){
toOrFromXML = args[0]; //create xml or db from xml?
"-x" means create xml,
"-d" means populate control db from xml.
filename = args[1]; //xml file name.
}
//check if filename is passed in otherwise display help.
if (filename == null ||
filename.equals("") ||
filename.indexOf("?") > -1 ||
toOrFromXML.indexOf("?") > -1){
System.out.println("Command line arguments: -x|-d filename\\n"+
" -x create XML file from control database.\\n"+
" -d apply XML file to control database.\\n"+
" -v validate XML file with its DTD.\\n"+
" filename XML file name to process."+
" Example: java com.ibm.mobileservices.xmlscripting.sample.RunXML
-x \\"c:\\\\mydb.xml\\"\\n"+
" Example: java com.ibm.mobileservices.xmlscripting.sample.RunXML
-d \\"c:\\\\mycommands.xml\\"\\n\\n");
return;
}
if (toOrFromXML.equalsIgnoreCase("-x") || toOrFromXML.equalsIgnoreCase
("/x")){ //generate xml file:
System.out.println("Generating xml file: " + filename);
try{
//backUpOldFile(filename);
FileWriter fileWriter = null;
try{
//get ready to write to the file:
fileWriter = new FileWriter(filename);
//create an instance of XMLTool. Each instance opens separate
//connections to the control database. It is strongly recommended
//that you use one instance to operate from single thread at a time.
//If you use the same instance from multiple threads, the threads
//will typically be synchronized on that database connection. If
//that causes a bottleneck,create multiple instances of the xml
//needed.The only case tool to use from multiple threads. Usually
//that should not be it may become handy is the creation and
//removalof users from the system.
//XMLTool xmlTool = XMLToolFactory.createXMLTool();
//set progress listener
// (ProgressListener provides hooks to intercept events).
//Default progress listener outputs messages to the System.out.
//A custom progress listener is typically used to re-throw an
//exception to abort processing of xml tags if the programmar
//thinks that thinks that is necessary.
xmlTool.setProgressListener
(XMLToolFactory.createDefaultProgressListener());
//There are different versions of generateXML, this is one of them:
xmlTool.generateXML(fileWriter,xmlType);
}
finally{
if (fileWriter!=null) fileWriter.close();
}
System.out.println("Done generating xml file: " + filename);
}catch(Exception ex){
System.out.println("Failed generating xml file.");
System.out.println(ex.getMessage());
}
}
else if (toOrFromXML.equalsIgnoreCase("-d") ||
toOrFromXML.equalsIgnoreCase("/d"))
{ //apply xml to database:
System.out.println("Applying xml file: " + filename);
try{
FileReader aReader = null;
try{
//get ready to read the file:
aReader = new FileReader(filename);
//create an instance of XML Tool:
XMLTool xmlTool = XMLToolFactory.createXMLTool();
//set progress listener:
xmlTool.setProgressListener
(XMLToolFactory.createDefaultProgressListener());
//apply the xml commands:
xmlTool.applyXML(aReader);
}
finally{
if (aReader!=null) aReader.close();
}
System.out.println("Done applying xml.");
}
catch(Exception ex){
System.out.println("Failed applying xml.");
System.out.println(ex.getMessage());
}
}
else if (toOrFromXML.equalsIgnoreCase("-v") ||
toOrFromXML.equalsIgnoreCase("/v"))
{ //validate xml System.out.println("Validating xml file: " + filename);
try{
FileReader aReader = null;
try{
aReader = new FileReader(filename);
XMLTool xmlTool = XMLToolFactory.createXMLTool();
xmlTool.setProgressListener
(XMLToolFactory.createDefaultProgressListener());
xmlTool.validateXML(aReader);
}
finally{
if (aReader!=null) aReader.close();
}
System.out.println("Done validating xml.");
}
catch(Exception ex){
System.out.println("Failed validating xml.");
System.out.println(ex.getMessage());
"XML 脚本编制工具" 使用限制:
读者在使用 XML 脚本编制工具的过程中,需要注意目前该工具具有以下两个限制:
不支持 Data Propagator 预订,但是对最为常用的 JDBC 预订是支持的。
不能编辑同步对象。在"移动设备控制中心"中,可以创建,编辑或删除同步对象。 通过" XML 脚本编制工具",只能对同步对象进行创建或是删除。
2007-5-28 19:59
petutor
小结
作者在项目实践中,综合采用了上述三种管理方式对 DB2 Everyplace 同步服务器进行管理。因此,在实际使用中应该配合使用上述三种方式以使其发挥最大的效用。
移动设备管理中心(MDAC):功能强大,可以对任何同步对象进行创建,编辑和删除操作,界面直观,操作方便。
命令行工具:在执行一些常见管理任务时效率较高, 比如重建控制数据库,重起同步服务器,导出导入 XML 脚本文件等等。
XML 脚本编制工具:XML 脚本文件的导出功能适合控制数据库的备份以及在多台同步服务器上进行信息交换;XML 文件的导入功能适合批量增加,删除同步对象;XML 文件的 JAVA 应用程序编程接口适合通过编程的方式实现远程控制 DB2 Everyplace 同步服务器,我们在项目中就通过 DB2 Everyplace 提供的应用程序编程接口实现了通过访问相关 Servlet 从远端计算机对 DB2 Everyplace 同步服务器进行自动化管理,细节在这里就不赘述。
2007-5-28 19:59
petutor
结束语
我们使用了产品提供的三种方式对 DB2 Everyplace 同步服务器进行有效管理,三种方式各有所长,实际应用中应当选择使用。
参考资料
IBM DB2 Everyplace V8.1 安装与用户指南 中文版
IBM DB2 Everyplace V8.1 同步服务器管理指南 中文版
关于作者
陈隽伟,IBM 中国软件实验室上海全球化认证实验室的一员,目前专注于 WebSphere Everyplace 系列软件的相关开发,你可以通过 [email]chenjunw@cn.ibm.com[/email]和他联系。
2007-10-18 08:47
ppstone
恩不错,楼主辛苦了
2007-10-18 20:39
jianghuilei
ding
2007-10-24 23:47
ninetailsfox
up
页:
[1]
2

Powered by ITPUB论坛