我无法在此处粘贴整个脚本,但我正在解释情况。如果您曾经有泄漏的数据库连接,那么您就会知道我在说什么。
DBI
我有一个 R 脚本文件,它有许多使用& RMySQL
R 包使用数据库连接的函数(大约 50 个) 。我通过 4 或 5 个函数合并了所有数据库访问。我on.exit(dbDisconnect(db))
在每个使用 a 的函数中dbConnect
使用。
我发现仅在加载此脚本时使用source("dbscripts.R")
会导致一个数据库连接泄漏。我在运行命令时看到了这个
dbListConnections(MySQL())
[[1]] MySQL连接:0,607>
[[2]] MySQL连接:0,608>
[[3]] MySQL连接:0,609>
[[4]] MySQL连接:0,610>
我每次都会看到一个多数据库连接添加到列表中。这很快达到 16,我的脚本停止工作。
问题是,我无法找出导致泄漏的代码行。我检查dbConnect
了代码中的每一行。它们都在函数内dbConnect
,在主代码之外没有发生。
那么,为什么会发生连接泄漏?