4 返信 最新の回答 日時: Mar 15, 2016 12:01 AM ユーザー:sshio

    2台のPCで持続IDが重複しています

    sshio

      2台のPCで持続IDの重複が発生しており困っています。

      何か対応方法があればご教示いただきたく、お願いいたします。


      製品名とバージョン

      FileMaker Pro 14 Advanced 14.0.5

       

      OSとバージョン

      ・1台目:Windows 7 Professional 64bit

      ・2台目:Windows 8.1 Professional 64bit

       

      説明

      2台のPCで、Get ( 持続ID ) を使用して取得した持続IDが重複しています。

      FileMaker Pro 14 Advanced 14.0.4 を使用しているときに、重複していることに気づきました。

      FileMaker Pro 14 Advanced 14.0.5 に更新しましたが、持続IDは変わりませんでした。

       

      PCは仮想環境等ではなく、物理的に異なる2台のPCです。

       

      ワークテーブルに持続IDをフィールド追加し、利用者間で操作が衝突しないようにしていましたが、

      複数あるPCのうち、2台のPCで同じ持続IDになってしまい困っています。

       

      GET ( UUID ) でも同様の実装は可能ですが、毎回変わらない GET ( 持続ID ) の方が扱いやすく、

      シンプルに実装できると考えたので、持続IDを使用しました。

       

      持続IDの生成仕様がわからないので、なぜ重複が発生しているか不明であり、重複の解消方法もわかりません。

      そもそも、持続IDがクライアント間で重複しないことを期待すること自体が誤っているでしょうか?

       

      以上、よろしくお願いいたします。

        • 1. Re: 2台のPCで持続IDが重複しています
          user14047

          FileMaker Pro の場合の Get ( 持続 ID ) は MAC アドレスを元に生成されているようです。

          重複する 2 台の PC の Get ( システム NIC アドレス ) を確認してみてください。

          FileMaker ナレッジベース : iOS 7で Get ( 持続 ID ) と Get ( システム NIC アドレス ) を使用したときの動作の違い

           

          MAC アドレスは偽装可能ですので、Get ( 持続 ID ) の値のみで厳密にマシンの特定をするには向いていないかと思います。

           

          # iOS デバイスの場合は Apple の方針で MAC アドレスがアプリケーションから取得できないので状況は違います。完全に FileMaker Go をアンインストールして、再インストールすると Get ( 持続 ID ) の値は変わってしまいます。

          • 2. Re: 2台のPCで持続IDが重複しています
            sshio

            返信ありがとうございます。

             

            持続IDが重複するPCで、Get ( システム NIC アドレス )を確認してみました。

            結果、MACアドレスの重複はありませんでした。

             

            1台目のPCは、VirtualBOX と VPNクライアントがインストールされているため、それらの仮想アダプタも含めて、

            MACアドレスは3行取得されました。

            2台目のPCは、VirtualBOX がインストールされているため、MACアドレスは2行取得されました。

             

            1台目のPCのVPN クライアントは、最近インストールしたもので、インストール前から持続IDの重複は発生していました。

            よって、VPNクライアントのMACアドレスは持続IDの生成に関係していないと予測し、

            ネットワークアダプタを1つずつ無効にしながら、GET ( 持続ID ) を行いましたが、

            Get ( システム NIC アドレス )で取得されるMACアドレスが0件になっても持続IDは変わりませんでした。

             

            最初に持続IDが生成されたときの値が保存されており、構成変更があっても持続IDは変わらないということでしょうか。

            もしそうなら、FileMakerクライアントをはじめてインストールしたときのPCの状態に起因するのかもしれません。

             

            せめて、持続IDが再生成される手順がわかればよいのですが、

            もう少し色々なパターンで検証してみたいと思います。

             

            MAC アドレスは偽装可能ですので、Get ( 持続 ID ) の値のみで厳密にマシンの特定をするには向いていないかと思います。

            確かに偽装は可能なので、どのような場合にも持続IDの値で判断するのはよくないかもしれませんが、

            運用条件によっては利用可能ではないかと考えます。(意図せず重複するようなことが無ければですが)

            • 3. Re: 2台のPCで持続IDが重複しています
              matsuo

              Windows環境でPersistentID(持続ID)が固有でないケースがあると以前から報告されていますが、原因は今でもよく分かっていないようです。

              https://community.filemaker.com/thread/137129

               

              このような状況でもあるので、Get(UUID)関数を使って実装できるケースであれば、Get(持続 ID)関数ではなくGet(UUID)関数の使用をおすすめします。

              • 4. Re: 2台のPCで持続IDが重複しています
                sshio

                返信ありがとうございます。

                 

                リンク先の発言で、下記コマンドを実行してUUIDを取得するように記述されています。

                wmic path win32_computersystemproduct get uuid

                 

                このコマンドを実行した結果は、2台のPCで同じUUIDが取得されました。

                ここでやっと2台のPCの共通性が、同じショップから購入した同型式のBTOパソコンであることに思い至りました。

                 

                FileMakerを使用していない同型式のPCが他に2台あったので、同様の確認を行ったところ、

                同じUUIDが取得され、持続IDも同じ値になりました。

                 

                WMIについての知識がほとんど無いために、この結果をどう捉えてよいか判断できていないのですが、

                4台のPCで持続IDが重複している状況を考えると、まずはGet ( 持続ID ) の使用を控えようと思います。