Translate

2017年12月30日土曜日

WindowsServerとMSAccessは相性最悪

WindowsServerでフォルダーリダイレクトとオフラインファイルを併せて使用すると、デスクトップなどのファイルがリアルタイムでサーバ上へ保管されるようになります。

これは大変便利で使い勝手の良い機能なのですが、これを有効にしてしまうとMicrosoftAccessは極端に使い辛くなるというデメリットがあります。

MicrosoftAccessは、中小企業向けに作られたデータベース管理システムです。中小企業向けなので、データ通信のパフォーマンス効率はあまり良くありません。言い方を変えると、頻繁にたくさんのデータをやり取りするのです。

MicrosoftAccessのこの仕様を理解しているユーザーは、MicrosoftAccessファイルをローカル領域にコピーしてから使用することがよくあります。ローカル領域とはつまり、デスクトップなどのことです。

しかし、フォルダーリダイレクトとオフラインファイルを併せて使用している場合、デスクトップはサーバ上の領域という扱いになります。デスクトップにMicrosoftAccessファイルをコピーして使用しても、サーバで使用しているのとまったく同じ、遅い動作になってしまうのです。

だからと言って、同期センターでデスクトップをオフラインモードに変更してしまうと、MicrosoftAccessは最適化が出来なくなります。これについては、Microsoftサポートページにもはっきりと「仕様による動作です」と明記されています。
https://support.microsoft.com/ja-jp/help/2834831

もちろん、デスクトップをオンラインで使用するのなら、最適化は問題なく成功します。しかしこれでは前述の処理速度の問題が解決しません。

また、オフラインファイルの機能を使用していると、MicrosoftAccessを開いたり閉じたりした際に「別のユーザーが使用しているため保存できません」という旨のエラーメッセージが出て、そして実際に保存できていないという事象が頻繁に発生するようです。

これらのことを総合的に考えると、MicrosoftAccessを使用するためにはオフラインファイルは使用してはならないという結論に落ち着きます。MicrosoftAccessによるシステムを導入する際には、必ず念頭に置いておきたい事柄です。

これらの問題に対する解決策として、フォルダーリダイレクト+オフラインファイルの代わりに移動ユーザープロファイルを使うという手があります。

リアルタイムで同期を行うフォルダーリダイレクトとは違って、移動ユーザープロファイルはログオン/ログオフの時にしか同期をしません。また、OSのバージョンが変わるとユーザープロファイルが引き継がれないという問題があります。

この2点にさえ目をつぶれば、移動ユーザープロファイルでもある程度の要件は満たせます。MicrosoftAccessがどうしても外せないのであれば、こちらも検討の余地があるのではないでしょうか。



【2018/01/11 追記】

MicrosoftAccessはDFSレプリケーションとも相性が悪いことが分かりました

レプリケーションの真っ最中にファイルを開いたり閉じたりすると「…は、既に使用されているので、使用できません。」というエラーメッセージが表示されて、度々最適化に失敗します。

レプリケーションのスケジュールを編集して、MSAccessを使用していない時にレプリケーションするように調整すれば、この問題は回避できます。

しかし前述の問題にしてもそうですが、どうもMicrosoftさんから「複雑なネットワークを構成するならMSAccessはやめなさい」と言われているような気がしてなりません。

0 件のコメント:

コメントを投稿