我有一个带有 quartz 调度程序的 Spring 应用程序,用于批处理。过去 4 年一直运行良好。有一个批处理每 1 分钟运行一次。但从最近几天开始,当批处理尝试获取一些数据时,我们突然得到 org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Could not open connection
此批处理全天运行,但有时会出现此异常,并且所有其他批处理无法连接到 MySQL。因此,我们正在重新启动该应用程序,并且它工作正常。
数据源配置
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url">
<value>${DATABASE_URL}</value>
</property>
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="username">
<value>${DATABASE_USER}</value>
</property>
<property name="password">
<value>${DATABASE_PASSWORD}</value>
</property>
</bean>
session 工厂连接池配置
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.enable_lazy_load_no_trans">true</prop>
<!-- Configurations specific to c3p0 connection pooling -->
<prop key="hibernate.c3p0.acquire_increment">5</prop>
<prop key="hibernate.c3p0.idle_test_period">1800</prop>
<prop key="hibernate.c3p0.max_size">600</prop>
<prop key="hibernate.c3p0.max_statements">50</prop>
<prop key="hibernate.c3p0.min_size">5</prop>
<prop key="hibernate.c3p0.timeout">1800</prop>
</props>
</property>
<property name="annotatedClasses">
<list> .... </list>
</property>
</bean>
最佳答案
可能是运行数据库服务器的 mysql 的问题。
更改数据库服务器中的 mysql 配置
在 mysql.cnf 的 [mysqld] 部分下添加绑定(bind)地址
bind-address=your_spring_application_ip
同时更改 mysql 用户的访问主机。 在 mysql 中运行以下查询
update mysql.user set host='%' where user='your_username';
flush privileges;
然后重启mysql服务
sudo systemctl restart mysql
关于java - MySQL : EOFException: Can not read response from server. 预计读取 4 个字节,在连接意外丢失之前读取了 0 个字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55689810/