首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAP DBTech JDBC:无法连接到jdbc:sap://192.168.33.114:39015/ [SAP DBTech JDBC:[2]:一般错误: SYSTEMDB未连接]

SAP DBTech JDBC:无法连接到jdbc:sap://192.168.33.114:39015/ [SAP DBTech JDBC:[2]:一般错误: SYSTEMDB未连接]
EN

Stack Overflow用户
提问于 2017-08-10 07:48:18
回答 1查看 7.9K关注 0票数 2

当我连接到我的sap数据库时,它抛出在异常下面,但是如果我没有指定任何数据库名,那么它默认情况下连接到sap hana.的HEX数据库。

com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: Cannot connect to jdbc:sap://192.168.33.114:39015/ [SAP DBTech JDBC: [2]: general error: SYSTEMDB not connected]

这是虚拟代码

代码语言:javascript
复制
import java.sql.Connection;
import java.sql.ResultSet;

public class SapConnection {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try {
        Class.forName("com.sap.db.jdbc.Driver");

        String url = "jdbc:sap://192.168.33.114:39015/?databaseName=abcd";
        String user = "abc";
        String password = "xyz";

        Connection cn = java.sql.DriverManager.getConnection(url, user, password);

        // ... do whatever with the results ...
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2017-08-14 00:27:41

当连接到MDC租户DB时,要连接的端口不是30..15,而是30.13,因为连接与侦听30..13端口的nameserver进程相反。

将连接字符串更改为

代码语言:javascript
复制
String url = "jdbc:sap://192.168.33.114:39013/?databaseName=abcd";

应该让它发挥作用。

编辑

连接的另一种方法是避免完全提供端口号,并让HANA自己显示这些细节。在这种情况下,仅仅提供instanceNumberdatabaseName就足够了。

示例(DB运行在主机skullbox.lab.cat5上):

代码语言:javascript
复制
> java -jar ngdbc.jar -u <username>,<password> -n skullbox.lab.cat5 -d S20 -i 
20
Connected.
|                             |
-------------------------------
| 2017-08-15 17:04:53.0730000 |
1 rows.

对应的JDBC如下所示:

代码语言:javascript
复制
 jdbc:sap://skullbox.lab.cat5?databaseName=S20&instanceNumber=20
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45607542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档