1

我正在尝试使用 Java 中的 ODI SDK 连接到 ODI。以下是获取 ODI 实例的代码:

MasterRepositoryDbInfo masterInfo = new MasterRepositoryDbInfo("jdbc:oracle:thin:@ipaddress:1521:xe", "oracle.jdbc.OracleDriver", username, password, new PoolingAttributes());
WorkRepositoryDbInfo workInfo = new WorkRepositoryDbInfo("WORKREP1", new PoolingAttributes());

final OdiInstance odiInstance = OdiInstance.createInstance(new OdiInstanceConfig(masterInfo, workInfo));

我收到以下错误:

Exception in thread "main" oracle.odi.core.config.WorkRepositoryResourceFailureException: ODI-10182: Uncategorized exception during repository access.  
Could not get JDBC Connection; nested exception is java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLException: The Network Adapter could not establish the connection
    at oracle.odi.core.repository.Repository.getWorkRepository(Repository.java:195)
    at oracle.odi.core.OdiInstance.createWorkRepository(OdiInstance.java:531)
    at oracle.odi.core.OdiInstance.<init>(OdiInstance.java:678)
    at oracle.odi.core.OdiInstance.createInstance(OdiInstance.java:609)
    at oracle.odi.core.OdiInstance.createInstance(OdiInstance.java:548)
    at com.fe.FT2FT.main(FT2FT.java:66)

我通过创建与同一台机器的 jdbc 连接来单独检查,并且能够连接。

如果我遗漏了什么,请告诉我。任何帮助表示赞赏。

4

2 回答 2

0

您与主存储库的连接正常,问题在于连接到工作存储库。请检查是否

  • 您的 WORKREP1 连接在主存储库中正确定义
  • 您可以手动连接到工作存储库

还尝试仅连接到主存储库以查看它是否有效

final OdiInstance odiInstance = OdiInstance.createInstance(new OdiInstanceConfig(masterInfo, null));
于 2015-03-20T20:30:41.440 回答
0

您应该使用主存储库登录名登录到 ODI,转到Topology选项卡。

在那里,在Physical Architecture转到Agents并打开代理下。在Definition处,代理主机不应是 localhost,但应具有有效的合格主机名。

在此处输入图像描述

于 2018-07-04T10:45:44.317 回答