mysqljs/mysql

Auto-rollback of released connections without transaction commit

Open

#1,116 创建于 2015年6月3日

在 GitHub 查看
 (8 评论) (0 反应) (0 负责人)JavaScript (18,137 star) (2,502 fork)batch import
featurehelp wanted

描述

When using a connection pool, releasing a connection should have a similar effect to ending a connection (aside from simply keeping the connection open). For starters, it would be extremely convenient to know if a connection has started a transaction (i.e. a boolean flag for isInTransaction) which would provide the following benefits:

  1. Passing an existing connection to child functions allows the child functions to operate independently and decide when/whether transactions need to be started (ability to shorten transaction lifecycles to reduce potential deadlocks) vs. managing this in parent code.
  2. If connections are released without making a call to "Connection.commit", they should really auto-rollback the transaction (just like a call to connection.end would do). This ensures that when the connection is re-used, the true effect is that the connection operates like a new connection (rather than having strange side-effects where existing transactions might cause deadlock).

贡献者指南

Auto-rollback of released connections without transaction commit · mysqljs/mysql#1116 | Good First Issue