mariadb SQL错误:-1,SQL状态:08000不刷新记录

5ktev3wc  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(577)

技术背景:Groovy 2.5.6使用Java 8. MariaDb数据库。
背景:我有一个报告系统。不同的报告被添加到数据库表中。一个作业每15分钟执行一次,并将报告从“新建”状态置于“正在进行”状态。然后,一旦作业成功执行,报告将更新为“完成”状态。如果发生任何异常,报告将置于“错误”状态。
问题是,一旦作业执行,报告就无法保存。在日志中,我可以看到我得到了SQL Error: -1, SQLState: 08000(conn=64796) Socket error。这向我表明数据库存在连接问题。这后面是SQL Error: 1220, SQLState: 08000
数据库连接出现问题,该连接已关闭。应用程序无法生成报告和更新记录。
我将报告再次置于“新建”状态,并让作业重新运行。同样的问题再次出现。因此,我能够复制它。我实际上没有明确的方法来进行故障排除。
如何解决这个错误?这是否与Java 8有关?

k7fdbhmy

k7fdbhmy1#

这是刚开始发生的吗?之前是如何保持连接活动的?一种方法是:

dataSource {
    pooled = true
    driverClassName = "com.mysql.jdbc.Driver"
    username = "myuser"
    password = "mypassword"
    url = "jdbc:mysql://localhost/mydatabase"
    properties {
        // Set validation query to keep connection alive
        validationQuery = "SELECT 1"
        testOnBorrow = true
        testWhileIdle = true
        testOnReturn = false
        validationInterval = 30000
        timeBetweenEvictionRunsMillis = 5000
    }
}

在本例中,validationQuery设置为“SELECT 1”,这是一个简单的查询,将始终返回结果。此查询将每30秒执行一次(由validationInterval指定),以确保连接仍然处于活动状态。

相关问题