2011-07-14 17 views
1

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

おかげで、

ジム

+0

エラーメッセージは何ですか?どのタイプのRDBMSに接続していますか? – NPE

+0

転倒する前にいくつのインスタンスを実行する必要がありますか? 2? 1000?それが転倒した時を正確に見るために追加のロギングを追加できますか? –

+1

オープンレベルの接続には、OSレベルとRレベルの両方に制限があります。あなたはそれらを打つことができますか? –

答えて

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 help listから受け取りました。


アップデート:私の協力者の1がsuite of functionsを含む、データベースの相互作用を促進するために作成したdb.condb.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) 
関連する問題