トップ «前の日記(2017/10/20) 最新 次の日記(2017/11/12)» 編集

kaztomo日記


2017/10/23 [長年日記]

_ [SQL]sqlite3 でどんどん溜め込んでいるファイルへのアクセスで "database is locked"

Tick STREAM データを取得して各足を作成し sqlite3 DB へ保存しているけど、 そのファイルに対して別のシェルスクリプトから”直近の1分足" を読み込もうとしたら "database is locked" エラーが発生している (+_+) 頻度は10日くらいに1回くらいかな。

色々とググってみたところ、原因は「書き込み処理中に別処理の要求が来たけど timeout した」 と推測される。

シェルスクリプトから読み込みを掛けているので、こちらの timeout を引き伸ばせないかと 色々とググって見たところ、sqlite3 のコマンド引数で指定できそうだ。(!_!)

とりあえずスクリプトに仕込んでみた。timeout はミリ秒指定。

sqlite3 -cmd ".timeout 3000" -column USDJPYm1.db 'select date,time,close from hd where id=(select max(rowid) from hd)'

これでしばらく様子見してみよう (^-^)/


参考にさせていただいたサイト: