zoukankan      html  css  js  c++  java
  • 数据库连接池连接异常com.alibaba.druid.pool.GetConnectionTimeoutException

    1、事务没提交

    开启了事务,但是没有关闭事务,导致连接池一直被占用

    事务管理代码:

    @Autowired
        private PlatformTransactionManager platformTransactionManager;
        
        protected TransactionStatus startTx() {
            TransactionStatus transactionStatus = platformTransactionManager
                    .getTransaction(new DefaultTransactionDefinition(
                            TransactionDefinition.PROPAGATION_REQUIRES_NEW));
            return transactionStatus;
        }
        protected void commitTx(TransactionStatus transactionStatus) {
            if(transactionStatus != null){
                platformTransactionManager.commit(transactionStatus);
            }
        }
        protected void rollbackTx(TransactionStatus transactionStatus) {
            if(transactionStatus != null){
                platformTransactionManager.rollback(transactionStatus);
            }
        }

    启动事务没提交

    TransactionStatus transactionStatus = null;
    transactionStatus = startTx();

    应该提交事务,释放连接池

    commitTx(transactionStatus);

    异常回滚事务

    rollbackTx(transactionStatus);

    2、连接没关闭

    打开了数据库连接,没有关闭,连接池被占用

    Connection conn = null;
    ResultSet rs = null;

    conn = jdbcTemplate.getDataSource().getConnection();

    rs = conn.getMetaData().getTables(null, null, table, null);

    应该在完成数据库相关操作后,关闭连接,释放连接池

    if (rs != null) {
           rs.close();
     }
      if (conn != null) {
           conn.close();
     }
  • 相关阅读:
    传球接力
    业务办理
    P2077 红绿灯
    【UR #4】元旦激光炮
    P1939 【模板】矩阵加速(数列)
    #82. 【UR #7】水题生成器
    Visible Trees HDU
    创始人的领导力和合伙人选择
    面向对象笔试题练习一
    MicroPython+北斗+GPS+GPRS:TPYBoardv702短信功能使用说明
  • 原文地址:https://www.cnblogs.com/ouyanxia/p/9952549.html
Copyright © 2011-2022 走看看