SQL错误:0,SQLState:08S01使用Hibernate且没有C3P0的通信链接失败错误

时间:2019-09-02 13:32:44

标签: mysql hibernate spring-boot

我们正在观察这些错误,其中有两台服务器。两者都与主RDS数据库对话。 TPS值最近已上升并接近50 TPS。 应用程序服务器上的CPU使用率约为40%。

我收到很多这样的错误-

2019-09-02 00:00:12,714 65086940 [XNIO-3 task-18] INFO  c.c.p.c.s.CustomRemoteTokenService [CustomRemoteTokenService.java:57] - API : service/api/path/profile/summary property api : system;;
2019-09-02 00:00:12,763 65086989 [XNIO-3 task-18] WARN  o.h.e.jdbc.spi.SqlExceptionHelper [SqlExceptionHelper.java:127] - SQL Error: 0, SQLState: 08S01
2019-09-02 00:00:12,764 65086990 [XNIO-3 task-18] ERROR o.h.e.jdbc.spi.SqlExceptionHelper [SqlExceptionHelper.java:129] - Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
2019-09-02 00:00:12,765 65086991 [XNIO-3 task-18] ERROR io.undertow.request [LoggingExceptionHandler.java:80] - UT005023: Exception handling request to /service/path/to/profile/summary
java.lang.NoClassDefFoundError: org/hibernate/internal/util/JdbcExceptionHelper

其中一台服务器几乎在5分钟内达到了3k,而今天另一台服务器则为0。有趣的是,这些错误通常在其中一台应用程序服务器上很高,而预期两者都可以处理类似的负载。

Db配置值为-

show global variables like "%timeout%"
    -> ;
+-----------------------------+----------+
| Variable_name               | Value    |
+-----------------------------+----------+
| connect_timeout             | 10       |
| delayed_insert_timeout      | 300      |
| have_statement_timeout      | YES      |
| innodb_flush_log_at_timeout | 1        |
| innodb_lock_wait_timeout    | 50       |
| innodb_rollback_on_timeout  | OFF      |
| interactive_timeout         | 28800    |
| lock_wait_timeout           | 31536000 |
| net_read_timeout            | 30       |
| net_write_timeout           | 60       |
| rpl_stop_slave_timeout      | 31536000 |
| slave_net_timeout           | 60       |
| wait_timeout                | 28800    |
+-----------------------------+----------+

我也检查了这个问题Database Connection to MySQL times out even after setting c3p0.testConnectionOnCheckout=true,但是由于我没有定义所有的休眠配置,因此我不确定是否需要对其进行调整。

我在persistence.xml文件中仅定义了以下内容-

<property name="hibernate.show_sql" value="true"/>
      <property name="hibernate.format_sql" value="true"/>
      <property name="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy"/>
      <property name="hibernate.connection.charSet" value="UTF-8"/>

                                  

0 个答案:

没有答案