回滚期间通信链接失败,通过Springframework使用Quartz

问题描述 投票:0回答:1

获取异常rollback()期间通信链接失败,我们将quartz 2.2.1与org.springframework.scheduling一起使用。quartz.SchedulerFactoryBean

请查找例外org.springframework.scheduling.quartz.LocalDataSourceJobStore无法回滚jdbc连接。 rollback()期间通信链接失败。交易解决方案未知。com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:在rollback()期间通信链接失败。交易解决方案未知。

[wait_timeout 600秒时,在30分钟到1小时后得到这些异常。当我使用默认的wait_timeout 28800秒时,因此在8到10小时后得到此异常。

尝试autoReconnect = true,问题仍然存在。

mysql quartz-scheduler spring-scheduled
1个回答
0
投票

就我而言,当尝试从同一主机连接到在Ubuntu主机VM上的容器内运行的mysql-server时,遇到了此错误。

示例:如果我的虚拟机名称为abc.company.com,则以下jdbc URL 无法使用

jdbc:mysql://abc.company.com:3306/dbname

上面的jdbc url在xyz.company.com之类的其他计算机上也可以正常工作,但在abc.company.com上则不能。

在下面的jdbc URL上,将在abc.company.com计算机上正常工作]:

jdbc:mysql://localhost:3306/geowarehouse

这导致我检查了/etc/hosts文件。

/etc/hosts中添加以下行解决了此问题:

127.0.1.1 abc.company.com abc

这似乎是一个操作系统错误,需要我们在某些Ubuntu版本中添加它们。参考:https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_hostname_resolution

[在尝试此操作之前,我尝试了所有其他解决方案,例如GRANT ALL..,更改了mysql.cnf中的bind-address行。在这种情况下,它们都没有帮助我。

© www.soinside.com 2019 - 2024. All rights reserved.