元はSqlCeを使っているシステムだった。
それをSqliteに乗り換えようと先週あたりから着手している。
複数システムで使っていて順に乗り換えているのだが何故だか一つのシステムで引っかかった。
構成としては、Windowsサービスがあり、
Windowsサービスが順に3つのバッチを上げるといった形のものだ。
で、個々のバッチはエラーを出さないのだがなぜかWindowsサービスがエラーを出していたので首をかしげていた。
unable to open database file
でググってみると大概はディレクトリのアクセス権に関するものだった。
そこは問題ない。問題あればそもそもバッチも動いてないだろう。
エラー箇所が一か所だったのでそこを見てみる。
ん?Openした後にこのコード入ったらまたOpenするじゃん
と。と言うわけでそこのコードは修正した。
そもそもConnectionをOpenした段階でファイルがなければ作成されるわけであらかじめOpenしておく必要はなかった。
※閉じればいいんだけど
が、しかし
相変わらず例外は出た。
最終的には複数個所でOpenしているのが問題で、
更にそれを閉じていなかったのが恐らく原因だった。
※恐らくと言うのはSystem.Data.SqliteやSystem.Data.SqlserverCeのコードを読んだわけではないので確証がない
たぶんSqlCeはよろしくやってくれていたのだろう。
しかしSqliteはそこは面倒見てくれなかった、そういう事なんじゃないかと予想。
最終的にはConnection.Openの前にStateを見てOpenでなければOpenするという方法でとりあえず回避した。
本当は都度都度Closeしたほうが良いのだろうけれど。
登録:
コメントの投稿 (Atom)
壊れたテレビもメルカリで売れる
先々月に壊れたテレビ。処分するにも金がかかる。 液晶以外は大丈夫そうとのことでメルカリに出したら即売れた。おそらく1時間以内。 ひょっとして安すぎた?とか思いつつも処分手数料が浮いたばかりか利益も出た。 問題になるのは配送ですが、メルカリには 梱包・発送たのメル便 というのがあ...
-
自社サービスのWEBサーバーが先日落ちました。 厳密に言うとWEBサーバーが乗っている母艦(WEBサーバーはVM)のネットワークが切れて接続ができなくなった。 いずれにせよWEBサーバーにはその時点でアクセスできないわけでサービスが一定時間止まった。 時間としてはさほど長...
-
元はSqlCeを使っているシステムだった。 それをSqliteに乗り換えようと先週あたりから着手している。 複数システムで使っていて順に乗り換えているのだが何故だか一つのシステムで引っかかった。 構成としては、Windowsサービスがあり、 Windowsサービスが順...
-
リアルタイムでストリームをキャプチャしつつ、 一定秒数ごとに切り出す必要があったので色々調べた結果、以下の方法でできることが判明。 ※Windows環境 まず以下のURLからFFmpegバイナリをダウンロード http://ffmpeg.zeranoe.com/buil...
0 件のコメント:
コメントを投稿