"不支持嵌套交易"使用MySQL服务器池> = 5.7.17

时间:2018-04-16 10:50:49

标签: mysql asp.net-core

开始 - 我猜 - 在从Developer Machine到Server Machine重新配置MySQL Server 5.7.17之后,我们的Web应用程序(.NET Core 1.2)停止了工作。每当我们尝试启动一个事务时,MySQL都会抛出一个异常"不支持嵌套事务。"我们使用连接池,关闭任何连接时没有处于打开状态的事务。实际上,我们在MySQL Server Community 5.7.17和Connector 7.0.6-IR31上使用了它超过2年,没有任何问题。

我将问题简化为即使在简单查询后服务器状态进入" InTransaction"。关闭此连接(返回到连接池)并在之后重新打开并启动事务会抛出异常。

将两台服务器更新为5.7.21,将Connector更新为8.0.10rc无法解决问题。

使用5.5.57(MariaDB)解决了这个问题,但是,由于这个问题,我们不想降级我们的服务器。

    public static IDbConnection GetConnection()
    {
        var connection = new MySqlConnection(Settings.ConnectionString);
        connection.Open();
        return connection;
    }

    using (var dbConnection = GetConnection())
    {
        var list = dbConnection.Query("select * from cf_genre", null).ToList();
    }

    using (var dbConnection = GetConnection())
    {
         using (var transaction = dbConnection.BeginTransaction())
         {
              // Not reached! An exception is thrown: "Nested transactions are not supported."
         }
    }

0 个答案:

没有答案