このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

FMPに2つのACGIで発生するトラブル

発言者:T.Sato
( Date Wednesday, December 04, 1996 10:33:48 )


Applescriptを始めておよそ2ヵ月の初心者です。
田中先生のサンプルスクリプトを教材ににスクリプト創作に励んでおります。

以前にもここに発言登録し順調に運用していたサーバーに、また問題が
発生し解決方法をご教授いただきたく登録させていただきます。
宜しくお願いいたします。

現在、WebStar1.3.1以下にファイルメーカーでつくられたデータベース2つに対しそれぞれ1つずつの
ACGI (CGIではない)からデータ登録、検索が行えるようになっています。
が、ここで問題が発生しております。同時にそれぞれの(別の)ACGIに対するのアクセスがあったときに
クライアント側に "オブジェクトが見つかりません"のエラーメッセージが返ってしまいます。

それぞれのACGIには 
tell application "ファールメーカーPro"
   Open file ファイル名
 Create New Record With Data myRecord
    又は検索処理
end tell

となっていますが、この   tell  から  end tell  の間の処理中にもう一方のACGIからファイルメーカーに
対して
tell application "ファールメーカーPro"
   Open file も一方のファイル名

が発生する為だと思いますが、解決法はないでしょうか。

現在はACGIからCGIに代えて運用していますが、やはり処理中に他からのアクセスが出来なくなっていることが気になるので、ACGIで運用したいと思っています。

1つのACGIのなかで
if http_search_args = "new" then
などで全て処理出来るようにするしかないのでしょうか?

田中求之 さんからのコメント
( Wednesday, December 04, 1996 21:56:51 )

データベースの排他処理を行うことは AppleScript で組んでいる限り無理ですから
(後からのアクセスが必ず割り込むことで、先に実行中のものは停止してしまう)、方法と
しては、データベースの操作部分で、すべての処理において、どのデータベースの処理を
行うかを明示するぐらいしか方法はないように思います。たとえば、Create new record
の場合、at でどのデータベースにレコードを作るのかを指定できたと思います。
(すみません、試している時間がないんです)。