FileMakerをバックエンドにしたWebアプリを長期運用する際、メンテナンスは欠かせない。運用がはじまって何ヶ月か経って「運用当初よりパフォーマンスが伸びない」と思ったことはないだろうか。データベースファイルの破損、ログファイルの肥大、fmserver/fmscwpeプロセスの暴走……FileMakerなWebアプリを運用するにあたり、避けては通れないメンテナンスの注意事項を何回かにわけて紹介しよう。

長期運用で注意すべきこと

長期運用で注意すべきことを簡単にまとめてみよう。メンテナンス時に注目しておきたい点はおもに次のとおり。

  • イベントビューア、コンソール、FileMaker Admin Consoleを使用したログ確認
  • 空き容量の確認 (Windowsの場合はとくにFileMakerをインストールしたドライブ)
  • fmsadmin, fmscwpe, fmserver, fmswpcプロセスのCPU・メモリ使用率
  • FileMaker Admin Consoleのクライアントビューアでのセッション接続数

今回は「イベントビューア、コンソール、FileMaker Admin Consoleを使用したログ確認」を取りあげる。

イベントビューア、コンソール、FileMaker Admin Consoleを使用したログ確認

有事の際でも何も起きていなくても、日々のログ確認は重要だ。トラブルの予兆をログファイルから認識できていれば事前に予防・対応策も準備しやすい。

Windowsの場合、マイコンピュータを右クリックし、サブメニューより「管理」を選択。イベントビューアツリーより「アプリケーション」または「システム」を選択する。

Windowsのイベントビューア。「種類」「ソース」でソートをおこない、FileMakerに関係するログを見やすくする

できれば見たくないエラーその1「正しく閉じられなかったファイル」。停電や突発的なシャットダウントラブルのほか、FileMaker Serverを起動したままOSシャットダウン/再起動をしたときなどに発生する。FileMakerファイルを多数公開している場合、ファイルが閉じられるより前にシャットダウン処理が走ってしまうため

できれば見たくないエラーその2「ファイル破損」。FileMaker Proにより修復をおこなう必要がある

「正しく閉じられなかったファイル」エラーが頻発している場合、FileMaker Serverを起動したままOS再起動といった操作をしていないだろうか。FileMakerファイルを多数公開している場合、ファイルが閉じられるより前にシャットダウン処理が走ってしまうため、このようなエラーが頻発する。OS再起動といった操作をおこなう場合は、念のためFileMaker Admin Consoleでファイルを手動でいったんすべて閉じた方が吉だろう。

このエラーに関連して、運が悪いとそのままファイルが壊れてしまうことも。ファイルが壊れた場合、FileMaker Pro/Advancedの修復以外に復帰する手段はない。もしこの手順でも修復できなかった場合、残念ながらファイルの復元はきわめて厳しいと言えよう。修復に成功したとしても、油断は禁物。「修復したファイルが勝手に閉じられる」現象が続く場合は、壊れていないバックアップファイルにデータを逃がした方が良いだろう。運用開始前のファイルバックアップは必須だ。

Mac OSの場合、アプリケーションディレクトリ内ユーティリティより、コンソール.appを起動。ツリーより「apache2/access_log」「system.log」などを選択する。ターミナル操作になれているデベロッパは、直接/var/log以下のログファイルを参照しても良い。

コンソール.appで各種ログファイルを分析

FileMaker Admin Console内でログを確認するには、ログビューアを使用すると便利だ。FileMaker Serverのログ解析に特化しており、各種絞り込みも容易。

FileMaker Admin Consoleのログビューア。モジュールを選択することで、ログを確認したい箇所を簡単に特定できる

タイプでは「すべて」「エラー」「警告」「情報」の4つから選択可能

アプリケーション部分のエラーをチェックしたい場合は

  • モジュール: 公開エンジン, 公開エンジンアクセスを選択
  • タイプ: エラーを選択

で必要最低限のエラーを表示できる。

すべてのモジュールを選択し、タイプで「エラー」を選択した状態。公開エンジンモジュールにて、FileMaker Script中でエラーが発生していることがわかる

エラー行を選択すると詳細が表示される。エラーが発生した箇所は、ファイル「fmapi_test」、"saveScriptInfo"スクリプト中のフィールド設定スクリプトステップ

メンテナンスと言えばシステムアドミニストレータの仕事と思いがちだ。しかしながら関係者である以上、FileMakerデベロッパもぜひ覚えておきたいところ。とくにFileMakerではGUIによる簡単な設計・FileMakerスクリプトによる自由が効く分、サーバに負担がかかるアプリケーションを組んでしまいやすい。有事の際に状況やログを分析し、迅速・適切な対応ができるチームになっておきたいところだ。