SQL Server Compact 4.0(製品バージョン:4.0.8876.1)のDB(SDFファイル)をNAS上に配置し、複数のクライアントPCからDBにアクセスすると、SqlCeConnection.Openに時間(初回だけではなくその後のオープンも含めて、オープン1回あたり3秒から8秒程度)がかかります。この発生頻度は、アクセスの多重度に比例している模様ですが、1台のPCだけでNAS上のDBにアクセスした時も発生する時があります。
原因(なぜSqlCeConnection.Openに時間がかかるのか?)と回避策(どうすればOpenで時間がかかからないようにできるのか?)について、何卒、ご教示をお願いします。
なお、お客様環境では管理者権限を利用できません。このため、各PC毎に、NAS上のSDFファイルに対するシンボリックリンクを作成し、シンボリックリンクファイルにアクセスする形態は取れません。
また、当該現象を回避すべく、下記点を試みてみましたが、効果がない(オープン時間に3秒から8秒程度かかる)状態でした。
・全PC(すべてWin10)のIEの設定をプロキシ設定なし(自動プロキシ(自動検出、セットアップスクリプトの使用)はなし、手動プロキシ設定なし)にしても
・全PC(すべてWin10)のIEの詳細設定にて「サーバの証明書失効を確認する」のチェックボックスをOFFにしても
・全PC(すべてWin10)のSDFファイルのパスとして、 \\始まりのパスを指定しても、ネットワークドライブを指定したパスを指定しても
・全PC(すべてWin10)のオープン時のモードを「Mode = ReadWrite 」にしても
・SDFファイルをWin10上で新規作成したものをNASに配置し、すべてWin10のPCからアクセスしても
(補足事項)
・オープン時のモードはExclusiveです。
アプリは、別途、ロックファイルを用いて排他制御を実装しています。ロックを取得できたPCだけが、NAS上のDBに対しSqlCeConnectionを取得し、Openが実行できるようにしています。そして、Closeを実行した後はSqlCeConnectionもDisposeし、ロックを解放しています。
・環境は、NAS(TeraStation)⇔スイッチングハブ⇔Win10PC×4台 です。
よろしくお願いします。