FileMakerをバックエンドにしたWebアプリを長期運用する際、メンテナンスに注目しておきたい点はおもに次のとおり。

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

メンテ必須事項確認の最後に、「FileMaker Admin Consoleのクライアントビューアでのセッション接続数」を取りあげる。

管理: クライアントから確認するセッション接続数

セッション接続数の確認はおもに3通り。1つ目は管理: クライアントから確認する方法。

FileMaker Server Admin Console - 管理: クライアント。接続されたクライアントとその詳細が表示される

接続されたクライアントの1行を選択すると、該当のクライアントが接続しているデータベース情報が表示される

ユーザの詳細では、コンピュータ名やクライアントの詳細情報が表示される

接続されたクライアントでは、次の項目を確認できる。

項目名 説明
ユーザ名 ファイルを開いたユーザ名を表示する。タイプが「fmapp」(FileMaker Proから接続)の場合は環境設定で指定したユーザ名を、「fmxml」「fmphp」の場合はSetDBUserPass()/FileMaker()で指定したアカウント名が表示される
タイプ 接続タイプを表示する
IPアドレス 接続しているクライアントのIPアドレスを表示する。カスタムWeb公開の場合、PHPがcURLで接続しているため、該当PHPがインストールされているマシンのIPアドレスとなる
開いているデータベース クライアントが開いているファイル数を表示する
接続時間 クライアントがセッションを張った日時を表示する
クライアントバージョン タイプが「fmapp」の場合FileMakerのバージョンを表示、「fmxml」の場合は不明、「fmphp」の場合はPHPと表示する

FileMaker Proで接続しているクライアントの場合、FileMaker Server Admin Consoleには環境設定で指定したユーザ名が表示される。ファイルを開くときに便利だからといってユーザ全員が「Admin」に指定しているとメンテナンス時に影響がでるので、なるべくユニークな名前にしておこう

接続されたクライアントの1行を選択すると、画面下部の「開いているデータベース」「ユーザの詳細」で該当クライアントが接続しているデータベースの情報を確認できる。

開いているデータベース

項目名 説明
データベース名 クライアントが開いているデータベースファイル名を表示する
アカウント名 クライアントがファイルを開く際に指定した「アカウント名」を表示する
アクセス権セット アカウントに割りあてられているアクセス権セットを表示する
接続時間 クライアントがセッションを張った日時を表示する

ユーザの詳細

項目名 説明
コンピュータ名 クライアントのホスト名を表示する。タイプが「fmxml」「fmphp」の場合はIPアドレスとなる
MACアドレス クライアントのMACアドレスを表示する。タイプが「fmxml」「fmphp」の場合は表示されない
オペレーティングシステム クライアントのOS名を表示する。タイプが「fmxml」「fmphp」の場合は不明となる
クライアント/ブラウザのバージョン タイプが「fmapp」の場合FileMakerのバージョンを表示、「fmxml」の場合は不明、「fmphp」の場合はPHPと表示する(接続されたクライアントの「クライアントバージョン」と同じ)
言語 クライアントの言語環境を表示する

なお「クライアントの詳細」は複数クライアントの表示には対応していない。

「クライアントの詳細」は複数クライアントの表示には対応していない(画面上部のプルダウンから操作する各種処理は実行可能)

管理: データベースから確認するセッション接続数

2つ目は管理: データベースから確認する方法。この画面は共有するデータベースの公開状況一覧を見るためのものだが、簡易的に「選択したデータベースに接続しているクライアント一覧」を表示することができる。

FileMaker Server Admin Console - 管理: データベース。該当データベースを開いているクライアントの一覧を確認できる

こちらは選択したクライアントに対して操作をおこなうことはできず、確認するだけになる。なにか処理をおこなう場合は右クリックをし「クライアントを表示」を選択して管理: クライアントに飛んでから操作する。また、こちらも管理: クライアント同様、複数表示には対応していない。

管理: 使用状況から確認するセッション接続数

3つ目は管理 > 使用状況から確認する方法。使用状況を選択すると、画面右部に「接続の統計」と「データベース」の統計が表示される。

FileMaker Server Admin Console - 管理: 使用状況。接続とデータベースの統計値を確認できる

セッション接続数は「接続の統計」にて確認する。各項目の内容は次のとおり。(ヘルプより抜粋)

接続の統計タイプ 説明
カスタムWeb公開 (PHP、XML、XSLT) 接続しているカスタムWeb公開クライアントの数。この情報を使用して、カスタムWeb公開クライアントの最大数を設定する
FileMaker Proクライアント 接続しているFileMaker Proクライアントの数。この情報を使用して、FileMaker Proクライアントの最大数を設定する
インスタント Web 公開 接続しているインスタントWeb公開クライアントの数
ODBC/JDBC 接続しているODBC/JDBCクライアントの数

列には「現在」「平均」「低」「ピーク」の4項目が用意されている。これらはFileMaker Serverを終了しFileMaker Server Admin Consoleを閉じてしまうと値がリセットされてしまう。確認する場合は注意されたい。

クライアント(セッション)の接続解除について

XML/PHPによるカスタムWeb公開機能を使ったWebアプリケーションは次の流れで動作している。

  1. FX.php/FileMaker API for PHPがcURLを使って特定のURIにアクセス
  2. Web公開エンジンとFileMaker Serverが対応する処理をおこない、XMLを出力
  3. XMLを受け取り、配列/オブジェクトとして扱う

FileMaker Server Admin Consoleで表示するセッション数は、1~2間をカウントしている。この仕組み上、カスタムWeb公開経由で表示されるセッションは、よほどの高負荷な処理でなければ表示されない。

データベース FileMaker Server 技術仕様、「接続の上限数」より引用

複数のユーザが、ひとつの CWP 接続を共有することができます。CWP 接続は、持続的な接続よりもむしろ、同時にリクエストされるイベントを基にしたものです。

管理: クライアントにおいて、タイプが「fmphp」「fmxml」となっているクライアントが長期にわたって表示されている場合、そのセッションはFileMakerスクリプトの無限ループなどで暴走している可能性がきわめて高い。

前回紹介したアクティビティモニタでユーザが「fmserver」となっているプロセスを確認

おなじくtop -U fmserverでプロセスを確認。高い負荷がかかっていることがわかる

暴走しているセッションはサーバに高い負荷を与える。WebサーバのログやFileMaker Serverログビューアの内容を見極めつつつ、怪しいクライアントは接続解除をおこなおう。

切断したいクライアントを選択し、「接続解除」を選択。すぐに切断したい場合は遅延時間を0分にする

タイプが「fmphp」「fmxml」クライアント切断後のアクティビティモニタ/top

4回にわたりメンテナンスにおける必須の確認事項を紹介した。長期間にわたって安定運用をおこなうコツは、適切なメンテナンスをマメにおこなうことだ。サーバ管理者のみならずFileMakerデベロッパも、これらの管理ツールを使いこなして、より優れたWebアプリケーションの構築をしていきたいところである。