适用于:
ODI -版本:10.1.3.6.4及以后版本
信息在这个文件适用于其他平台
目的:
此文件表明的执行步骤是,当使用ODI SAP适配器时,要排除一个连接问题的故障
常见问题
确保你已经从SAP上下载最近的3.0版本SAP JCo 。
SAP JCo 是SAP软件为SAP用户免费提供的。
请为你的操作系统和硬件选择合适的版本(处理器,32/64bit)
确保你是根据SAP JCO安装说明安装的SAP JCO。
ODI 10g:
在Windows操作系统中:确保sapjco3.jar和sapjco3.dll位于oracledi/drivers文件夹中。
在UNIX操作系统中:确保sapjco3.jar和sapjco3.so位于oracledi/drivers文件夹中。
ODI 11g:
在Windows操作系统中:确保sapjco3.jar和sapjco3.dll位于odi_misc文件夹中。
在UNIX操作系统中:确保sapjco3.jar和sapjco3.so位于odi_misc文件夹中。
SAP JCo安装测试
测试的第一部分验证SAP JCO是正确的安装,第二部分将尝试连接到SAP系统
请注意,这个测试是独立地ODI,所以这里发生的问题是非常有可能造成无效的SAP JCO 安装/设置。在这些测试/配置期间,SAP连接的详细信息或网络/防火墙问题,请要求本地SAP管理员提供。
第一部分:
开启:
Windows:java–cp sapjarco3.jar;odi-sap.jar oracle.odi.sap.km.test.JCoTest
UNIX:java–cp sapjarco3.jar:odi-sap.jar oracle.odi.sap.km.test.JCoTest
这里应该有一个类似这样的输出结果。请小心;JCO3图书馆可提供
第二部分:
使用文本编辑器打开oracledi/drivers目录下的ODI_SAP_CON_POOL.jcoDestination文件
文件内容是这个样子的:#仅是测试!
jco.client.lang=EN
jco.destination.peak_limit=10
jco.client.client=800
jco.client.passwd=
jco.client.user=
jco.client.sysnr=00
jco.destination.pool_capacity=5
jco.client.ashost=
Enter you SAP connection information, which you have received from your SAP administrator.
The file will then look similar to this (use your connection information!):#for tests only !
jco.client.lang=EN
jco.destination.peak_limit=10
jco.client.client=800
jco.client.passwd=ODI123
jco.client.user=ODI
jco.client.sysnr=00
jco.destination.pool_capacity=5
jco.client.ashost=123.123.123.123
使用以下命令重新启动改使用工具:
Windows:java–cp sapjarco3.jar;odi-sap.jar oracle.odi.sap.km.test.JCoTest
UNIX:java–cp sapjarco3.jar:odi-sap.jar oracle.odi.sap.km.test.JCoTest
这里会有一个类似这样的输出结果:
重复此测试与SAP使用安装在每个ODI
SAP JCO安装测试
测试的第一部分验证SAP JCO是正确的安装,第二部分将尝试连接到SAP系统
请注意,这个测试是独立地ODI,所以这里发生的问题是非常有可能造成无效的SAP JCO 安装/设置。在这些测试/配置期间,SAP连接的详细信息或网络/防火墙问题,请要求本地SAP管理员提供。
如果这个测试成功了,建议继续连接测试部分,“验证SAP连接”在SAP入门指南,
如果使用“RKM SAP连接测试”的测试失败,请确保ODI使用相同的JVM,JVM参数,环境变量,SAP连接设置,使用手动测试上述内容。
可能的错误信息:
无法加载类:java.lang.ClassNotFoundException: com.sap.conn.jco.JCo
这将引发异常,当JVM无法加载SAP JCO类,典型的原因是sapjco3.jar不是对类路径 sapjco.jar(SAP JCO V2是不符合ODI SAP应用适配器)。
java.lang.UnsatisfiedLinkError:
这将引发异常,加载本地SAP JCO库(Windows: sapjco3.dll 或UNIX: libsapjco3.so)时,出现问题,最典型的原因是:本地库不是在同一目录下的sapjco3.jar
本机库是不正确的操作系统
本机库是64位,但java中使用的是32位,或相反情况,例如使用java-d64选项是由问题的加载类库。
在Linux环境变量LD_LIBRARY_PATH可能需要包括目录,其中包含libsapjco3.so。在NT/Inter JCO3.0.4需要特别VC2005的Redist LIBS(匹配的SAP GUI的一部分)。
解决方法:使用SAP JCO3.0.6
错误信息“XXX.XXX.XXX.XXX:3300”没有达到引发异常,当SAP JCO是无法连接到SAP系统。
诊断的步骤:
通过SAP GUI连接,请确保SAP系统的建立并运行,尝试看看SAP端口是否是开放的,SAP连接使用不同的端口的范围。然而SAP GUI连接到SAP的调度进程(sapdp##服务器/端口 3200+系统数),SAP RFCs的连接SAP网关进程(sapgw##服务/端口3300+系统数),这意味着一个SAP GUI的连接测试并不一定意味着SAP RFCs将正常工作,我们只能测试,SAP网关的过程是否是监听一个特定的端口。这里可以使用个远程登录:
Windows:远程登录33##
UNIX:远程登录33##
其中##替换成SAP系统号码
这个测试将告诉我们,是否达到预期的端口是开放的,如果没有,请联系你的SAP管理员。
密码无效
在SAP GUI使用相同的凭据登录验证你的SAP连接的详细信息