見出し画像

消してみた!

FileMakerが何しても開く時にぐるぐる

ユーザーさんから、FileMakerのアプリ開く時に最初の一回はすごく遅くてレインボーカーソルがぐるぐるするんですがとしばしば言われます。
そんなに古いサーバでもなく、ネットワーク周りもやれる対策はして、電源コンセントとかも古そうなものは取り替えてもらいました。
唯一効果のあった対策は、Cacheファイルを削除するというものでした。
ただ、しばらくするとやはり遅くなり、毎回消していいのかと迷っていました。

マニュアル読み直してみました。

ちょうどFileMakerの19.4がリリースされたこともあり、マニュアルを読み直してみました。「FileMaker パフォーマンスを引き出す」というやつです。

お宝発見!

A FileMaker Proに関する補足 というセクションにDBCacheというものの説明があります。

"DBCache は、 リモートファイルを開いたときにダウンロードされたデータを保存し、次回以降、速やかにアクセスするために利用しています。 例えばソートなど行った際、 クライアント側にデータがダウンロードされると、次回からそれを使うことで余計なダウンロードは発生せず、Web ブラウザのキャッシュと同じような働きをします。
※「FileMaker パフォーマンスを引き出す」より引用

リフレッシュは?

  • 一度生成された DBCache は、 アプリケーションが終了しても残る

  • DB Cacheは3週間使われないと再作成される

  • DB Cacheが壊れている場合は再作成される

    ほとんど再作成されないのです。

結局毎回削除していいらしい。。。

FileMaker Server と FileMaker Pro との間の通信環境が安定し、 遅延がない場合には、 多くのレコードをキャッシュし た DBCacheをいったん削除して、 データをダウンロードし直した方が速い場合があります。 カスタム App ファイルを開く際に時間がかかるようであれば、 この問題が発生している可能性があります。 これに対処するため、DBCache を FileMaker Pro 起動時に削除するといった特別処置を取っているケースもあります。
※「FileMaker パフォーマンスを引き出す」より引用

具体的な方法

Macの場合
DBCacheの場所はユーザーのライブラリにあるのでそこを消します。
~/Library/Caches/FileMaker/DBCache
FileMakerのスクリプトで実行するには、Apple Scriptを実行ステップを利用します。ステップのAppleScript 記述に下記のように記載します。
do shell script "rm -R ~/Library/Caches/FileMaker/DBCache"
これをFileMakerが起動した直後または、終了する時に動くようなファイルを仕込みます。

Windowsの場合
DBCacheの場所はユーザーのAppDataにあるので、Event を送信スクリプトステップを利用します。ステップのスクリプト記述に下記のように記載します。
cmd /c "rd /s /q %temp%¥FileMaker¥DBCache"
これをFileMakerが起動した直後または、終了する時に動くようなファイルを仕込みます。
ただし、FileMaker Serverで公開しているAppにアクセスしていない時に実行してください。

MacもWindowsもshellスクリプトやバッチファイルでも同様なことが行えます。ログオフ時やログイン時に実行したい場合もそちらなら対応可能と思います。

結果

解決!

補足事項

今回のネタは2021/12/18に開催されたFileMaker Pro 東京ユーザーズミーティングにて、Lightning Talksとして発表したものです。
また、Windows関連については毎土曜日に開催されるミンキーの有志のみなさんに教えていただきました。

2021/12/26 修正 Apple Scriptに不要なスペースが入っていたので修正しました。
2022/01/06 修正 Event送信のコマンドで「¥」が「\」になっていた部分を修正しました。

バージョン19.6.1以降(2022/12/3追加)

2022年12月1日にリリースされた、FileMaker Pro 19.6.1ではアプリケーションの環境設定にDBCacheを削除できるボタンが用意されています。
遅くなったな、と感じてから簡単に消すことができるようになったのはGood!ですね。

この記事が気に入ったらサポートをしてみませんか?