
サーバー上の別のセッションでスクリプトを実行

URL : https://help.claris.com/ja/server-release-notes/content/index.html
2024 年 11 月にリリースされた Claris FileMaker Server 21.1 では、HTTPS トンネリングの対応や FileMaker Data API/OData API の年間制限撤廃 など、数々の強化が行われました。その中でも開発者の関心を集めているのが 「サーバー上のスクリプト実行」ステップをサーバーサイドスクリプトから呼び出せる ようになった点です。

本記事では、
- 仕組みのおさらい
- 実際に試した結果
- 過負荷を防ぐための対策
をまとめます。
目次
[サーバー上のスクリプト実行]とは
[サーバー上のスクリプト実行] スクリプトステップは、FileMaker Script Engine(FMSE) が“仮想クライアント”として別セッションを立ち上げ、そこでスクリプトを走らせる仕組みです。
URL : https://help.claris.com/ja/pro-help/content/running-scripts-on-server.html
つまり、一種の仮想のFileMaker Proマシンが用意されて、それが実際のクライアントであるかのようにスクリプトを実行するということです。
その際、スクリプトが起動すると OnFirstWindowOpen スクリプトトリガも起動され、スクリプトが終了すると OnLastWindowClose スクリプトトリガが起動されることに注意してください。
OnLastWindowClose
もしここに、ユーザが処理を終了させる時になんらかの処理を[サーバー上のスクリプト実行]で処理させているカスタムAppがあったとします。
そして、その処理をOnLastWindowCloseスクリプトトリガで実行させているとしましょう。

ファイルオプション

Ver 21.1からは、サーバーサイドスクリプトから[サーバー上でスクリプトを実行]を実行することができるようになりましたので、この場合、どうなるのでしょうか。
「終了するまで待つ:オン」の場合、スクリプト開始時に OnFirstWindowOpen、終了時に OnLastWindowClose トリガが発火
→ トリガの中でさらに「サーバー上のスクリプト実行」を呼ぶと 無限ループ になる危険がある
実行してみる
環境
OS : Windows Server 2022
Claris FileMaker Server : 21.1.4.400
Claris FileMaker Pro : 21.1.1.41
●「アプリケーションを終了」するボタンを配置します。

Admin-console の状態

●「アプリケーションを終了」ボタンを押します。

50 セッションまで増加し、その後応答なし(FileMaker Server が設定している上限で打ち止め)となりました。

終了するまで待つ:オフ
「終了するまで待つ:オフ」でも試してみたところ

先ほどとは違い、セッションが増えていくことはなく正常に終了しました。

同時セッションの最大数
この最大数50については下記に記載があります。

URL: https://help.claris.com/ja/server-release-notes/content/index.html
公式の英語版リリースノートにはさらに詳細な記載がありました。
URL:https://support.claris.com/s/article/Now-Available-Claris-FileMaker-Server-21-1-4-Update?language=en_US
この最大数はAllowPSoS 設定(fmsadmin get serverprefs AllowPSOS)の設定では変更できません。

また、「システムの安定性を確保するために、アクティブ クライアントを 40 から 45 の同時セッションに制限することをお勧めします。50 を超えると、遅延、メモリの過負荷、またはセッションのハングが発生する可能性があります。」と案内されています。
サーバーでは実行されないようにする
「終了するまで待つ:オン」または、オフにかかわらず、
OnFirstWindowOpen
OnLastWindowClose
OnWindowOpen
OnWindowClose
トリガでは、サーバーで実行されないようにするステップを記載します。

まとめ
FMSE が仮想クライアントになる点を理解し、トリガ設計を見直すようにしてください。
最後に、Clarisからは現時点の最新バージョン 21.1.4 への更新の案内がアナウンスされています。
https://help.claris.com/ja/server-release-notes/content/index.html
参考サイト
https://help.claris.com/ja/server-release-notes/content/index.html
https://support.claris.com/s/article/Now-Available-Claris-FileMaker-Server-21-1-4-Update