环境情况如下:
Planning Server: Oracle Hyperion Planning 11.1.2.4 Linux 64 bit
ODI Studio: windows 7 64bit
添加Planning jar包
从Planning服务器上下载HspJS.jar,一般目录为:$FMW/EPMSystem11R1/products/Planning/lib/HspJS.jar
将HspJS.jar拷贝至odi\studio\extensions目录下,然后修改odi\studio\bin目录下的odi.conf
向其中添加:
AddJavaLibFile ../extensions/HspJS.jar
然后启动Studio,在拓扑管理器中添加Planning物理Server,如下图所示:
注意:服务器即为Planning的RMI服务器端口。此处的8735为我修改之后的端口,如果没有修改则应默认为11333
注:如何修改RMI端口
修改Hyperion Planning 11.1.2.4 RMI端口
另外,测试连接 按钮为灰色的是正常的。因为测试连接只对JDBC数据源有效。
之后就可以在设计器中进反数据模型的反射了,如下图所示:
注意使用的KM为RKM Hyperion Planning
成功反向之后如下所示:
如果无法成功逆向,可以在操作器中查看错误日志
双击第2步,查看错误日志,可能会看到如下日志:
Caused by: com.hyperion.odi.planning.ODIPlanningException: Could not connect the Planning instance on host [bjkjy-bi-devhyperionplanning.com], port [8735], check if connect information is correct.
at com.hyperion.odi.planning.wrapper.PlanningWrapper.init(Unknown Source)
at com.hyperion.odi.planning.ODIPlanningConnection.
at com.hyperion.odi.planning.PlanningConnectionFactory.getAppConnection(Unknown Source)
at com.hyperion.odi.connection.HypAppConnectionFactory.getConnection(Unknown Source)
提示无法连接到8735端口,telnet一下
telnet bjkjy-bi-devhyperionplanning.com 8735
可以成功telnet到服务器的8375端口。那是什么原因呢?在看日志,发现是33行的代码出错:
ODI-1590: 脚本执行失败。
Caused By: org.apache.bsf.BSFException: exception from Jython:
Traceback (most recent call last):
File "
用HypAppConnectionFactory作为关键字查询得知,其除了使用RMI Server端口之外,还会使用额外的动态端口,该动态端口可能被防火墙挡住了。
注:由于我们内网环境桌面客户端只能通过8000到9000的端口连接服务器
登录到Planning Server查询动态端口范围
#cat /proc/sys/net/ipv4/ip_local_port_range
9000 65535
发现不在我们的可访问端口范围,修改之
使用root用户在/etc/sysctl.conf中添加或者修改
net.ipv4.ip_local_port_range = 8500 9000
然后执行sysctl -p修修改生效。
最后在重启epm server和studio在执行逆向操作,成功。