用C#写一个简单的数据同步Windows服务(二)

本文主要介绍已经写好的数据同步Windows服务的部署说明。

一、 部署

至少包括*.exe可执行文件、*.exe.config配置文件、Install.bat安装脚本、Uninstall.bat卸载脚本四个文件。

 

二、 配置

配置文件的配置项说明:

1. 配置文件的appSettings标签下保存本服务常用且必需的配置项。

 

2. log项为日志文件的存放路径(绝对路径,下同),如配置的文件夹不存在,服务启动时将尝试自动创建目录。日志文件按天自动创建,名称为年月日格式,如“2018_06_13.log”。

3. fromdatabase项为源数据库即中间库的连接参数。本项目中为SQL Server 2005数据库,则其连接参数可为以下三种方式之一:

1) 集成的Windows身份验证模式

server=[IP].[Instance];database=[database];integrated security=SSPI

2) Windows身份验证模式

server=[IP].[Instance];database=[database];uid=[uid];pwd=[pwd]

3) SQL Server身份验证模式

data source=[IP].[Instance];initial catalog=[catalog];user id=[user id];pwd=[pwd]

以上连接参数中,IP即目标服务器的IP地址,Instance为数据库实例名,databasecatalog为数据库名,uiduser id为登录的用户名,pwd为密码。

4. todatabase项为目标数据库的连接参数。本例中连接的为SDE的表空间,则只须将Data SourceUser IDPassword项替换为实际的SDE连接参数即可。

5. fromtable项为源数据库的表名。

6. totables项为目标数据库的表名(即要素类FeatureClass名称),多个不同的表名之间以英文半角逗号隔开。

7. interval为同步的时间间隔,即每隔多久执行一次数据同步服务(单位为秒)。如未配置或配置有误,则默认按照每3秒同步一次处理。

三、 同步过程

服务的执行流程即同步过程如下:

1. 服务启动,执行一次同步服务,根据参数连接源数据库和目标数据库。

2. 同步时,先查询源数据库(中间库)指定表中的未同步数据,取得其规划地块编号、征地总成本、造地总成本、售地总成本字段。

3. 如规划地块编号不为空,则遍历目标数据库的目标表,查询是否有相同编号的地块。如存在,则写入征地、造地、售地总成本字段。

4. 所有源数据库的未同步数据同步完成后,将其标记为已同步状态。

5. 关闭源数据库、目标数据库连接,结束同步。

四、 安装与卸载

1. 修改服务安装与卸载文件,将其指向实际的*.exe文件路径(不能包含中文)。

 

 

2. 以管理员身份运行安装脚本Install.bat文件,服务将自动执行注册,注册完成后自动启动。

 

3. 服务正常运行时,可在Windows服务管理器中看到该服务项(名称:CostMonitor)。


4. 不需要该服务时,可以管理员身份运行卸载脚本Uninstall.bat文件执行服务卸载。

 


5. 修改任何配置项时,均须重启服务以使配置生效。

 

五、 日志

同步过程将保存到日志文件中,可通过日志文件查看每次同步的数据条数。

 


猜你喜欢

转载自blog.csdn.net/a_dev/article/details/80676803