更新:2022年6月27日
SuperMap iServer 11i 底層修改邏輯,增加智能指針。11i版本不需要以下操作即可實(shí)現(xiàn)
一、使用背景
有這么一個(gè)需求,后端也就通過SuperMap iDesktop或數(shù)據(jù)庫更新了新增或更新某個(gè)數(shù)據(jù)地理信息后,服務(wù)端也就是SuperMap iServer無法實(shí)時(shí)查看到更新的數(shù)據(jù),原因是SuperMap iServer沒有主動(dòng)監(jiān)測第三方修改數(shù)據(jù)的變化(使用SuperMap iServer接口增刪改無該問題)
解決方式要么通過重啟SuperMap iServer解決,要么通過刪除服務(wù)重新發(fā)布解決,但是這兩種版本都比較麻煩,SuperMap iServer 10.1.3版本中可以通過調(diào)用SuperMap iServer Rest API的方式進(jìn)行刷新工作空間。
二、SuperMap iServer環(huán)境
2.1 使用SuperMap iServer版本
官網(wǎng)10.1.3及以上已經(jīng)同步該問題,建議使用官網(wǎng)正式版本。
以下為10.1.2臨時(shí)包:
- Linux:supermap_iserver_1012_19721_5526_linux64_deploy.tar.gz
- Windows:supermap_iserver_1012_19721_5497_win64_deploy.zip
下載地址:
- 鏈接:https://pan.baidu.com/s/1OhI72ebiCgRB_V_Y4QrUpg
- 提取碼:kpmo
2.2 使用方法
2.2.1 (10.2及之后的版本可以不設(shè)置)修改SuperMap iServer配置
10.2及之后的版本不需要在修改次操作,直接調(diào)用2.2.2刷新接口即可
修改%SuperMap iServer安裝目錄%\webapps\iserver\WEB-INF\iserver-system.xml
- checkDatasourceConnectionInterval 檢查“數(shù)據(jù)庫型 工作空間”是否改變或“數(shù)據(jù)庫型數(shù)據(jù)源”是否斷開的時(shí)間間隔,單位為秒,默認(rèn)30s,如果數(shù)據(jù)體量較大,刷新時(shí)間間隔短,刷新耗時(shí)較大,多個(gè)刷新線程在排隊(duì),影響性能。
- refreshDatasource 設(shè)置是否開啟刷新數(shù)據(jù)庫型數(shù)據(jù)源,默認(rèn)為false
修改成以下配置:
<checkDatasourceConnectionInterval>120</checkDatasourceConnectionInterval>
<refreshDatasource>true</refreshDatasource>
==修改完成后,重啟SuperMap iServer服務(wù)。==
2.2.2 數(shù)據(jù)更新后,通過SuperMap iServer RestAPI代碼刷新工作空間內(nèi)容
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 文件型工作空間路徑絕對路徑。如果是數(shù)據(jù)庫類型工作空間,請查看具體請查看SuperMap iServer 幫助文檔,例如oracle工作空間則填寫"server=orcl203;username=test;password=test;type=ORACLE;database=;name=testWorkSpace;driver=null"
- pggis 為需刷新的數(shù)據(jù)源名稱
- region_sum 為刷新數(shù)據(jù)集名稱,如果有多個(gè)數(shù)據(jù)源刷新為數(shù)組
例如:
1.刷新指定工作空間的內(nèi)容

2.返回結(jié)果為true代表刷新成功

2.2.3 驗(yàn)證服務(wù)
1.數(shù)據(jù)服務(wù)
workspacereload刷新前:

workspacereload刷新后:

2.地圖服務(wù)
由于SuperMap iServer默認(rèn)表述瀏覽(classic/leaflet等)有緩存,故需要使用iClient客戶端進(jìn)行驗(yàn)證,且iClient客戶對接地圖出圖設(shè)置==cacheEnabled: false==屬性。
例如:
workspacereload刷新前:

workspacereload刷新后:

(轉(zhuǎn)發(fā)請注明出處:http://m.itdecent.cn/u/829cbce64381 如發(fā)現(xiàn)有錯(cuò),請留言,謝謝)