更新:2022年6月27日
SuperMap iServer 11i 底层修改逻辑,增加智能指针。11i版本不需要以下操作即可实现

一、使用背景

有这么一个需求,后端也就通过SuperMap iDesktop或数据库更新了新增或更新某个数据地理信息后,服务端也就是SuperMap iServer无法实时查看到更新的数据,原因是SuperMap iServer没有主动监测第三方修改数据的变化(使用SuperMap iServer接口增删改无该问题)

解决方式要么通过重启SuperMap iServer解决,要么通过删除服务重新发布解决,但是这两种版本都比较麻烦,SuperMap iServer 10.1.3版本中可以通过调用SuperMap iServer Rest API的方式进行刷新工作空间。

二、SuperMap iServer环境

2.1 使用SuperMap iServer版本

官网10.1.3及以上已经同步该问题,建议使用官网正式版本。

以下为10.1.2临时包:

  • Linux:supermap_iserver_1012_19721_5526_linux64_deploy.tar.gz
  • Windows:supermap_iserver_1012_19721_5497_win64_deploy.zip

下载地址:

2.2 使用方法

2.2.1 (10.2及之后的版本可以不设置)修改SuperMap iServer配置

10.2及之后的版本不需要在修改次操作,直接调用2.2.2刷新接口即可

修改%SuperMap iServer安装目录%\webapps\iserver\WEB-INF\iserver-system.xml

  • checkDatasourceConnectionInterval 检查“数据库型 工作空间”是否改变或“数据库型数据源”是否断开的时间间隔,单位为秒,默认30s,如果数据体量较大,刷新时间间隔短,刷新耗时较大,多个刷新线程在排队,影响性能。
  • refreshDatasource 设置是否开启刷新数据库型数据源,默认为false

修改成以下配置:

<checkDatasourceConnectionInterval>120</checkDatasourceConnectionInterval>
<refreshDatasource>true</refreshDatasource>

修改完成后,重启SuperMap iServer服务。

2.2.2 数据更新后,通过SuperMap iServer RestAPI代码刷新工作空间内容

1. 通过RestAPI操作必须先申请iServer Token

申请地址:

http://IP:8090/iserver/services/security/tokens

2.刷新工作空间

请求URL:

http://IP:8090/iserver/manager/workspaces/workspacereload.rjson?token=

POST请求

{
"workspaceConnectionInfo": "/opt/zhui.sxwu",
"isForce": true,
"datasets": {
"pggis": ["region_sum"]
}
}

请求体说明:

  • workspaceConnectionInfo 文件型工作空间路径绝对路径。如果是数据库类型工作空间,请查看具体请查看SuperMap iServer 帮助文档,例如oracle工作空间则填写"server=orcl203;username=test;password=test;type=ORACLE;database=;name=testWorkSpace;driver=null"
  • pggis 为需刷新的数据源名称
  • region_sum 为刷新数据集名称,如果有多个数据源刷新为数组

例如:

1.刷新指定工作空间的内容

2.返回结果为true代表刷新成功

2.2.3 验证服务

1.数据服务

workspacereload刷新前:

workspacereload刷新后:

2.地图服务

由于SuperMap iServer默认表述浏览(classic/leaflet等)有缓存,故需要使用iClient客户端进行验证,且iClient客户对接地图出图设置cacheEnabled: false属性。

例如:

workspacereload刷新前:

workspacereload刷新后:

(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)

SuperMap iServer数据动态更新刷新地图与数据服务的更多相关文章

  1. MFC编辑框接收数据动态更新与刷新方法代码示例-如何让编辑框内容实时更新

    MFC编辑框接收数据动态更新与刷新方法代码示例-如何让编辑框内容实时更新 关键代码: //发送数据通知 //from txwtech@163.com LRESULT CCommSampleDlg::O ...

  2. Android零基础入门第44节:ListView数据动态更新

    原文:Android零基础入门第44节:ListView数据动态更新 经过前面几期的学习,关于ListView的一些基本用法大概学的差不多了,但是你可能发现了,所有ListView里面要填充的数据都是 ...

  3. Android零基础入门第67节:RecyclerView数据动态更新

    列表的数据往往会跟随业务逻辑不断刷新,所呈现出来的数据需要动态更新,那么RecyclerView是如何动态更新数据的呢? 之前在学习ListView的时候如果数据改变,需要调用notifyDataSe ...

  4. bootstrap-multiselect.js如何动态更新select里的数据

    在使用jQuery的bootstrap-multiselect插件时可能会遇到一个问题 就是想要动态的去更新select里的数据 比如我们要使一个id=select的选择框实现多选 那么先用ajax获 ...

  5. highChart数据动态更新

    highChart官网上通过ajax加载数据的例子 上面是第一次生成图表的时候使用 我想动态更新,在已经生成的图表上动态更新 chartBS.series[0].setData(sugarListDa ...

  6. 前端/h5/React D3.js实现根据数据动态更新图形/类似进度实时变化效果

    最近接到一个需求,在满足规则下,实现类似这种展示效果,其实就是用图形反映数据(NK,一种干扰值) 运行后,它其实是不断在动的,每格都可能显示灰色或者彩色 这里一共是10个格子,每格代表一个范围边界,说 ...

  7. ngx-echarts 图表数据动态更新

    使用echarts绘制图表时,初次赋值数据正常展示,重新获取数据之后,图表没有跟着动态刷新.解决的办法是: html文件 <div echarts [options]="chartOp ...

  8. Android AlertDialog 动态更新里面的ListView数据

    1:和ListView的数据跟新是基本一样的. 2:Activity代码示例 public class MainActivity extends AppCompatActivity { AlertDi ...

  9. thinkphp框架,数据动态缓存后,或数据已读取出来,想分页怎么办

    //读取缓存后赋值到数组,通过array_slice函数处理,如: $blog = S('blogname'); //赋值 $count = count($blog); //条数统计 $page = ...

  10. Spring Cloud(八):使用Spring Cloud Bus来实现配置动态更新

    使用Spring Cloud Config我们能实现服务配置的集中化管理,在服务启动时从Config Server获取需要的配置属性.但如果在服务运行过程中,我们需要将某个配置属性进行修改,比如将验证 ...

随机推荐

  1. Oracle 存储过程学习总结

    创建/更新存储过程 基础基础用法 创建/修改无参存储过程 CREATE OR REPLACE PROCEDURE procedure_name [IS|AS] --声明全局变量(可选) BEGIN - ...

  2. Jenkins+docker 部署SpringCloud微服务

    部署需要提前准备的环境:安装好Jenkins.docker.Maven.Jdk1.8.Git 说明:由于本例只说明如何部署,所以有关项目其他服务如nacos.mysql.redis.seata等默认已 ...

  3. OpenStack 基本命令

    keystone source /etc/keystone/admin-openrc.sh #登录 openstack user create --password ps1234 --email hq ...

  4. RHCA rh442 003 系统资源 查看硬件 tuned调优

    监控工具 zabbix 监控具体业务,列如数据库.触发式事件(断网 硬盘坏一个) 普罗米修斯 给容器做监控 管理人员,如何知道几千台服务器哪些出了问题,这得需要zabbix 系统硬件资源 cpu [r ...

  5. 12、SpringMVC之拦截器

    12.1.环境搭建 创建名为spring_mvc_interceptor的新module,过程参考9.1节和9.5节 12.1.1.页面请求示例 <a th:href="@{/test ...

  6. 【Kotlin】官网学习笔记

    0.IDEA环境设置: 1.基础语法 BasicSyntax 地址:https://kotlinlang.org/docs/basic-syntax.html 一.方法与变量 可以直接编写main方法 ...

  7. mybatis-plus系统化学习之更新-AR-主键-service

    1.背景 本节要么很简单,要么不重要,知道就可以了. 2.更新 package com.ldp.demo01; import com.baomidou.mybatisplus.core.conditi ...

  8. java零基础到架构师学习线路(附视频教程)

    1.背景 很多人都在问,如何学java,要学那些内容,感觉学起来很痛苦,没得方向,学到什么程度才可以去找工作等, 在这里我以自己的学习经验工作经验和辅导学生的经验给大家梳理了一个学习线路和准备了我自己 ...

  9. Apache DolphinScheduler 社区 3 月月报

    各位热爱 DolphinScheduler 的小伙伴们,DolphinScheduler 社区月报开始更新啦!这里将记录 DolphinScheduler 社区每月的重要更新. 社区为 Dolphin ...

  10. blender-1-基本快捷键

    https://www.bilibili.com/video/BV14u41147YH?p=3&vd_source=e3899eab0ab1c2da60e189bdce9ed666 跟他学的 ...