SQL Express 2008 LINQ to SQL書き込みを順番にコミットしませんか?
-
05-07-2019 - |
質問
最近、ステートマシンの現在の状態を保存するためにdevとtestで(標準バージョンの代わりに)SQL Express 2008の使用を開始したイベント駆動型アプリがあります。 SQL Expressに移行した後、データベースに書き込む順序(LINQ to SQLを使用)と SQL Express Profiler は、データベースに入るデータを報告します。
Log4Netを使用してデータを記録します。ログエントリは、着信イベントが正しい順序で発生したことを示し、正しい順序で処理する必要があります 。また、SQL Expressのプロファイリング時に、データが順不同で書き込まれていることがわかりました。結果は、後続のイベントが入ったとき(LINQデータコンテキストで SubmitChanges()
を呼び出してから約500ms)、DBの書き込みが(まだ?)コミットされていないため、状態モデルは無効な状態であり、適切に移行しないでください。最終結果はカオスです。
それが価値があることについては、SQL Server 2008 Standardにはこれが表示されないので、これがSQL Expressの問題かどうか疑問に思っています。これと同様の問題を見ましたか?
プロファイラーの問題ではないと想定しています。これは、実際にはいくつかの状態遷移に伴う遷移の問題があるため、プロファイラーは観測結果と一致しているように見えるためです。
よろしく、
アンドリューマシューズ
解決
正しい順序で処理したと言うとき、LINQ to SQLに何かを行うように指示した順序ですか?その理由は、LINQ to SQLが内部的に操作を並べ替えるためです。
何をログに記録していますか? LINQ to SQLデータコンテキストログプロパティ?