zoukankan      html  css  js  c++  java
  • 数据库锁表导致连接池满问题

    1.查看被锁表

    并发时,操作了同一笔数据,导致锁表。在业务层面添加并发锁,避免这种情况。

    show full processlist 
    

      

    2.查看被锁的表

    show OPEN TABLES where In_use > 0;
    

      

    3.杀死被锁进程

    kill 4361901
    

      

     4.为什么会出现锁表问题,怎么预防

    业务场景:在合同签发流程中,业务流程比较长包含 参数校验,调用第三方合同签发,调用上传阿里OSS,重写PDF,调用回调通知业务方,保存相关业务数据,所有的业务操作都在同一个事务处理中。

    这里任何一个环节出现hold住的情况都有可能导致连接不释放的问题,特别是调用第三方服务时。

    处理:事务尽可能的短,事务只做单纯的数据库存储,修改逻辑,调用第三方及其他业务放在事务外处理。

  • 相关阅读:
    Map集合的四种遍历
    java 请求 google translate
    Linux 内核初级管理
    Linux GRUB
    Linux 系统启动流程
    Linux 任务计划 crontab
    Linux 进程管理工具
    Linux sudo实作
    Linux 进程管理
    Linux 网络配置命令:ip、ss
  • 原文地址:https://www.cnblogs.com/yun965861480/p/10518220.html
Copyright © 2011-2022 走看看