CO-CONV サポート

文章番号17-004

CO-Store DB のトランザクションログが肥大化し SQL エラーとなる場合の対処

公開
2017年03月28日
対象製品
  • CO-Store 2.5
  • CO-Store 3.0.1~CO-Store 3.0.2

概要

CO-Store の 3.0.4.0 より前のバージョンを長期間利用時に CO-Store DB のトランザクションログが肥大化したことにより、タスク実行時などの SQL 操作の際にエラーとなることがあります。

詳細

CO-Store 3.0.4.0 より前のバージョンにおいて、タスク実行時などに以下のようなメッセージのエラーが発生し、CO-Store の主な処理ができなくなることがあります(端末の起動には影響ありません)。

System.Data.SqlClient.SqlException (0x80131904): トランザクション (プロセス ID XX) が、ロック 個のリソースで他のプロセスとデッドロックして、このトランザクションがそのデッドロックの対象となりました。トランザクションを再実行してください。

これは CO-Store DB のトランザクションログが肥大化し、ファイルサイズの拡張がタイムアウトした場合に発生するエラーです。CO-Store 3.0.4.0 より前のバージョンにおいては DB 操作の頻度が高すぎたためトランザクションログのファイルサイズが肥大化し、このようなエラーとなることがありました。

この問題は、CO-Store 3.0.4.0 にて発生しにくいよう修正されましたが、更新を行う場合においても以下で示しているトランザクションログの圧縮が必要になります。

対策

CO-Store DB のトランザクションログが肥大化したことが原因なので、トランザクションログを圧縮することで問題は解消できます。以下で紹介されている手順にてトランザクションログを圧縮してください。エラーが発生していない場合も、Microsoft SQL Server Management Studio にて CO-Store 用データベースのプロパティ>「ファイル」タブにて確認できる co-store_log のサイズが目安として 1GB 以上になっている場合は圧縮することを推奨します。

https://blogs.msdn.microsoft.com/jpsql/2013/07/29/howto-management-studio-ldf/

また、CO-Store 3.0.4.0 以降では CO-Store DB のトランザクションログが肥大化しにくいよう改善されているので、更新することを推奨します。

更新モジュールのダウンロードはこちら

補足

CO-Store DB の完全バックアップを行っていないときには、この現象が発生することはありません。