在ESRI的ArcIMS的安装说明文档中对于ArcIMS的分布式部署,有详细的介绍,但是都是英文的,而且比较复杂,刚好这两天试通了,这里来个总结。
目的:部署一个Web服务器,两个应用服务器(application Server)。Web服务器没有地图服务,地图服务都发布在应用服务器上,负责生成地图,执行查询等任务。当其中一个应用服务器崩掉比如断电了,反正就是不能做地图服务了,Web服务器会自动切换到另一个应用服务器上。当然两个都崩了,那就没有办法了。
注:我采用的是IIS。
安装步骤:
1、安装Web服务器,机器名(WebServer)。为了简单,就选择默认安装。ArcIMS自带的安装说明中说只装其中的两个组建,但是如果你真的那样装,后面的过程恐怕很难执行。安装完毕后,会要求POST Installation。POST过程中,只需注意一个地方,就是在如图的过程中,将“Create a netWork。。。。”勾上就行。实际就是让C:\ArcIMS目录共享,如果不勾该选项,POST完后手动设置共享也是可以的。注意共享的权限包括“修改”:
然后就一直采用默认设置,别管安装说明,哪些都是人为增加安装难度。
2、应用服务器安装(机器名Application1,Application2)。全部默认安装即可。
3、设置WebServer服务器。
1)在ArcIMS安装文件夹以及Serverlet文件夹中找到文件:Esrimap_prop,位置可以在两个程序的安装文件夹中搜索。两个文件是一样的,安装说明上说只改一个就可以了,我也不知道对不对,干脆就两个都作了更改。
A:
### The name of the machine or machines on which the ArcIMS Application Server is running.
### If multiple appServerMachines are specified then multiple appServerClientPort must
### also be specified.
### Example:
### appServerMachine=129.103.35.97,123.151.62.57
appServerMachine=d24f0a3c1dde4bd
将红色部分改成:appServerMachine=Application1,Application2;
B:
### The port on which the ArcIMS Servlet Connector communicates with the ArcIMS Application
### Server. If multiple appServerMachines are specified,
### multiple appServerClientPorts must also be specified.
### Example:
### appServerClientPort=5300,5350
appServerClientPort=5300
将红色部分的端口号改成你的Application的端口号。由于是默认设置,所以设成:appServerClientPort=5300,5300
C:
### Set this to True if you want all requests to be sent to the first
### appServerMachine until it fails to return a response. Then requests will
### be sent to the second machine in the appServerMachine list. If failover is
### set to False, the appServerMachines will be used in a round robin manner.
### This property only works with ArcExplorer, Java Viewers, and HTML Viewers.
failover=False
这个参数根据情况,如果你是想作负载均衡,则为False,如果是想做双击备份则是TRUE。我是作双击备份,所以是Ture。
D:
### HTML viewer specific. Enables the HTML viewer to connect to multiple hosts.
### The ArcIMS Servlet Connector must be told to redirect to different ArcIMS Servlet
### Connectors on different machines. Set redirect to true to enable
### redirection. True or False.
redirect=False
将false改成True
E:
### The redirectableHosts property requires the redirect property must be set to
### True. The redirectableHosts specifies the different hosts to connect to.
### Multiple hosts can be set. * can be specified to allow access to any host
### on the network. Only used when redirect=True.
### Examples: redirectableHosts=host1,host2,host3,host4
### redirectableHosts=*
# redirectableHosts=
将红色改成redirectableHosts=Application1,Application2;注意去掉“#”
好了WebServer设置好了,什么都不管,重启计算机吧,可以解决一切问题,不用去点那么多快捷方式。
4、设置应用服务器。
A:打开管理器程序,发布服务。其他的都一样,只是注意如下细节:
就是Directory Location要填成WebServer上的output文件夹的路径;
HTTP Location要填成HTTP://WebServer/output
在发布服务前,最好在windows中通过网上邻居访问一下WebServer上的ArcIMS目录。如果不能访问,则配置会失败。两个Application服务器的设置完全一样,注意发布的地图文件Axl也是一个Axl。Axl可以使网上邻居上的,也可以是本地的,只要一样就好了。Service Name也必须一样。
5、一切OK。开始你的开发吧。