1

簡単な質問:RODBC接続を使用してバッチモードで複数のRインスタンスを並列に実行していますが、ランダムに1つ(または複数)のインスタンスが失敗しています。戻ってインスタンスを1つずつ実行すると、すべて成功します。ログにエラーはありません。問題がどこから来ているのかを正確に推測しようとしています。私の主な仮説は、メモリヒープのトップに到達していて、インスタンスが失敗している、または(おそらく)RODCB接続で何らかのタイムアウトが発生しているというものです。助言がありますか?

ありがとう、

ジム

4

1 に答える 1

2

エラーが表示されない理由は明らかではありません。おそらく試してみてくださいoptions(error = recover)

複数のデータベース接続を使用すると、次のエラーが発生していました。

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

新しいクエリを発行する前に、次の行を発行して開いている接続を閉じることで、このエラーを回避します。

lapply(dbListConnections(MySQL()), dbDisconnect)

このコードはR ヘルプ リストから取得しました。


更新: 私の協力者の 1 人が、 、 、 、 などのデータベースのやり取りを容易にする一連の関数を作成しました。これは次のように使用できます。db.condb.opendb.closedb.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)
于 2011-07-14T23:06:03.983 に答える