为便于多台应用服务器能够相互访问填报表资源(缓存文件),润乾报表提供了填报集群的使用,使用前需要为多台服务器添加集群配置。
在润乾报表web应用根目录下的WEB-INF\raqsoftConfig.xml文件中添加与填报缓存有关的配置属性:
<Server>
<!--配置填报缓存id的前缀,集群时不同机器用不同的前缀-->
<property name="inputCachedIdPrefix" value="inputA"/>
<!--在填报集群环境中,远程访问其他机器的填报缓存时是否在本地生成缓存文件。缺省值是 false -->
<property name="inputRemoteCached" value="false"/>
<!--配置填报缓存机器和缓存端口号。指定填报缓存前缀和所有集群的服务器节点,目的是实现填报集群机器之间的缓存同步。它的格式是:“缓存前缀,IP,端口;…” -->
<property name="inputClusterMember" value="inputA,192.168.2.121,8008;inputB,192.168.2.117,8088"/>
</Server>
假设有2台集群机器,机器A和机器B。它们各自的配置如下:
机器A:IP 地址:192.168.2.121 可用端口号:8008
<Server>
<property name="inputCachedIdPrefix" value="inputA"/>
<property name="inputRemoteCached" value="false"/>
<property name="inputClusterMember" value="inputA,192.168.2.121,8008;inputB,192.168.2.117,8088"/>
</Server>
机器B:IP 地址:192.168.2.117 可用端口号:8088
<Server>
<property name="inputCachedIdPrefix" value="inputB"/>
<property name="inputRemoteCached" value="false"/>
<property name="inputClusterMember" value="inputA,192.168.2.121,8008;inputB,192.168.2.117,8088"/>
</Server>
访问规则:
1. 机器A本地有一个填报表Test.sht,机器B想要远程访问机器A的Test.sht:
前提条件:机器A必须在本地生成Test.sht的缓存文件后,机器B才能再访问。
2. 机器A在本地生成Test.sht的缓存文件:
机器A在访问Test.sht文件时,会自动在本地生成缓存文件,缓存文件名可以自定义。
在浏览器中输入访问路径:
http://localhost:6868/demo/reportJsp/showInput.jsp?sht=G:/Test.sht&sgid=inputA_test
命名规则:其中:sgid 为填报表的缓存 id,参数名不可变,参数值是自定义的,命名规则:机器 A 的机器名 + 下划线(_)+ 自定义名字。
3. 机器B远程访问机器A的Test.sht文件,只需要访问机器A上Test.sht的缓存文件即可,这样可以减少报表计算。
机器B远程访问时的URL:
http://localhost:6868/demo/reportJsp/showInput.jsp?sgid=inputA_test
其中:sgid 是要远程访问的Test.sht的缓存文件名,参数名不可修改。程序会根据sgid参数指定的缓存文件前缀到对应机器上查找缓存文件,展现填报表。
注意事项
(1)集群的主机之间能够相互访问,最好在同一个网段,保证能够 ping 通。
(2)集群的机器设置端口号时,应选择空闲的可用端口。