文档

Dataphin中BASIC项目管道任务运行报错“com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [Cannot connect to host IP:PORT [Connection timed out (Connection timed out)”

更新时间:
一键部署

问题描述

公有云环境的Dataphin创建管道任务,将SAP HANA数据源中的数据同步到MaxCompute,运行报错“com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: [Cannot connect to host IP:PORT [Connection timed out (Connection timed out)”。具体日志信息如下:

2022-02-18 14:46:30.847 [job-6371232] WARN  DBUtil - test connection of [jdbc:sap://IP:PORT/?databaseName=BHD&currentSchema=HANABI&allowLoadLocalInfile=false] failed, for Code:[DBUtilErrorCode-10], Description:[连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境).].  -  具体错误信息为:com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: Cannot connect to jdbc:sap://IP:PORT/ [Cannot connect to host IP:PORT [Connection timed out (Connection timed out)], -813.]..
2022-02-18 14:46:30.850 [job-6371232] ERROR RetryUtil - Exception when calling callable, 异常Msg:DataX无法连接对应的数据库,可能原因是:1) 配置的ip/port/database/jdbc错误,无法连接。2) 配置的username/password错误,鉴权失败。请和DBA确认该数据库的连接信息是否正确。
java.lang.Exception: DataX无法连接对应的数据库,可能原因是:1) 配置的ip/port/database/jdbc错误,无法连接。2) 配置的username/password错误,鉴权失败。请和DBA确认该数据库的连接信息是否正确。
 at com.alibaba.datax.plugin.rdbms.util.DBUtil$2.call(DBUtil.java:84) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.datax.plugin.rdbms.util.DBUtil$2.call(DBUtil.java:64) ~[plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.dt.pipeline.plugin.center.util.RetryUtil$Retry.call(RetryUtil.java:164) ~[plugin.center.base-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.dt.pipeline.plugin.center.util.RetryUtil$Retry.doRetry(RetryUtil.java:112) ~[plugin.center.base-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.dt.pipeline.plugin.center.util.RetryUtil.executeWithRetry(RetryUtil.java:32) [plugin.center.base-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.datax.plugin.rdbms.util.DBUtil.chooseJdbcUrl(DBUtil.java:64) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.dealJdbcAndTable(OriginalConfPretreatmentUtil.java:99) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.simplifyConf(OriginalConfPretreatmentUtil.java:66) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.datax.plugin.rdbms.reader.util.OriginalConfPretreatmentUtil.doPretreatment(OriginalConfPretreatmentUtil.java:40) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.datax.plugin.rdbms.reader.CommonRdbmsReader$Job.init(CommonRdbmsReader.java:70) [plugin-rdbms-util-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.datax.plugin.reader.saphanareader.SAPHanaReader$Job.init(SAPHanaReader.java:55) [saphanareader-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.dt.dlink.core.trans.DlinkTransRunner.initJobReader(DlinkTransRunner.java:59) [dlink-engine-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.dt.dlink.core.trans.DlinkTrans.doInit(DlinkTrans.java:277) [dlink-engine-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.dt.dlink.core.trans.DlinkTrans.start(DlinkTrans.java:132) [dlink-engine-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.dt.dlink.core.Engine.runTrans(Engine.java:78) [dlink-engine-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.dt.dlink.core.Engine.entry(Engine.java:158) [dlink-engine-0.0.1-SNAPSHOT.jar:na]
 at com.alibaba.dt.dlink.core.Engine.main(Engine.java:170) [dlink-engine-0.0.1-SNAPSHOT.jar:na]

SAP HANA数据源测试连接正常。同时,管道输入组件配置中,选择该数据源之后,表和字段可以正常加载出来:

问题原因

公有云环境BASIC项目沙箱白名单中未配置SAP HANA数据源IP和端口,导致数据源和Dataphin环境mesos机器网络不通,连接超时。

解决方案

建议客户将SAP HANA的IP和端口配置到管道任务所在项目的沙箱白名单中,问题解决:

该问题排查时,可以在Dataphin中新建Shell任务telnet数据源的IP  PORT,如果端口telnet不通,可以检查项目沙箱白名单、数据库白名单等。需要注意的是,如果数据源是通过VPC通道接入, telnet是不通的,因为做了反向VPC打通,直接用VPC地址是访问不了的。

适用于

  • Dataphin
  • 本页导读