日期:2013-11-18  浏览次数:20683 次


一、环境
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
发现报表实际上是完成了, 可惜, 没有拿到