時間が経過するとデータベースから切断されるのですが、原因わかりますか?

解決


yumiko  2007-07-29 22:34:00  No: 27247  IP: 192.*.*.*

Delphiで開発したプログラムでデータベースを扱っていますが、使い始めてから早いと3分、長くても3時間ぐらいでデータベース側から切断されてしまいます。
原因も理由もわからず困っています。
DBサーバの環境は以下の通りです。
Server:CentOS4.3 , DB:Firebird1.5.3(SuperServer)

出るエラーメッセージは次の通りです。
『 Unable to complete network request to host "192.168.***.***". Error writing data to the connection. 確立された接続がホストコンピュータのソフトウェアによって中止されました。』

※サーバのログを見ると、Firebirdが再起動されているみたいです。アプリケーションが悪さをしているのかもしれないと思ったのですが、先月までは一度もこの症状は出ませんでした。アプリケーションはそんなに大きな変更はしていないと思うのですが…。

※通信に問題があるのかと思い、違うPCにFirebirdをインストールして実験してみましたが、同じ症状が出ました。通信やハードウェアの問題ではないようです。

どなたかわかる方がいらっしゃいましたらご教授お願いします!

編集 削除
GT-BASS  2007-07-30 12:04:58  No: 27248  IP: 192.*.*.*

こんにちは。
DBのバージョンはInterBase5.6とまったく異なりますが、私もほぼ同じ問題で悩んでいます。InterBaseが突然切断されてしまいます。

まだ解決には至っていませんが、以下URLを参考にネットワークの見直しをしています。
ttp://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=067198

また、InterBaseのログを見たところ
INET/inet_error: read errno = 10054
が多数発生していたので、調べてみたところ「ネットワークの問題」との話が殆どでした。

直接解決に繋がらない可能性のある書き込みで申し訳ありません。
どなたかが、更なる情報発信されることを大きく期待し、レスをつけさせて頂きました。

編集 削除
むく  2007-07-30 17:23:47  No: 27249  IP: 192.*.*.*

問題の原因かどうかはわかりませんが・・・。

クライアント側のスクリーンセーバーや電源オプションで休止状態になった時に
同じようなエラーを経験したことがあります。
HDDの電源切るとかやっかいな設定もあるので自分はいつもそのせいにして周りに説明してます。

編集 削除
yumiko  2007-07-30 23:18:37  No: 27250  IP: 192.*.*.*

GT-BASSさん
貴重な情報ありがとうございます。
私のところでは、ついこの前まではまったく問題なく動いていたんですけど、7月16日から毎日数回発生するようになってしまいました。
16日に何かやったと思うんですが、まったく見当がつきません(涙)
今は一番やりたくなかったサーバーOSの再インストールをやろうかという話になっていたりします…。

むくさん
休止状態にしてみたら、確かに同系のエラーが出ました。一つ違うのは、その場合は休止状態にしたクライアントのみエラーが出て、他の端末は大丈夫でした。
いつものエラーは全ての端末が切断されてしまいます・・・


ぅぅぅ  頑張ります(涙)

編集 削除
むく  2007-07-31 17:34:48  No: 27251  IP: 192.*.*.*

サーバOSの再セットアップは大変だと思うのでひとつ原因究明の案を・・。

GT-BASSさんの情報によるとネットワークの問題もあるとのことなので、
サーバ自身でソフトを動かすか、クロスケーブルなりでサーバとクライアント
1台のみ接続して検証すると、ネットワークを構築している環境が悪いか
どうか検証できませんか?
ネットワーク環境でないことが判明すれば、最悪再セットアップですが、
ネットワーク環境が原因であれば再セットアップしても問題は解決しないかと。

環境がわからないのでここまでしか言えませんが可能性まで。

解決につながる情報でなくてすみません。

編集 削除
yumiko  2007-08-04 22:07:33  No: 27252  IP: 192.*.*.*

解決したかもしれません(^-^

むくさんに言われたとおり、サーバに1台だけでつないでみたりいろいろしたのですが、最終的にはプログラム上でDatabaseをちゃんとCloseすることによりエラーが止まったものと思われます。

常駐系のプログラムが多かったので、Databaseはつなぎっぱなしになっていたのですが、いちいち切断するようにしたところエラーが出なくなったので止まったのかと思っています。

まだわかりませんが…  とりあえず良かったということで♪

本当に皆さんありがとうございました!

編集 削除