1

我从 mysql 数据库中收到此错误

error connecting: Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.

我有一个网站和控制台应用程序与数据库通信,但我当然没有 100 个并发连接!我做了一个 showprocesslist 查询,发现大约 10 个连接,命令为 SLEEP,时间约为 16000 秒。没有100个连接。

我正在使用亚音速数据提供程序与数据库对话,我相信这会立即关闭数据库连接并且不会让它们挂起,所以这不是罪魁祸首。

我重新启动了 mysql 服务器和与数据库对话的控制台应用程序,它似乎工作正常,但我自然不能让控制台/网站应用程序像这样崩溃。查看错误日志,此错误似乎即将出现

请您就我能做的任何事情提出建议,以了解发生了什么以及如何解决它

编辑:我对此进行了更多研究,看来这是亚音速/mysql问题。我已经通过在 finally 块中关闭连接尝试了以下链接中推荐的修复方法,但没有关闭连接...

   Dim sp As StoredProcedure = SPs.GetLastGPSDataForAllVehicles(customerID)
            Dim reader As IDataReader
            Try
                reader = sp.GetReader
                MyBase.Load(reader)
            Catch ex As Exception
            Finally
                reader.Dispose()
                reader = Nothing
                sp.Command.ToDbCommand().Connection.Close()

            End Try

我不知道如何强制关闭连接。

多谢

4

0 回答 0