2014年10月17日金曜日

FileMaker Server 13で複数のユーザーのデータが書き込まれない事件が発生!

FileMaker Server13でホストしているデータベースで、別のユーザが書き込んだデータが即座に反映されないという事件が発生しました。

私は5年位前からFileMaker Server11を導入し、それ以降今回のようなトラブルはありませんでした。

このトラブルの詳細ですが、
通常、ホストされているデータベースでも、ローカル(自分のPCに保存されているデータベースを自分が開く)と同じようにデータを入力し、何もないところをクリックするなどするとデータベースにデータが書き込まれます。

そして、そのデータはそのホストれさているデータベースにアクセスし同じレコードを見ているユーザにもそのデータを見ることができます。これが普通の状態です。

今回は、Aさんがデータを入力→別の場所をクリック等で確定しても、同じレイアウト、レコードを見ているBさんの画面上に反映されない。さらに、そのレコードを編集しようとしてもロックされていないので、データベースとしてはデータに矛盾が生じてしまう。

この状態のとき、同じテーブルを使用している別のレイアウトで見ても、同じで、Aさんの入力したデータは反映されない。

ただし、この時Bさんがデータベースを開きなおすと、
Aさんの入力したものが反映されている。

という状況でした。

おそらく、Aさんの入力したデータはホストされているデータベースには即座に入力をされているが、Bさんにはサーバからデータが送られていない。というような状態だったのではないかと推測されます。

ただし、排他制御に関してはAさんがレコード編集状態のときは、Bさんがレコード編集できませんでしたので、動いていると思われました。

その後Aさんがそのレコードを抜け(Bさんから見てレコードの内容は変化がない)、Bさんがそのレコードに入り、編集状態することができました。

複数の人が同じレコードを同時に編集するような作りではないので、
発見が遅くなりました。

さらにこの状況が同じサーバにホストしている複数の独立したシステムに起きていたので、サーバが原因だろうとサーバを再起動させました。

すると、再起動後は何事もなかったように正常に戻りました。

後で、気づいたのですが、サーバを再起動させるのではなく、データベースエンジンやFileMaker Serverのサービスを再起動してみればよかったと思いました。

そうすれば、OSレベルの問題なのか、FileMaker Server上の問題なのかがはっきりしたかもしれません。