環境情況如下:
Planning Server: Oracle Hyperion Planning 11.1.2.4 Linux 64 bit
ODI Studio: windows 7 64bit
ODI Studio配置
添加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.<init>(Unknown Source)
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 "<string>", line 33, in <module>
用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在執行逆向操作,成功。