2017-01-12 11 views
-1

Microsoftサーバーを使用していて、Javaから接続を作成する際に、多くの接続問題が発生しています。Java SQL:長い接続と短い接続

私は物事の真実のために平均2秒ごとにdbと通信する必要があります。私の質問のほとんどは500ミリ秒以内です。

約15分ごとに接続が切断されていて、クエリの1つが失敗しています。私は再試行の仕組みを持っています。それは常に3回の試行で動作します。

私の唯一の問題は、500ミリ秒のクエリが接続が切断されたときに2秒以上になることです。

SQLサーバーへの接続の最善のアプローチ、私は今それを行う方法は何をすることになります。

  • Connection
  • を作成し、それ
  • と近くの両方のステートメントを実行Statement
  • を作成し、接続

接続を開いたままにしておくか、creaのみ私の質問ごとに複数のステートメントがありますか?

+0

SQL Serverマシンをチェックしましたか?それは遅い/フレークであるかもしれませんか? – yshavit

+0

アプリケーションとSQL Serverは同じマシンにありますか? –

+0

@yshavitええ、私は自分のログを見ていて、また接続を確認するためにピンガーを作成しています。そこには問題ありません。 –

答えて

0

一度に1つの問題を取り上げます。最初にConnectionとしましょう。データベースへの Connectionは、作成して保持するためにリソースを大量に消費します。接続のプールを作成し、アプリケーションが停止するまでそれらの接続を保持することが賢明でしょう。このコンテキストでは、接続プールマネージャーは大きな助けになるかもしれません。私は個人的にApacheのDBCPを使用しており、便利で効率的であることがわかりました。他の選択肢もあります。接続が必要なときはプールから借用し、使用が完了したらそれを返す。

+0

プールの機能を使用して、借用前に接続が有効であり、接続がアイドル状態になっていることを確認します。 –