概要
本記事では、FileMaker Server 19 において C# + FMData 経由で連携していた Data APIの更新処理が突然タイムアウトするようになった事象と、その対応内容について記録します。
最終的には、Windows Server自体を再起動することで改善しました。原因の特定には至っていませんが、同様の現象に遭遇した方の参考になればと思います。
システム構成
項目 | 内容 |
---|---|
サーバーOS | Windows Server |
FileMaker Server | バージョン 19 |
クライアント実装 | C# (.NET) |
ライブラリ | FMData(Data APIクライアント) |
接続方法 | FileMaker Data API(REST)経由の追加・更新・検索 |
発生した問題
FileMakerと連携するC#アプリケーションを開発し、長年にわたって安定して稼働していました。
しかしある日、追加および更新処理でタイムアウトが発生するようになりました。当初はネットワークの不具合を疑い、ネットワーク機器や回線の状態を調査しましたが、特に異常は見つかりませんでした。
当初はごく一部のリクエストのみがタイムアウトしていましたが、時間の経過とともに失敗する件数が増加。最終的には、すべての追加・更新リクエストがタイムアウトで失敗する状態に陥りました。
試みた対応と結果
対応内容 | 結果 |
---|---|
FileMaker Serverの再起動 | 効果なし(状況改善せず) |
Windows Serverの再起動 | 効果あり(即座に正常動作に復帰) |
可能性のある原因(仮説)
本現象について、以下のような可能性を考えています。
1. Data APIのセッションまたはHTTP接続の累積
FileMaker Serverはセッション数や同時接続数に上限があり、枯渇すると新規リクエストが失敗する。
2. TCPポートの枯渇(TIME_WAITの蓄積)
Windows側でTIME_WAIT状態のTCP接続が多数残り、利用可能なポートが不足。
特にData APIはHTTPS接続が頻繁なため、蓄積しやすい。
3. FileMaker Serverプロセスの内部リソース消費
FileMaker Serverの内部プロセス(Web Publishing Engine、Data APIプロセスなど)で、スレッドやメモリのリソースが解放されず蓄積。
Server再起動ではプロセスが完全にリセットされない可能性がある。
確認・調査した内容
確認項目 | 結果・備考 |
---|---|
FileMaker Admin Console(接続数、イベントログ) | 異常なし |
Windowsのタスクマネージャー(メモリ・CPU使用率) | 一部のプロセスで高負荷だが許容範囲内 |
FMDataクライアントのタイムアウト設定 |
HttpClient.Timeout = TimeSpan.FromSeconds(600) で600秒に設定済み |
結論
本事象は、FileMaker Data APIの使用により何らかの形でサーバー側またはOS側のリソースが逼迫し、追加・更新処理がタイムアウトに至ったものと推測されます。明確なログやエラー情報が出ないため根本原因は不明ですが、OS再起動により正常化したため、今後はサーバーリソースの監視と定期的な再起動を行う運用に切り替える予定です。