arcserver常见问题处理

arcserver是GIS应用服务器的一种,可以提供地图服务发布、缓存地图生产、要素服务查询、地图服务分析等多种GP服务。arcserver在提供服务的同时,其本身也是一种服务(相对于操作系统而言)。arcserver发布的站点服务使用tomcat发布(常见的如:http://localhost:6080/arcgis/)。我们可以在 server10.x\Server\framework\runtime\tomcat\bin(windows操作系统中)下找到tomcat 的痕迹。在配置多机负载均衡的时候,安装Web Adaptor会用到Web Server IIS。

作为一种网络服务,别的网络服务具有的要素,arcserver它都具有。如服务协议、IP、端口、所属用户、数据的共享读写等等。同样,由于它又是通过tomcat发布,tomcat具有的缺点,它也都具有。相比较而言,它又比其他的一些GIS服务器(如GeoServer、Mapserver、TileCache等)使用简单、易操作,基于这些优点,我们常常忽略它的缺点,它几乎成了webgis 中GIS服务器的标配,但是一旦发生问题,又是我们这些喜欢简单、易操作的选手们不愿看到的,甚至是一件非常棘手的问题。

1、账户问题

arcserver账户分为系统账户和站点账户。

系统账户是相对于操作系统而言的,它规定了arcserver对操作系统的共享、控制、读写、修改、特殊等权限。很多关于文件操作方面的问题都发生在这个层面。比如:不能注册数据集、arcserver集群不能共享访问、前后系统账户不一致遗留的配置文件,arcserver服务不能正常启动等等。倘若不能注册数据集,你必须确保你远程存储的操作系统具有与本地arcserver一样的账户和密码,也就是说,你的本机账户是arcgis ,密码是123456,那么你的远程操作系统也应该有类似的系统账户arcgis ,然后密码是123456,而且远程文件应该是可以供本机共享访问的,arcserver集群不能共享访问的解决方式也如以上。前后系统账户不一致遗留的配置文件问题,可以是单方面更改arcserver系统账户造成的,也可以是多次重装arcserver造成的,这时就需要更改现有配置文件,相应的系统用户配置文件既有在安装文件夹server下的,也有在config-store文件夹mathine下的,应当同时修改为一致,以上过程过于繁琐,另一种解决方式是在arcserver中的Configure ArcGIS Server Account配置引导程序中重新新建系统账户。如果是重新安装arcserver,那么须确保遗留的配置文件被清除干净,之后从新创建arcserver系统账户。

站点账户

在安装arcserver后,浏览器会跳出一个创建主站点的界面,这个页面的账户就是站点账户。很多时候我们其实是在跟这个账户打交道,比如发布地图服务,调用地图服务等等。相应的配置文件在 tomcat下和 config-store下面。在使用的过程中,我们常常会忘记该账户,可以在server\ArcGIS\Server\tools\下找到passwordreset命令。cmd窗口调用passwordreset命令:

键入:PasswordReset -l (查看主站点账户)

键入:PasswordReset -p 主站点账户(修改密码)

也或者打开config-store\security\super\super.json,查看当前主站点的账户和密码。

2、服务站点不能启动

arcserver站点服务就是我们上面提到的主站点,它以服务运行。倘若服务站点不能启动,我们不仅仅要考虑服务是否启动、其IP地址、端口是否正确,还需考虑apache、tomcat 等是否启动。应该说站点服务牵涉面是非常多的,需要一个一个排查。确认在浏览器输入了正确的网络地址,站点服务没有反应后,进入操作系统的服务策略里,找到arcserver服务项是开启状态的,此时arcserver站点服务有可能能够进入。如果arcserver服务项开启后,刷新或者过了几分钟后该服务又停了,则需要查看端口号是否被占用或者阻挡了,netstat命令查看是否有其他程序在使用6080端口(arcserver站点服务默认端口),有则停掉,再重启arcserver服务项,再回浏览器查看arcserver站点服务是否起来。确保防火墙开放了6080端口,再重启arcserver服务项,再回浏览器查看arcserver站点服务是否起来。如果以上arcserver站点服务还是没有起来,则重启apache服务项,顺带进入server10.x\Server\framework\runtime\tomcat\bin文件夹下,点击shutdown关闭tomcat,再点击startup启动tomcat,浏览器页面即可进入arcserver站点服务。当然不排除其他方面的原因,倘若你的浏览器不兼容,也可能进入不了站点服务;arcserver服务项并没有使用arcsrver系统账户,也可能启动不了。

3、不能发布服务

我们将做好的msd工程文件发布的时候有时候会出现服务发布失败的问题,进入calog或者站点服务器发现publishing工具是停止状态的。这种问题的出现常常是软件不兼容造成的。如果你的destop和server版本不一致也很容易造成这个问题,更多的是操作系统的版本与你当前的server版本不一致问题。此时可以在esri官网下载相应的补丁包,用以安装新的publishing工具确保服务能够发布。当然,publishing工具是一个GP服务工具,我们也可以自己将publishing写进GP工具集中。

重新构建publishing工具即可。

4、切图中断、切片不全

倘若你的数据量比较大,少则5t,多则10t,20t,arcserver切图是一件非常费时的任务,其io吞吐量是非常巨大的,较低IO的硬盘、网络传输、CPU都有可能造成切图中断。这时需要重新启动你的切片工具,选择recreate empty tiles即可。由于矢量范围过碎,切片会有黑块现象,这时你需要将status.gdb文件拷贝出来,找出切图失败的区域,重新切图,并将切后的瓦片重新导入原有切片数据集中。

5、修改arcserver web站点端口号

arcserver web站点服务使用tomcat发布,tomcat放置在C:\Program Files\ArcGIS\Server\framework\runtime\tomcat下,打开tomcat\conf \erver.xml配置文件,找到port字样,arcserver web站点服务默认为6080,你可改为常见的80 端口,同时在\arcgisserver\config-store\machines\GENUINE.MICROSOFT.COM.json文件中一并修改端口为80端口。以上也可以修改http://localhost:6080/arcgis/中的主机名,localhost改为gisserver,变成http://gisserver:80/arcgis/。当然,也可以使用Web Adaptor修改。

6、集群部署反向代理、负载均衡

地理信息服务的调度量一般是比较大的,当前单个计算机IO吞吐、运算能力等性能指标并没有达到相应的水平,通常的考虑是做集群处理。而地理信息服务包含了地图服务、地图切片服务、要素服务、覆盖服务等多种服务,集群又做了进一步地划分,使用多机多服务集群方式满足客户端多样化的请求。同时,处于安全考虑,我们不希望服务器集群直接暴露在客户端,于是又产生了反向代理服务器中间层,使客户端的请求转发到集群服务器上(相反,正向代理:客户端不希望暴露在网络中,使用正向代理转发通信)。利用Nginx做反向代理可以完成这一要求,此时出现的问题是,客户端的请求并没有到达内部的服务器中,而是直接跳至反向代理服务器的页面上,此时就需要关闭反向代理服务器与内部集群服务器冲突的端口。

打开nginx.conf文件

server {
        listen       <span style="color:#ff0000;">80</span>;
        server_name  <span style="color:#ff0000;">localhost</span>;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location <span style="color:#ff0000;">/</span> {
            root   <span style="color:#ff0000;">html</span>;
            index  <span style="color:#ff0000;">index.html</span> index.htm;
        }
}

1、 window中直接在本地文件中添加域名映射,绕过DNS域名解析服务器,Nginx是可以访问虚拟主机的。在文件C:\Windows\System32\drivers\etc\hosts中添加两个域名映射关系:     

<span style="color:#ff0000;">#这是新增部分</span>
127.0.0.1     com.zhangsan.test
127.0.0.1     test.zhangsan.com
 

2.在本地分别安装tomcat7和tomcat8,端口分别为8081、8082,启动两个空的tomcat。

 3.在nginx.conf中配置反向代理的信息,如下


    upstream mytomcat7{
       server 127.0.0.1:8081;
    }

     upstream mytomcat8{
    server 127.0.0.1:8082;
      }
    
    server {
        listen       8080;
        server_name  com.zhangsan.test  ;
        location / {
            proxy_pass http://mytomcat7;
        }
    }
    
     server {
        listen       8080;
        server_name  test.zhangsan.com  ;

        location / {
            proxy_pass http://mytomcat8;
        }
    }
    
      重启Nginx后,在浏览器分别输入http://com.zhangsan.test:8080/和http://test.zhangsan.com:8080/,可以看到,请求的页面分别是tomcat7和tomcat8的主页。
   4.负载均衡

     在上面的配置基础上,在nginx.conf中配置负责均衡的信息,如下

 #gzip  on;
    
    upstream mytomcat{
       server 127.0.0.1:8081 weight=1;
       server 127.0.0.1:8082 weight=2;

    }
    
    server {
        listen       8080;
        server_name  com.zhangsan.test  ;

        location / {
            proxy_pass http://mytomcat;
        }
    }
    
     server {
        listen       8080;
        server_name  com.zhangsan.test  ;

        location / {
            proxy_pass http://mytomcat;
        }
    }
重启Nginx后,在浏览器中多次尝试请求http://com.zhangsan.test:8080地址,可以看到是也ACCACCACC的方式显示tomcat7和tomcat8的主页,其中原因在于我们对8081端口配置了weight=1,对8082端口配置了weight=2,如果取掉weight的配置,这以ACACAC的方式显示tomcat7和tomcat8的主页。
 

 

附:

一 服务发布:

  1. 在目录树中,浏览到地理数据库。
  2. 右键单击想要发布的地理数据库,然后单击共享为地理数据服务。

    将显示共享为服务 窗口。

  3. 选择发布服务,然后单击下一步。
  4. 从选择连接下拉列表中选择要使用的 ArcGIS Server 连接。如果要使用的服务器连接并未列出,可单击连接到 ArcGIS Server 添加 ArcGIS Server 以创建与服务器的新连接。
  5. 还可以在发布服务窗口中输入新的服务名称。名称长度不能超过 120 个字符,并且只能包含字母数字字符和下划线。

    单击下一步。

  6. 默认情况下,服务会发布到 ArcGIS Server 的根文件夹下。可以将服务组织到根目录下的子文件夹中。选择要将地理数据服务发布到其中的目标文件夹,或创建一个新文件夹用来存储地理数据服务。
  7. 单击继续。将打开服务编辑器对话框。
  8. 为地理数据服务设置所需属性。此处,您可以选择用户可对服务执行的操作,还可精细控制服务器显示服务的方式。
  9. 单击分析 分析。此操作将检查地理数据库是否能够发布到服务器。
  10. 对准备 窗口中列出的所有错误 (错误) 一一进行修复,以便能够将地理数据库发布为服务。另外,您还可以修复警告和通知消息,以进一步改善地理数据服务的性能和外观。
  11. 修复错误以及警告和消息(可选)后,单击发布 发布

二、切图工具箱

1、Convert map server cache storage format(转换服务缓存的存储格式)

利用该工具可以快速的切换地图缓存的格式,实现紧凑(compact)格式和松散(explode)格式之间的切换。其原理是对cache目录下,重新生成新的格式切片并且删除旧格式切片。该工具的输入参数是切图服务,但是在实际业务需求中存在只有缓存文件为没有服务的情况,如何实现切片间直接转换呢?目前AGS 不存在这样的工具,那么可以发一个空的切片服务,确保该切片服务的切片的schema和切片一样,然后将需要转换的切片导入到该服务下,然后在运用该工具实现格式间的转换。

2、Create Map Server Cache

该工具可以对动态地图服务创建切片

3、export map server cache

可以将指定的缓存服务的切片到处到指定的目录,其中可以指定导出的切片格式,是紧凑还是松散;指定到处级别和导出范围(通过感兴趣和加入要素的形式)

4、Generate Map Server Cache Tiling Schema

 该工具用来生成地图缓存切片schema,该工具的应用场景一般是要对多个地图文档,采用相同的切图方案,故先使用该工具将切片方案到处。

5、Import Map Server Cache(导入地图切片缓存)

将切片或者切片包导入到服务缓存中,该工具可以用来对已有切片进行更新,可以指定更新的切片级别,更新切片的范围等。该工具默认的是在原有切片的上,叠加新的切片,以混合切片展现,如果勾选了overwrite tiles 就会覆盖现有切片。注意导入的切片和地图缓存必须使用相同的切片方案和存储格式。

6、Manage map server scales

可以对已有的地图或者影像服务中添加和删除比例级别

7、Manage Map Server Cache Tiles(管理地图缓存切片)

此工具用于创建新切片、恢复缺失切片、覆盖过时切片以及删除切片。

8、Manage Map Server Tiles Status(管理地图缓存状态)

每个切片服务都有个status.gdb 的文件,该文件用来记录切片的状态

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章