Windows 2008 仮想マシンを実行するクラウド インフラストラクチャにいくつかの Web サイトを移行しています。これらの Web サイトはすべて、MySQL データベースを使用する ColdFusion で実行されます。現在CoLoで問題なく稼働しています。さらに、それらはオフィスの開発ネットワーク上で問題なく実行されています。
現在使用している構成に可能な限り一致するようにクラウドをセットアップしています。これは、基本的に、1 つのサーバーに CF10 + IIS を配置し、別のマシンに MySQL を配置しています。私たちは 99% 完了しており、ほとんどのことは順調に進んでいます。でも....
2 のように、リンク/ボタンをクリックすると次のようなメッセージが表示される場所がいくつかあります。
データベース クエリの実行中にエラーが発生しました。
通信リンク障害 サーバーから正常に受信された最後のパケットは 0 ミリ秒前です。サーバーに正常に送信された最後のパケットは 0 ミリ秒前です。
スタックトレースをスキャンすると、次のこともわかります。
Caused by: java.net.SocketException: Connection reset
通信リンク エラーは常に 0ms です。
最も不可解なのは、これを引き起こしていると思われるクエリが、サイト全体で問題なく使用される単純なクエリであることです。なぜ彼らがこれらの2つの特定の場所で失敗しているのか、私たちは頭を悩ませています。
唯一の手がかりは、呼び出されたスクリプトの CF エラーの説明を見ると、クエリが失敗しているスクリプトが 2 回呼び出されていることがわかります。たとえば、発生の 1 つはアプリケーション ファイルにあります。
>The error occurred in D:/Our_Web_Sites/oursite/Application.cfm: line 73
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 17
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 1
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 73
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 17
>Called from D:/Our_Web_Sites/oursite/Application.cfm: line 1
CF コードには、スクリプトが 2 回呼び出される原因となるものは何も見つからないため、クエリで最初の呼び出しが失敗したため、CF は再試行しますが、失敗してエラーになるだけです。
この問題をグーグルで検索すると、MySQL タイムアウトの変更に関する多くの投稿が見つかりました。私たちが扱っているのはタイムアウトの問題ではないように見えるので、それらのどれも機能しませんでした。これらのページは毎回失敗します。
私たちが解決に最も近づいたのは、次のブログ投稿です 。 !
CFAdmin の [クライアント要求間で接続を維持する] 設定のチェックを外すと、エラーはなくなります。ブログでは、私たちの好みであるチェックを入れたままにし、「SELECT 1;」の接続検証を使用することを提案しています。それを試してみてください...同じエラー。
JDBC AutoConnect=true オプションも試しました。無効。
最新の JDBC コネクタをダウンロードし、標準の CF10-MySQL コネクタの代わりに使用しました。無効。
繰り返しますが、サイトの 99% は、これら 2 つのリンクを除いて機能します。どちらも、他のすべての環境で問題なく機能します。他のアイデアはありますか?