无法使用 JDBC 连接到 SAP HANA 2.0
Cannot connect to SAP HANA 2.0 using JDBC
我正在尝试使用 JDBC 连接到 SAP HANA 2.0。我从 Windows.
中安装的 Eclipse 插件中获取了驱动程序 ngdbc.jar
问题是,即使我在连接字符串中设置了一个随机 IP 地址,我也总是得到相同的错误 [Connection refused: connect], -813
。
Eclipse 插件完美连接:
可能是什么问题?这是 ngdbc.jar
跟踪:
ClassLoader: sun.misc.Launcher$AppClassLoader@73d16e93
Process-ID: 3140
package package com.sap.db.jdbc, Java Platform API Specification, version 1.6, SAP HANA JDBC Driver, SAP SE, 2.0.14-2d2417a0b831eafc24c4a6d30206b73d62a858e5 on Java 1.8.0_131
---- Thread 3e3abc88 main Timestamp: 2017-07-11 22:47:06.243
new Connection 'jdbc:sap://192.168.1.85:39015/'
user=SYSTEM
password=***
HOSTLIST: [192.168.1.85:39015,]
new RTEException: SQLSTART_REQUIRED(5) -813 Cannot connect to host 192.168.1.85:39015 [Connection refused: connect], -813.
whereAmIjava.lang.Throwable
at com.sap.db.jdbc.trace.Tracer.whereAmI(Tracer.java:333)
at com.sap.db.jdbc.exceptions.RTEException.<init>(RTEException.java:46)
at com.sap.db.jdbc.exceptions.RTEException.<init>(RTEException.java:23)
at com.sap.db.jdbc.Session._openSocket(Session.java:1005)
at com.sap.db.jdbc.Session.openSocket(Session.java:416)
at com.sap.db.jdbc.Session.open(Session.java:915)
at com.sap.db.jdbc.Topology.getSession(Topology.java:214)
at com.sap.db.jdbc.Driver._connect(Driver.java:814)
at com.sap.db.jdbc.Driver.connect(Driver.java:159)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at fdic.LoadBankReferenceData$.delayedEndpoint$fdic$LoadBankReferenceData(LoadBankReferenceData.scala:20)
at fdic.LoadBankReferenceData$delayedInit$body.apply(LoadBankReferenceData.scala:12)
at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main.apply(App.scala:76)
at scala.App$$anonfun$main.apply(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:381)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.App$class.main(App.scala:76)
at fdic.LoadBankReferenceData$.main(LoadBankReferenceData.scala:12)
at fdic.LoadBankReferenceData.main(LoadBankReferenceData.scala)
using null
=> FAILED
这是代码(在 Scala 中):
Class.forName("com.sap.db.jdbc.Driver");
val conn = DriverManager.getConnection("jdbc:sap://192.168.1.85:39015/",
"SYSTEM", "xxxxx");
更新
下面的代码抛出完全相同的错误(这次在 Java 中以排除 Scala 问题):
Class.forName("com.sap.db.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:sap://192.168.1.85:39015/?databaseName=VBK_BANK_0001",
"VBK_BANK_0001", "xxxxxxx");
我得到同样的错误:[Cannot connect to host 192.168.1.85:39015 [Connection refused: connect], -813.]
在椭圆中:
您似乎试图连接到 HANA 的多数据库容器 (MDC) 设置的 SystemDB。由于 SystemDB 很特殊并且在索引服务器进程中没有 运行,因此您将使用不同的端口 (...13) 连接到它。
但是,通常人们会想要连接到租户数据库。为此,jdbc URL 需要包含数据库名称作为参数。 HANA 文档包含这方面的详细信息。
我正在尝试使用 JDBC 连接到 SAP HANA 2.0。我从 Windows.
中安装的 Eclipse 插件中获取了驱动程序ngdbc.jar
问题是,即使我在连接字符串中设置了一个随机 IP 地址,我也总是得到相同的错误 [Connection refused: connect], -813
。
Eclipse 插件完美连接:
可能是什么问题?这是 ngdbc.jar
跟踪:
ClassLoader: sun.misc.Launcher$AppClassLoader@73d16e93
Process-ID: 3140
package package com.sap.db.jdbc, Java Platform API Specification, version 1.6, SAP HANA JDBC Driver, SAP SE, 2.0.14-2d2417a0b831eafc24c4a6d30206b73d62a858e5 on Java 1.8.0_131
---- Thread 3e3abc88 main Timestamp: 2017-07-11 22:47:06.243
new Connection 'jdbc:sap://192.168.1.85:39015/'
user=SYSTEM
password=***
HOSTLIST: [192.168.1.85:39015,]
new RTEException: SQLSTART_REQUIRED(5) -813 Cannot connect to host 192.168.1.85:39015 [Connection refused: connect], -813.
whereAmIjava.lang.Throwable
at com.sap.db.jdbc.trace.Tracer.whereAmI(Tracer.java:333)
at com.sap.db.jdbc.exceptions.RTEException.<init>(RTEException.java:46)
at com.sap.db.jdbc.exceptions.RTEException.<init>(RTEException.java:23)
at com.sap.db.jdbc.Session._openSocket(Session.java:1005)
at com.sap.db.jdbc.Session.openSocket(Session.java:416)
at com.sap.db.jdbc.Session.open(Session.java:915)
at com.sap.db.jdbc.Topology.getSession(Topology.java:214)
at com.sap.db.jdbc.Driver._connect(Driver.java:814)
at com.sap.db.jdbc.Driver.connect(Driver.java:159)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at fdic.LoadBankReferenceData$.delayedEndpoint$fdic$LoadBankReferenceData(LoadBankReferenceData.scala:20)
at fdic.LoadBankReferenceData$delayedInit$body.apply(LoadBankReferenceData.scala:12)
at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main.apply(App.scala:76)
at scala.App$$anonfun$main.apply(App.scala:76)
at scala.collection.immutable.List.foreach(List.scala:381)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)
at scala.App$class.main(App.scala:76)
at fdic.LoadBankReferenceData$.main(LoadBankReferenceData.scala:12)
at fdic.LoadBankReferenceData.main(LoadBankReferenceData.scala)
using null
=> FAILED
这是代码(在 Scala 中):
Class.forName("com.sap.db.jdbc.Driver");
val conn = DriverManager.getConnection("jdbc:sap://192.168.1.85:39015/",
"SYSTEM", "xxxxx");
更新
下面的代码抛出完全相同的错误(这次在 Java 中以排除 Scala 问题):
Class.forName("com.sap.db.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:sap://192.168.1.85:39015/?databaseName=VBK_BANK_0001",
"VBK_BANK_0001", "xxxxxxx");
我得到同样的错误:[Cannot connect to host 192.168.1.85:39015 [Connection refused: connect], -813.]
在椭圆中:
您似乎试图连接到 HANA 的多数据库容器 (MDC) 设置的 SystemDB。由于 SystemDB 很特殊并且在索引服务器进程中没有 运行,因此您将使用不同的端口 (...13) 连接到它。 但是,通常人们会想要连接到租户数据库。为此,jdbc URL 需要包含数据库名称作为参数。 HANA 文档包含这方面的详细信息。