近日终于完全测试通过了ODI11g和Oracle BAM的集成,颇费了不少周折。
回顾过程,不外乎有以下几点比较重要:
1)配置ODI和Oracle BAM的环境,官网有详细介绍,此处不多说;
2)逆向Oracle BAM数据存储,这里费了不少功夫,逆向时使用了何种代理,与步骤1)产生的相关JAR文件和配置文件的存放位置密切相关;
本人测试过程中,一直用本地代理测试,因此lib和configuration的文件也要相应的copy到代理所处的相应的位置中为逆向的前提,常见错误在Create Jython Classes为:
Traceback (most recent call last):
File "<string>", line 4, in <module>
: No module named bam
且需要保证Oracle BAM的Server是正常状态的。本人的情况有点复杂,直接通过URL能访问到Oracle BAM,但是逆向时却经常报无法连接到服务器
java.sql.SQLException: java.net.ConnectException: t3://localhost:9001: Destination unreachable;
或者
java.sql.SQLException: java.sql.SQLException: java.net.ConnectException: t3://localhost:9001: Destination unreachable; nested exception is:
java.net.NoRouteToHostException: No route to host: connect; No available router to destination
若遇到上述报错,通过URL可访问,则考虑是否为防火墙的问题或者是proxy问题,本人的Oracle BAM Server和ODI都在本机,本机的IE设置了通过代理访问网页,且装了360防火墙和windows自带的防火墙,百思不得其解的情况下,取消了代理,关了防火墙,重新运行ODI时,却可以顺利进行逆转了,当然这种设置并不是每次都能凑效,要反复实验,目前搞不清楚原因根底出现在哪块,不过关了代理和防火墙确实是可以保证连接到Oracle BAM。
3)逆向的事情解决完了后,接着BAM KM的使用又出现了问题,新建的接口中,Flow里面想使用IKM BAM insert\Update等,却发现虽然导入了,却无法选择到;细究原因发现,这些KM上都要求了STG必须是关系数据库,也就是说接口上的临时区域和目标区不一致的checkbox的勾要打上,并选择一个RDBMS的逻辑架构。
以上为ODI和BAM的集成要点,记录备查。