首页 / 浏览问题 / 云GIS / 问题详情
如何让发布在iServer上的Data服务定时与其他数据库同步
251EXP 2023年12月26日
请问应该如何对发布在iServer中的数据服务(数据源在sqlserver中)进行以下设置:

让特定数据集跟sqlserver中的其他表联动,定时检查sqlserver中的表有无改动,如果有,根据改动的位置自动更新iServer上发布的数据

比如其他表中将一个点数据的位置改动了,然后我们这边定时检查发现了这个变化,并把发布在iServer上的数据集中对应的点数据的位置改动

另外,如果只是在sqlserver中我们的数据集的位置设置触发器,然后在sqlserver中更新,iServer上发布的数据服务会自动对应并更新吗?

1个回答

您好,

1、将iServer根目录\webapps\iserver\WEB-INF目录下的iserver-system.xml文件中的refreshDatasource节点的false改为true后保存,这个节点表示设置是否开启刷新数据库型数据源,默认为false,即不开启;重启iServer后,再次对数据库型数据源执行更新操作,数据就会自动刷新同步了;

2、 同时可以设置checkDatasourceConnectionInterval节点,检查“数据库型工作空间”是否改变或“数据库型数据源”是否断开的时间间隔,单位为秒,小于或等于0时表示从不检查,默认为30s:

希望能够帮助到您!

765EXP 2023年12月26日
您好,感谢解答。

也就是说,只要设置了iserver自动刷新数据源的话,数据服务的数据和其他sqlserver表的同步本身只要使用sqlserver的触发器就可以实现了吧?
您好,iServer会在启动、服务发布、工作空间有改变等情况下刷新服务,只改数据源,工作空间没有保存iServer是识别不了变化的(对已发布的数据集要素进行增删改不需要保存工作空间)
也就是说,只修改sqlserver中的表,iServer是无法自动更新数据服务的,必须在工作空间里修改并保存后才会刷新。

感谢解答

对,设置refreshDatasource节点为true后,对数据源支持刷新数据集的增加、删除;不支持刷新数据集的修改以及字段的增加、删除和修改。

您可以通过workspaceReload接口对指定的数据源或数据集进行自动刷新,这种方式支持刷新所有与数据集和字段相关的增加、删除和修改,不支持地图的增加、删除和修改。

workspaceReload接口相关介绍您可以在iserver帮助文档搜索“workspaceReload”即可:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/SuperMap_iServer.zip

...