【问题标题】:Connection issue while connecting to HANA DB via JDBC通过 JDBC 连接到 HANA DB 时出现连接问题
【发布时间】:2017-03-28 11:10:34
【问题描述】:

我正在通过 ngdbc.jar 连接 HANA DB。连接正确,但在运行查询 3-4 次后,与 HANA 数据库的连接丢失。当我再次重新启动我的 JAVA 服务器时,它可以工作 3-4 次。谁能帮忙?

错误信息-

WARN  [org.hibernate.util.JDBCExceptionReporter] (http--0.0.0.0-8080-6) SQL Error: -708, SQLState: 08006
 ERROR [org.hibernate.util.JDBCExceptionReporter] (http--0.0.0.0-8080-6) Data receive failed [Connection reset].
 INFO  [com.ultimatix.controller.MetricsController] (http--0.0.0.0-8080-6) context setMonthFreezeDateorg.hibernate.exception.JDBCConnectionException: could not execute query
 ERROR [org.hibernate.transaction.JDBCTransaction] (http--0.0.0.0-8080-6) JDBC rollback failed: com.sap.db.jdbc.exceptions.jdbc40.SQLNonTransientConnectionException: Connection to database server lost; check server and network status [System error: Socket closed]

【问题讨论】:

标签: java jdbc spring-jdbc hana


【解决方案1】:

根据您的日志,我可以看到您正在使用 Hibernate。

你能详细说明一下你的堆栈吗?

正如@RC 所说,如果这是您在“JAVA”服务器中执行的操作,则应该考虑连接池而不是打开直接连接。

可能是您的连接打开时间过长而超时。

这些都是猜测,直到您可以分享任何日志或示例代码。

还有一点,仅与 ngjdbc 驱动程序有关,有一个“重新连接”连接属性,默认设置为 false。

问候

【讨论】:

  • 我在执行每个查询之前打开连接,并在查询执行后立即在 finally 块中关闭它。 session=this.sessionFactory.openSession();并在执行 session.flush() 之后; session.clear(); session.close();
  • 您好,根据方法的名称,我猜您正在更新 SAP HANA 中的表。但是,您没有说在关闭刷新、清除和提交之前是否提交了更改。您是否尝试过运行一系列仅选择语句?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 2021-06-18
  • 2012-05-09
  • 2011-10-17
  • 2020-10-19
  • 2013-10-29
  • 1970-01-01
相关资源
最近更新 更多