在 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 中,支持通过设置服务配置信息存储来选择将服务配置信息存储在数据库中或是配置文件中。修改配置后,需重启生效。

服务配置信息存储在配置文件中

  • 服务配置存储类型:若需要将服务配置信息存储在配置文件中,选择服务配置存储类型为 XML,详情请参见  iServer 配置文件说明

服务配置信息存储在数据库中

  • 服务配置存储类型:【必选】如预期将服务配置信息存储在本地,则选择 XML;如需要将配置信息存储在数据库中,选择服务配置存储类型为对应的数据库,当前支持将配置信息存储在 Oracle、PostgreSQL、Kingbase、GaussDB、Vastbase 数据库中,其中PostgreSQL、Kingbase、GaussDB、Vastbase 四者配置方法相同。PostgreSQL 配置步骤请参考 PostgreSQL 安装与配置,Oracle 安装与配置步骤详见 Oracle 安装与配置
  • 服务地址:【当选择将配置信息存储在数据库中时必填】数据库的服务地址,PostgreSQL、Kingbase、GaussDB、Vastbase数据库服务地址如 '192.168.17.217:5432/SuperMap',Oracle 数据库服务地址如 '192.168.17.217:1521:SuperMap。
  • 用户名:【当选择将配置信息存储在数据库中时必填】该数据库所有者的用户名。
  • 密码:【当选择将配置信息存储在数据库中时必填】该数据库所有者的密码。
  • 模式名:【当选择将配置信息存储在PostgreSQL数据库中时选填】 存储服务配置信息表所在的模式,默认存储于public模式下。
  • 服务存储表名:存储服务配置信息的表的表名,默认为 iserver_V1_SERVICES。
  • 导入服务配置:当您已选择一种存储方式后,可以将此之前已存储于其他 XML 文件、数据库中的配置信息导入至您当前选择的存储方式。导入配置信息时需要填入的参数如下:
    • 存储类型:【必选】您预期导入的存储类型,支持导入的存储类型包括 XML、Oracle、PostgreSQL、Kingbase、GaussDB、Vastbase。
    • 服务地址:【当选择导入存储在数据库中的配置信息时必填】预期导入的数据库的服务地址,PostgreSQL、Kingbase、GaussDB、Vastbase 数据库服务地址如 '192.168.17.217:5432/SuperMap',Oracle 数据库服务地址如 '192.168.17.217:1521:SuperMap'。
    • 用户名:【当选择导入存储在数据库中的配置信息时必填】预期导入的数据库所有者的用户名。
    • 密码:【当选择导入存储在数据库中的配置信息时必填】预期导入的数据库所有者的密码。
    • 模式名:【当选择将配置信息存储在PostgreSQL数据库中时选填】 存储服务配置信息表所在的模式,默认存储于public模式下。
    • 服务存储表表名:存储服务配置信息的表的表名,默认为 iserver_V1_SERVICES。
    • 配置类型:【当选择导入存储在数据库中的配置信息时必填】预期导入的配置信息的类型,包括接口配置、提供者配置、提供者集合配置、组件配置、组件集合配置。

注意:

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 服务管理器,在“全局设置”处接入消息中间件,该设置需重启生效。

  • 支持的中间件类型:【必选】支持的中间件类型为 RabbitMQ 。
  • 服务地址:【必填】设置可用的 RabbitMQ Server 消息服务器地址,默认为 localhost:5672 。如果您的 RabbitMQ Server 与 GIS 服务器分别部署在了不同的服务器中,此处需要填写具体的 IP 地址或域名,如 :192.168.17.2:5672 。
  • 用户名:【必填】预期可远程访问RabbitMQ Server 消息服务器所有者的用户名。
  • 密码:【必填】预期可远程访问RabbitMQ Server 消息服务器所有者的密码。

注意:

1. RabbitMQ Server 默认创建了一个角色为 administrator 的名为 guest 的用户,它拥有 RabbitMQ 的所有权限。出于安全因素的考虑,guest 用户只能通过 localhost 登录使用,如果您需要远程连接 RabbitMQ Server,建议您创建自己的用户,设置密码,授予权限,并为其设置角色,如:管理员。具体配置请参见:RabbitMQ 的安装与配置。

2.设置消息中间件时,请注意界面上的提示信息,如提示“消息中间件连接失败,请检查连接信息是否有异常”,请按照提示检查连接信息。

临时资源存储设置

SuperMap iServer 支持将临时资源存储在本地文件、数据库中,并支持设置存活时间阈值。在配置文件中设置临时文件存储请详见临时资源的存储与生命周期,支持的临时资源请参考临时资源列表。此处将为您介绍如何在 iServer 全局设置页面中设置临时资源存储配置。

  • 支持的存储类型:【必选】支持的存储类型包括 Encache、Redis、MongoDB、HSQLDB、Caffeine、PostgreSQL、Kingbase、GaussDB、Vastbase。
  • 最大磁盘空间:【选择 Encache 存储类型时必填】最大磁盘空间默认为10 g,您可以按照实际情况进行调整。
  • 最大内存:选择 Encache 存储类型时设置的最大内存,默认为 200m。支持的单位有:b、k、m、g、t、p。
  • 缓存最大对象数:【当选择 Caffeine 时必填】缓存最大对象数默认为 1000,您可以按照实际情况进行调整。
  • 磁盘存储路径:磁盘的存储路径,默认为 java.io.tmpdir\tmpResources,指向【SuperMap iServer 安装目录】\temp\tmpResources 目录。
  • 服务器地址:【当选择 Redis、PostgreSQL、Kingbase、GaussDB、Vastbase、MongoDB 以及不在本机上的 HSQLDB 时必填】数据库的服务地址,如 '192.168.17.217:27017'或'192.168.17.217:5432/SuperMap'。
  • 用户名:该数据库所有者的用户名。注:当存储类型为 Redis 时,仅当使用 Redis 6.0 时支持设置用户名。如果配置用户名密码后仍无法正常连接,需确认 Redis 是否处于禁用保护模式,如未禁用,可执行“CONFIG SET protected-mode no”禁用。
  • 密码:该数据库所有者的密码。
  • 数据库名称:【当选择 MongoDB 时必填,且应为一个已存在的数据库】存储临时资源的数据库名称。
  • 临时资源失效时间(小时):临时资源的失效时间,单位为小时。
  • 访问后过期时间(小时):设置过一定时间后不访问(读取或者写入),存储的数据会被销毁,过期时间单位为小时。
  • 缓存个数:在 PostgreSQL、Kingbase、GaussDB、Vastbase 中最高支持存储的缓存数量,如不设置则使用默认值 100。当缓存数量达到上限时,将删除近期使用最少的缓存记录。

服务实例动态化管理设置

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> 参数进行配置,具体方式及注意事项详见:文件管理根目录配置