Tips

メソッドの「サーバ上で実行」オプション

日付2009/02/25
ID09-021
バージョン11
プラットフォームWin, Mac

4D v11 SQLから、メソッドプロパティに「サーバ上で実行」オプションが加わりました。このオプションを有効にすることで、クライアント側のプロセスで実行した場合でも、メソッドはサーバ上で動作するようになります。

例えば、サーバ側のインタープロセス変数をクライアント側にコピーしたり、サーバ側のフォルダにあるドキュメントを参照することも可能です。

とても便利な一方で、気をつけなければならないこともあります。

もしサーバ側で実行したメソッドにエラーがある場合、エラーはサーバ側でハンドリングされてしまいます。サーバ側でエラーが発生した場合には、そのプロセスはエラー処理のために「イベント待機中」となります。この状態でクライアント側の4Dを終了すると、サーバ側にプロセスが取り残されてしまうことがあります。そのような時、下のようなアラートメッセージを見ることがあるかもしれません。

このような問題を回避するためには、ON ERR CALLを使って、明示的にエラーハンドルを行う必要があります。

サーバ上で実行オプションを使う場合、ON ERR CALLを使うタイミングが重要です。クライアント側でON ERR CALLを実行しても、サーバ上で発生したエラーをハンドルすることはできません。つまり、サーバ上で実行オプションを有効にしたメソッド上でON ERR CALLを呼ばなくては意味が無いのです。

サーバ上で実行オプションを有効にしたメソッドの最初の行は、ON ERR CALLであるべきだと言っても過言ではありません。