これは私を殺しています。私たちは、MySQLデータベース上にASP.NET/Monoアプリケーションを持っています。何ヶ月間も、「指定されたMySQLホストのいずれにも接続できません」という、完全にランダムではありますが一貫して発生しています。私は決してMySQLのプロではありません、そして、私はこれが愚かなものであることを願っています。MySql *完全にランダム*特定のMySQLホストに接続できません
細目:
のMySQL 5.5.17
のMySQLコネクタ/ NET 6.4.4
モノ2.10.8
MonoDevelopの2.8.6.5
接続文字列:SERVER = localhostを、3306; DATABASE = XXX ; UID = xxx; PWD = xxx;接続時間切れ= 90; Encrypt = false;
Max_connectionsは150に設定されています。5つ以上の接続はありません。これらはすべてアクティブです(おそらくプーリングによるものです)。
アプリケーションはC#ASP.NET 3.5です。 Windows/IIS上で何年もの間ロックとして実践されています。 9ヶ月前に私たちの市場がWindowsを降りるようになったので、Mono/Apacheにすべてを移しました(簡単に追加するかもしれません)。
問題はMono側でのみ発生しますが、私たちはWindowsのサポートを断念して以来、これは重要です。
平均して約10回発生しますが、間隔は大きく異なります。
問題は、次の構成で目撃されています:
Ubuntuの11/Apache2の/ mod_mono
OSXライオン/ Apacke2/mod_mono
Ubuntuの11/xsp2/MonoDevelopのデバッグサーバ
OSXライオン/ xsp2/MonoDevelopの
デバッグサーバはkeepalivでめちゃめちゃありe、wait_timeout、connectionresetなどは利用できません。タイミングは効果がないようです。コネクションのタイムアウト後ではなく、conn.openで瞬時にエラーが発生します。
これは手掛かりです。アプリは絶対にPooling = falseで実行されません。ほぼすべての接続試行が失敗します。もちろん、私はプールしたいのですが、なぜそれがないとうまくいかないのか分かりません。
アプリケーションには、ハートビート(データベース内のユーザーセッション)が2分ごとに組み込まれています。
最も魅力的なのはすべてですか?実行環境では必要に応じて絶対に再現することはできません。ランダムです。私はクエリのサイズ、実行時間などを調べました。
UbuntuサーバーやOSXの最初の起動時に、Monoが初めてMySQLに接続するのは初めてですその後に起こります。その後、それは誰の推測です。
max_connectionsの制限はありますか?あなたはさまざまな時に許可されている最大値を打つことができます。 –
最初に接続したときに起こったとは思われません – DNA
+1よく質問されていますが、serverfault.comでうまくいくと思います –