OdiInvokeWebService的应用

本文详细介绍了在ODI环境中通过OdiInvokeWebService执行方案invokeScenario时遇到的一些常见错误及其解决方案,包括用户名密码设置、端口配置、方案名称使用、Agent部分的Host设置、JDBC URL、SyncMode模式选择以及执行超时等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在ODI中通过OdiInvokeWebService执行方案invokeScenario中,遇到了几个错误,总的来说可能由于以下几个方面设置报错造成的:

1、用户名密码设置问题

   不管是JdbcPassword还是OdiPassword,都无需加密,直接输入该密码,注意大小写

2、端口设置错误

    invokeScenario方法调用时,需要输入Agent的端口。该端口应为Scheduler对应的端口,通常容易滥用其他端口,如ListenerAgent对应的端口。端口不正确可能会产生类似以下错误:

Agent didn't prepare this command: Error during Session Preparation : Driver must be specified

3、方案的名称无需指定工程,直接写方案名即可

4、Agent部分对应的Host应为ODI服务器主资料库所在的主机名或者是IP地址

5、连接部分的jdbcURL应为ODI主资料库对应的url信息。

6、执行超时,是否调用方案不成功问题

    直接运行的方案本身就需要执行很长时间时,在 invokeScenario方法的调用下,如果设置SyncMode模式为1,time out时间为默认,则会报以下错误:

 com.sunopsis.wsinvocation.SnpsWSInvocationException: java.net.SocketTimeoutException: Read timed out
 at com.sunopsis.wsinvocation.client.a.a.d.requestReply(d.java)

 

  原因是:SyncMode为1意味着同步执行,需等待方案执行完毕后才能返回消息,这就面临着超时的可能,因此在数据量很大的时候,可以设置SyncMode为2.但上述报错,本身没有影响方案调用的结果,方案还是被执行的。

 

完整的参数信息如下所示:

 

<invokeScenarioRequest>

 

<invokeScenarioRequest>

 

<RepositoryConnection>

 

<JdbcDriver>oracle.jdbc.driver.OracleDriver</JdbcDriver>

 

<JdbcUrl>jdbc:oracle:thin:@xxx.xx.xx.xxx:1521:orcl</JdbcUrl>

 

<JdbcUser>SOAM</JdbcUser>

 

<JdbcPassword>TEMP</JdbcPassword>

 

<OdiUser>ADMIN</OdiUser>

 

<OdiPassword>TEMP</OdiPassword>

 

</RepositoryConnection>

 

<Command>

 

<ScenName>ERP_SIEBEL_LOAD_DISTRIBUTOR_RS_DATA_CDC</ScenName>

 

<ScenVersion>001</ScenVersion>

 

<Context>Global</Context>

 

<LogLevel>5</LogLevel>

 

<SyncMode>1</SyncMode>

 

</Command>

 

<Agent>

 

<Host>xxx.xx.xx.xxx</Host>

 

<Port>20913</Port>

 

</Agent>

 

</invokeScenarioRequest>

 

</invokeScenarioRequest>

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值