博客
关于我
工作流模块Jar包启动报错:liquibase - Waiting for changelog lock....
阅读量:824 次
发布时间:2019-03-24

本文共 1250 字,大约阅读时间需要 4 分钟。

工作流模块Jar包启动报错问题分析及解决方案

1. 工作流模块Jar包启动报错

近期在工作流模块部署时,出现了以下错误日志:

2021-02-14 13:45:13.735 [main] INFO  liquibase - Waiting for changelog lock....

多个类似的日志提示,系统正在尝试获取数据库的锁定记录,但网络中出现卡顿或程序未正常结束,导致锁定状态未能及时解除。


2.故障原因分析

经过排查发现,主要问题出现在数据库层面。具体表现为:

  • 工作流相关的表字段完全锁定,导致后续操作无法继续。
  • 可能是程序生命周期未正常终止,导致锁定状态未解除。

3 表锁定异常及解决方法

根据经验,这类异常通常与数据库的事务锁有关,需通过查询锁定状态确保锁定记录清理完毕。以下是具体操作方法:

  • 执行以下SQL命令查看锁定状态:
  • SELECT * FROM DATABASECHANGELOGLOCK;
    1. 检查锁定记录,找到对应的锁定ID(如id=1),执行以下语句解除锁定:
    2. UPDATE DATABASECHANGELOGLOCK SET locked=0, lockgranted=null, lockedby=null WHERE id=1;

      注意:上述操作需根据实际情况调整锁定的ID和表结构,不能擅自修改未知ID的锁定记录,否则可能引发更严重的数据库问题。


      4 经验总结及预防建议

      在日常开发过程中,建议采取以下预防措施:

      1. 定期进行pipeline清理

      • 在部署流程结束后,进入机器人终止命令(/<bot> shutdown)以确保程序生命周期正常结束。
      • 定期清理旧的数据库锁定记录,避免积累潜在问题。

      2. 及时处理锁定异常

      • 若在锁定过程中遇到网络中断或异常终止,及时重新启动程序并检查锁定状态。-拓扑排序

      3. 配置合理事务隔离级别

      • 根据业务需求合理设置事务隔离级别,避免长时间锁定状态导致的严重性能问题。

      5. 相关表结构清理方法

      如表结构中涉及多个锁定记录,需逐一检查并进行处理。具体操作可参考以下步骤:

      1.连接数据库终端,执行如下命令循环清理锁定记录:

      -- 列出所有锁定记录SELECT * FROM DATABASECHANGELOGLOCK;

      2.对每个锁定记录执行解除锁定操作:

      -- 示例:假设id=1为需要清理的记录UPDATE DATABASECHANGELOGLOCK SET locked=0, lockgranted=null, lockedby=null WHERE id=1;
      1. 所有锁定记录处理完毕后,重新启动工作流服务。

      2. 6. 合理设计数据库连接池

        为避免类似问题再次发生,建议在数据库连接池层面设置超时时间,确保在短时间内能自动回收未完成事务的连接。


        7. 系统响应优化

        根据系统负载情况,适当优化前台处理逻辑,减少不必要的异步操作,提高系统的吞吐量和稳定性。


        通过以上方法,可以有效解决数据库锁定异常问题,确保工作流模块平稳运行。

    转载地址:http://hdgkk.baihongyu.com/

    你可能感兴趣的文章
    mariadb multi-source replication(mariadb多主复制)
    查看>>
    MaterialForm对tab页进行隐藏
    查看>>
    Member var and Static var.
    查看>>
    memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
    查看>>
    memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
    查看>>
    Memcached:Node.js 高性能缓存解决方案
    查看>>
    memcache、redis原理对比
    查看>>
    memset初始化高维数组为-1/0
    查看>>
    Metasploit CGI网关接口渗透测试实战
    查看>>
    Metasploit Web服务器渗透测试实战
    查看>>
    Moment.js常见用法总结
    查看>>
    MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
    查看>>
    mxGraph改变图形大小重置overlay位置
    查看>>
    MongoDB学习笔记(8)--索引及优化索引
    查看>>
    MQTT工作笔记0009---订阅主题和订阅确认
    查看>>
    ms sql server 2008 sp2更新异常
    查看>>
    MS UC 2013-0-Prepare Tool
    查看>>
    msbuild发布web应用程序
    查看>>
    MSB与LSB
    查看>>
    MSCRM调用外部JS文件
    查看>>