全局属性配置 |
在 SuperMap iServer 中, 配置系统全局性质的变量信息,可以通过“全局设置”页面进行设置,如服务设置、服务配置信息存储、临时资源存储设置。
访问 SuperMap iServer 服务管理器 WebManager,点击“高级-全局设置”, 进入全局设置页面(http://localhost:8090/iserver/admin-ui/advanced/globalsettings),即可对 iServer 中用到的全局性的变量进行配置:
表 1 服务设置参数说明
服务设置参数 | 说明 |
缓存图片的输出路径 | 缓存图片的输出路径,默认为../webapps/iserver/output。 |
地图图片的发布站点 | 地图图片的发布站点,即访问缓存图片的根目录 URI,默认为 http://{ip}:{port}/iserver/output/。注意,地图图片的发布站点应该为当前 iServer 应用的 IP 和 端口,且后两级资源路径(/iserver/output/)应该与缓存图片的输出路径保持一致。 |
以上服务设置也可以通过系统配置文件来设置,请参考iServer 配置文件说明。
在 SuperMap iServer 中,支持通过设置服务配置信息存储来选择将服务配置信息存储在数据库中或是配置文件中。修改配置后,需重启生效。
注意:
1.由于部分版本的 PostgreSQL 的数据库服务只监听 Localhost 地址,当 iServer 与 PostgreSQL 不在同一机器时,可能会出现 iServer 连接 PostgreSQL 服务失败的情况。您需要配置 PostgreSQL 的配置文件 postgresql.conf,设置:
listen_address='*'
表示允许其他机器通过 IP 或域名访问 PostgreSQL 数据库服务。
2. PostgreSQL 的安全策略默认仅允许本机的用户访问,当 iServer 与 PostgreSQL 不在同一机器时,可能会出现 iServer 使用 PostgreSQL 的系统用户访问不了 PostgreSQL 服务的情况。您需要在 pg_hba.conf 文件中添加访问策略,允许指定网段的主机可以访问,设置内容如下 :
host all all 192.168.112.0/24 md5
host:表示安装 PostgreSQL 的主机
第一个 all:主机上的所有数据库实例
第二个 all:所有用户
192.168.112.0/24 :表示可使用合法的用户信息来访问的网段,您可以将 '192.168.112.0' 替换为您期望的网段。
md5:验证方式
3.若配置使用 Oracle 类型的数据库,需要您手动将相关的 ojdbc 驱动包(建议版本为 ojdbc14-10.2.0.4.0.jar)放到 %SuperMap iServer_HOME%\webapps\iserver\WEB-INF\lib目录下。
4.当设置配置信息存储在数据库中后,建议也将其安全信息的存储也切换到数据库中,以避免其他 iServer 在共享该服务配置时出现安全权限冲突的问题。同时如某一 iServer 需要共享来自于其他 iServer(后称 iServer1) 存储在数据库中的配置信息,除需要将配置信息切换到 iServer1 的配置信息存储数据库,也需要将安全信息存储切换到 iServer1 安全信息存储的数据库。具体安全信息存储设置请参考:安全信息存储
5.当您需要使用同一份存储在数据库中的服务配置信息来启用多个 iServer 节点或通过旧有版本 iServer 的服务配置信息来启用新的 iServer 时,您需要保证新的 iServer 使用的 Token 共享密钥与旧有版本 iServer 的一致。登录服务管理器,访问“安全”>“安全配置”页面,可以查看或者修改当前 Token 共享密钥。您也可以在系统配置文件 iserver-system.xml 中进行查看修改。详情请见:设置Token的共享密钥
此处以 PostgreSQL 为例,说明数据库中存储信息的含义:
1、元数据表
元数据表以键值对的形式管理服务存储表的基本信息。
表名:iserver_v1_metainfos。
字段结构:
字段名 |
数据类型 | 是否必须 |
name |
text |
是 |
value |
text |
是 |
表 2 元数据字段结构及说明
字段(key)说明:
service.table.name:服务存储表的表名。
spaceversion:服务存储表的版本,不同的版本服务存储表的表结构不同。
主键:无。
举例:
name |
value |
service.table.name |
iserver_v1_metainfos |
spaceversion |
1.0 |
表 3 元数据表信息示例
2、服务存储表
服务存储表用来集中管理服务提供者、组件、提供者集合、组件集合、接口等配置信息。
表名:由用户自己定义,默认为iserver_v1_services。
字段结构:
字段名 |
数据类型 |
是否必须 |
name |
varchar |
是 |
setting |
text |
是 |
type |
varchar |
是 |
timestamp |
varchar |
是 |
enabled |
varchar |
是 |
extend |
text |
否 |
表 4 服务存储表字段结构
字段说明:
name:服务提供者、组件、接口、提供者集合、组件集合的名字。
type:服务配置的类型。提供者、提供者集合、组件、组件集合、接口分别对应Provider,ProviderSet,Component,ComponentSet,Interface。
setting: 服务配置的具体内容
timestamp:服务配置信息更新到数据库的时间。
enabled:提供者与组件的可用关系,其余服务配置类型默认为true。
extend:扩展内容
主键:name和type
举例:
name |
type | setting | timestamp | enabled | extend |
map-Jingjin | Provider | { "@type": "com.supermap.server.config.ProviderSetting", "config": { "@type": "com.supermap.services.providers.UGCMapProviderSetting", "cacheDisabled": false, "cacheVersion": "4.0", "extractCacheToFile": true, "ignoreHashcodeWhenUseCache": false, "inflatDisabled": false, "layerCountPerDataType": 0, "mapEditable": false, "mapNames": [], "multiInstance": false, "multiThread": true, "poolSize": 0, "preferedPNGType": "PNG", "queryExpectCount": 1000, "ugcMapSettings": [], "useCompactCache": false, "workspacePath": "E:/iserver/samples/data/City/Jingjin.sxwu" }, "enabled": true, "name": "map-Jingjin", "type": "com.supermap.services.providers.UGCMapProvider" } |
2019-04-10 13:50:23 | true |
表 5 服务存储表信息示例
注意:
前文中所有表名、字段名、表结构、示例均以 PostgreSQL 数据库为基础,Oracle 数据库稍有不同。不同点如下:
1、 Oracle 中所有表名、字段名均为大写,如元数据表表名为 ISERVER_V1_METAINFOS
2、 Oracle 中字段的数据类型与 PostgreSQL 不同。PostgreSQL 采用 varchar 和 text 数据类型对应 Oracle 为 varchar2 和 clob。
3、 Oracle 配置信息无需设置模式名。
SuperMap iServer 支持接入消息中间件,支持多机之间共享服务配置以及服务状态,并可精确控制服务实例个数,实现服务在多机上的动态伸缩。目前支持的消息中间件为 RabbitMQ ,在接入消息中间件前,请确保您已安装 RabbitMQ,若没有,请参见:RabbiMQ 的安装与配置。您可以通过旧版 iServer 服务管理器,在“全局设置”处接入消息中间件,该设置需重启生效。
注意:
1. RabbitMQ Server 默认创建了一个角色为 administrator 的名为 guest 的用户,它拥有 RabbitMQ 的所有权限。出于安全因素的考虑,guest 用户只能通过 localhost 登录使用,如果您需要远程连接 RabbitMQ Server,建议您创建自己的用户,设置密码,授予权限,并为其设置角色,如:管理员。具体配置请参见:RabbitMQ 的安装与配置。
2.设置消息中间件时,请注意界面上的提示信息,如提示“消息中间件连接失败,请检查连接信息是否有异常”,请按照提示检查连接信息。
SuperMap iServer 支持将临时资源存储在本地文件、数据库中,并支持设置存活时间阈值。在配置文件中设置临时文件存储请详见临时资源的存储与生命周期,支持的临时资源请参考临时资源列表。此处将为您介绍如何在 iServer 全局设置页面中设置临时资源存储配置。
SuperMap iServer 标准版、高级版、顶级版提供了服务实例动态化管理,使得存量 GIS 服务达到数千量级以上时,iServer 仍然能够快速启动,服务发布、访问、管理流畅,且资源使用更集约。
开启服务实例动态化管理:默认为关闭状态。开启后,所有 GIS 服务实例处于动态化管理状态,即:服务延迟初始化、空闲时会被主动销毁、受最大服务实例数控制。此时,新发布的服务也会处于动态化管理状态。
服务状态巡检间隔时间:指检查服务实例是否处于空闲状态的间隔时间,单位毫秒,默认值为 30000 毫秒。该值越小,表示巡检越频繁,服务自动销毁的行为越精确,但同时也越占用计算机资源。
空闲服务主动销毁时间:当一个服务实例被检测到处于空闲状态,且空闲时间超过该阈值时,将被自动销毁。该参数单位毫秒,默认值为 300000 毫秒。
最大在线服务实例数:允许同时在线服务实例最大个数,默认值为 2000 个。当同时在线的服务个数超过该阈值,请求访问新的 GIS 服务时,该服务将不予以启动,同时 iServer 将予以报错提示。
如果您需要通过配置文件开启服务实例动态化管理功能,需要在【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\iserver-system.xml 文件中添加 <serviceInstanceManager> 元素配置参数。具体方式详见:服务实例动态化管理参数配置。
注意:服务实例动态化管理设置需保存并重启 iServer 后才能生效。
在开启服务实例动态化管理功能后,除 iServer 的工具服务外,如数据目录服务、机器学习服务、处理自动化服务、Web打印服务等,您也可以单独设置某些服务实例不延迟初始化。即:随着 iServer 的启动,这些服务实例将立即初始化并启动。
您可以在 iServer 服务管理页面选择无需延迟初始化的服务并点击“关闭动态化管理”按钮,取消服务延迟初始化。也可以在【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\iserver-services.xml 文件中,找到无需延迟初始化的服务实例对应的组件进行配置,具体方式详见:开启动态化管理的服务组件配置。
SupeMap iServer 11i(2024) 中提供了文件管理设置功能,用于限制文件管理根目录并支持配置,防止暴露绝对路径和目录遍历的风险,提升系统安全性。您可以在服务管理首页‐>高级‐>全局设置‐>文件管理设置标签页中设置文件管理根目录,即系统可浏览和上传数据的文件根目录。若您不设置,则默认不限制文件浏览范围。
注意:该设置需保存并重启 iServer 后才能生效。
如果您需要通过配置文件设置文件管理根目录,需要对【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\iserver-system.xml 文件中 <fileManagerWorkDir> 参数进行配置,具体方式及注意事项详见:文件管理根目录配置。