Неудачные экземпляры R + RODBC - PullRequest
1 голос
/ 14 июля 2011

Быстрый вопрос: я запускаю несколько экземпляров R параллельно в пакетном режиме, используя соединение RODBC, и случайно один (или более) из моих экземпляров выходит из строя. Если я возвращаюсь и запускаю экземпляры один за другим, все они успешны. В журнале нет ошибок, и я просто пытаюсь определить, откуда именно возникла проблема. Мои основные гипотезы заключаются в том, что я попадаю на вершину кучи памяти и происходит сбой экземпляра, или (что более вероятно) происходит какое-то время ожидания с подключением RODCB. Есть предложения?

Спасибо

Jim

1 Ответ

2 голосов
/ 15 июля 2011

Непонятно, почему не отображается ошибка, возможно, вы можете попробовать options(error = recover)

При использовании нескольких подключений к базе данных я получал следующую ошибку:

Error in mysqlExecStatement(conn, statement, ...) : 
  RS-DBI driver: (connection with pending rows, close resultSet before continuing)

Я избегаю этой ошибки, выдав следующую строку, чтобы закрыть все открытые соединения перед отправкой нового запроса:

lapply(dbListConnections(MySQL()), dbDisconnect)

Я взял этот код из списка помощи R .


обновление: один из моих соавторов создал набор функций для облегчения взаимодействия с базой данных, включая db.con, db.open, db.close и db.query, которые можно использовать как:

## load functions
source("https://raw.github.com/PecanProject/pecan/master/db/R/utils.R")

## example
params <- list(dbname = "mydb", username = "myname", password = "!#@?$")
con <- db.open(params)
mydata <- db.query("select * from mytable;")
db.close(con)
...