お伺いしたいことがあります。変なことを言っているかもしれませんがご容赦ください。
firebirdを用いてリモートにあるデータベースファイルに複数人がアクセスできるような
システムを考えたとします。例えばPC0にfirebirdをインストールしてそのPC0にデータベースファイルを
おきます。これに社内のLANで接続されたPC1とPC2でPC0のファイルを編集、削除、新規追加するような
ものを考えたとします。ここで疑問が発生しました。このシステムは「firebirdの管理下にあるデータベース
にPC1とPC2がクライアントとして接続している」のか「ただ単にPC0にデータベースファイルがありこれを
PC1とPC2でファイル共有しているだけ」なのかどちらなのでしょう。という尋ね方はおかしいですね
今前者で稼働しているのか後者で稼働しているのかはどうやって調べるのでしょうか。指南いただけませんか。
質問とは、関係ないですが、ふぇ さんは、
firebird 配列フィールドについて
https://www.petitmonte.com/bbs/answers?question_id=8682
で、質問された方と同じ人ですか?(書込者IDが同じなので・・・)
# もし、同じ人でしたら、質問ごとに名前を変えないほうが、よいかもしれませんね・・・
質問自体に関しては・・・
>firebirdを用いてリモートにあるデータベースファイルに複数人がアクセスできるような システムを考えたとします。
の「firebirdの管理下にあるデータベース にPC1とPC2がクライアントとして接続している」環境と、
>これに社内のLANで接続されたPC1とPC2でPC0のファイルを編集、削除、新規追加するような
>ものを考えたとします。
の「ただ単にPC0にデータベースファイルがありこれを PC1とPC2でファイル共有しているだけ」の環境を
混在させ、
>今前者で稼働しているのか後者で稼働しているのかはどうやって調べるのでしょうか。
を知りたいということですか?
試しにファイル共有を切って Firebird に接続してみればいいのではないでしょうか?
PC0 (192.168.1.10): C:\DATABASE\DATA.FDB
PC1 (192.168.1.11): 192.168.1.10:C:\DATABASE\DATA.FDB
PC2 (192.168.1.12): 192.168.1.10:C:\DATABASE\DATA.FDB
このようになっていれば TCP/IP で接続されています。
PC0 の C:\DATABASE を PC1/PC2 から Z: で共有されていて、
PC0 (192.168.1.10): C:\DATABASE\DATA.FDB
PC1 (192.168.1.11): Z:\DATA.FDB
PC2 (192.168.1.12): Z:\DATA.FDB
こうなっていればファイル共有です。こんな接続ではマトモに動作しないと思います。
仮に動いたとしても DB の整合性がなくなってすぐに壊れるでしょう。
Firebird 2.1 以降なら、モニタリングテーブルを叩いてみましょう。
同時接続しているのに、クライアントが一台しか見えなければファイル共有です。
(有り得ないとは思いますけど)
http://ht-deko.com/ft1205.html#120516
共有で動作する可能性を排除したいのであれば、
クライアント PC に Firebird サーバをインストールせず、
Firebird クライアントだけをインストールすればいいです。
ありがとうございます。いろいろやってみました。
共有されているドライブを全部削除してやってみました。
それでも繋がりましたのでサーバークライアントシステムとして稼働していると考え
られます。
またモニタリングテーブルもflamerobinから覗いてみました。結果、現在接続されている
ユーザー名が表示され、問題がないことがわかりました。これ便利ですね。DBファイルの管理
プログラムを作る時に活用させていただきます。
あと「サーバー側のFIREBIRDをアンインストールしてエラーが出れば正常に稼働」
というのを自分で考えてやってみました。結果、「unable to complete network...」と出て
正常であると思われます。
おさわがせしました。ありがとう。
ツイート | ![]() |