社内の小規模LAN接続でデータベースを共有するシステム構築の為にDelphi EX6 Enterprise を購入しました。が、うまくサーバーが認識できず接続できません。
Windowsは7と8.1、IBXによってFirebird Databaseに接続しようとしています。
IBDatabaseをオブジェクトインスペクタで設定してもうまく接続できないので、IBConsoleを使って試みるとTCP/IPではだめですがNetBEUIだと接続できました。
そのような状態なので、社内LANでTCP/IP接続が確立されていないのか?と疑っています。
ここですべき質問ではないと思いますが、どうしたらTCP/IP接続できるようになるかを教えていただけないでしょうか?
追記です。
ネットワークの接続を調べてみると、DHCPサーバーが有効になっていることが分かりました。
これは、TCP/IP接続が出来ていることですよね。
益々分からなくなってしまいました。
IBDatabaseの設定でプロトコルをTCP/IPにした時にポート番号を設定しないといけないのでしょうか?
何か設定に誤りがあるように思うのですが、ヒントでもいただけると助かります。
よろしくお願いします。
・Ent版ならなぜDBXかFireDACで接続しないのか?
・他のPCからFirebirdに接続はできないのか?
・DelphiをインストールしたPCからコマンドプロンプトからpingでFirebirdが動作しているPCに到達できるのか?
・Firebirdが動作しているPCでコマンドプロンプトからnetstat -anとしてTCPの3050がListen状態になっているのか?
こちらも Firebird 絡みでしたか。
[何度も出てくるので Firebird の接続方法]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1255
> うまくサーバーが認識できず
具体的にはどのような症状になるのですか?
通りすがりさん、DEKOさん、ありがとうございました。
プロトコルを「Named pipe」にしたときには、サーバーにうまく接続できています。
プロトコルを「TCP/IP」ポート番号を「3050」にしたときには、接続を試みると、しばらく待たされてから
「Unable to complete network request to host "サーバー名". Failed to establish a connenction..」
というメッセージが出て接続できませんでした。
通りすがりさんから言われたことを確認してみました。
Pingは通ったのを確認しましたが、
netstat -an を実行すると
プロトコル ローカルアドレス 外部アドレス 状態
----------------------------------------------------------------
TCP 0.0.0.0:3050 0.0.0.0:0 LISTENING
のようになっていました。
サーバーマシンのローカルアドレスは 192.168.1.2 なのですがこれで良いのでしょうか?
よろしくお願いします。
追伸
DEKOさんの[何度も出てくるので Firebird の接続方法]を読んで、
GDS32.DLLの件をスッキリさせる為にもと思い、InterbaseをアンインストールしてからFirebird2.5.2をインストールし直しました。
サーバー名ではなく、IP アドレス指定で接続したらどうなりますか?
また、IBConsole でも同じ症状になりますか?
[IBConsole 日本語版+α]
http://ht-deko.minim.ne.jp/junkbox.html#IBCONSOLE
もし、どちらでも同じ症状の場合、ファイアーウォールが
3050 ポートをブロックしていないかどうかを確認してみてください。
DEKOさん、ご返答ありがとうございました。
IPアドレス指定でも同じ状態でした。
また、IBConsoleをダウンロードさせてもらって接続を試みましたが、こちらも全く同じ状態でした。
ファイヤーウォールがブロックとのことですが、どのようにしたら調べることが出来るのでしょうか?
また、ブロックしていた場合、どのようにすれば解除できるのでしょうか?
Windowsのセットアップは極々普通にしてあるだけだと思いますので・・・。
ご面倒をおかけしますが、よろしくお願いします。
やってみました。
ファイアウォールの細かな設定は分からなかったので、とりあえずサーバー側コンピュータのプライベートネットワークのファイアウォールを無効にしてみました。
結果、TCP/IP接続が出来ました。
その後、ファイアウォールを有効に戻し、FirebirdServerプログラムをファイアウォールの監視項目に追加して、
無事、接続を確認致しました。バンザイです!!
全く考えもしない事が原因だったので、とても良い経験になりました。
DEKOさん、通りすがりさん。
本当にありがとうございました。
そして、これからもよろしくお願いします。
> ファイヤーウォール
サーバマシンとクライアント PC のどちらかで 3050 ポートが
ブロックされている可能性がありますが、ファイアーウォール機能が
どの OS / アプリで提供されているかは私にはわかりませんので、
「どうすれば解除できるの?」と仰られても答えようがないというか…。
PortQry で空いているかどうか調べてみるとか。
IBConsole にも接続診断機能がありますけれど。
[PortQry Command Line Port Scanner (Microsoft)]
http://www.microsoft.com/en-us/search/DownloadResults.aspx?q=PortQry%20Command%20Line%20Port%20Scanner
PortQry.exe -n <サーバの IP アドレス> -e 3050 -p TCP
みたいな。
あらら、入れ違いでしたね (^^;A
でも、解決したようでなによりです。
ツイート | ![]() |