一、环境
1. DB1: 10g, Redhat linux AS3.0
IP: 192.168.0.14
2. AS1: win2003, iAS10 with form&report only
IP: 192.168.0.16
fmx and rep: c:\geo
iAS Home: c:\oracle\ias
report server: rep_test03, rep10g
3. AS2: win2000, iAS10 with form&report only
IP: 192.168.0.43
fmx and rep: c:\geo
report server: rep_load
二、步骤
我计划测试两种方式,一种是两个report server 在同一台机器, 另一种方式为两个分别在不同的机器上.
首先,测试在同一台机器的情况, 采用第二台机器AS1
1. 创建两个report service, 在命令行方式下分别运行
c:\oracle\ias>rwserver -install rep16_1.cluster1
c:\oracle\ias>rwserver -install rep16_2.cluster1
Oracle 询问是否创建该服务,确认. 在“服务”里, 启动这两个服务,oracle 会自动在<oraclehome>\reports\conf下创建rep16_1.cluster1.conf 和rep16_2.cluster1.conf两个文件。
1.1 修改这两个文件, 添加两个环境
<environment id="UTF8">
<envVariable name="NLS_LANG" value="AMERICAN_AMERICA.UTF8"/>
</environment>
<environment id="zhs">
<envVariable name="NLS_LANG" value="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"/>
</environment>
1.2 添加诸如报表路径,临时目录, 默认环境ID
<engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1"
maxEngine="1" minEngine="0" engLife="50" maxIdle="30" callbackTimeOut="60000">
<property name="sourceDir" value="c:\geo;C:\WINDOWS\Fonts"/>
<property name="tempDir" value="c:\geo"/>
<property name="defaultEnvId" value="zhs"/>
<!--property name="sourceDir" value="your reports source directory"/-->
<!--property name="tempDir" value="your reports temp directory"/-->
<!--property name="keepConnection" value="yes"/-->
</engine>
2. 创建供这两个report service单独使用的public key 和private key 文件。在命令行下运行
c:\oracle\ias\reports\jlib>rwgenkey pub.key priv.key
Oracle 在当前目录c:\oracle\ias\reports\jlib创建了两个key文件.
3. 在report service的.conf文件里包含这两个key,
<connection maxConnect="20" idleTimeOut="15">
<orbClient id="RWClient" publicKeyFile="clientpub.key"/>
<!--cluster publicKeyFile="serverpub.key" privateKeyFile="serverpri.key"/-->
<cluster publicKeyFile="C:\Oracle\ias\reports\jlib\pub.key" privateKeyFile="C:\Oracle\ias\reports\jlib\priv.key"/>
</connection>
4. 重新启动两个report service.
5. 在应用里对原来report server的请求改为对cluster1的请求.
serverURL仍旧使用原有的/report/rwservlet
6. 测试报表, 报错,
http://192.168.0.16/reports/rwservlet/showjobs?server=rep16_1.cluster1 和
http://192.168.0.16/reports/rwservlet/showjobs?server=rep16_2.cluster1
发现报表实际上是完成了, 可惜, 没有拿到