1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FileMaker Data API 更新時にタイムアウトが発生した際の対応記録(Windows Server + FileMaker Server 19)

Posted at

概要

本記事では、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再起動により正常化したため、今後はサーバーリソースの監視と定期的な再起動を行う運用に切り替える予定です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?