2012-04-16 8 views
0

こんにちは、私はどのようにデータベース接続を減らす方法を説明することができます。私は接続プーリングの概念を使用して、Javaとjdbcで1つのアプリケーションを開発しました。私のアプリケーションでは、MaxActive = 200をこのオープニングに与えるのはわずか200接続です。しかし、私の場合、アプリケーションが起動すると、1400のデータベース接続が開かれます。処理方法を教えてください。データベース接続を減らすには?

<Resource 
      name="jdbc/tm4u" 
      auth="Container" 
      type="javax.sql.DataSource" 
      driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
      url="jdbc:sqlserver://192.168.1.230:1433;databaseName=XX;User=abc;Password=****;selectMethod=cursor" 
     username="abc" 
     password="******" 
       maxActive="200" 
     maxWait ="100" 

     maxIdle="10" 
      /> 

上記のコードはJNDI構成ファイルです。

+1

1400接続を開始する方法を知っていますか? –

+0

この1400データベース接続をmaxActiveレベルに減らしたいですか? – UVM

+0

AMクエリを使用してカウントを確認しています。それは常に1400+ –

答えて

0

基本的に、接続オブジェクトでcloseメソッドを呼び出す必要があります。

  1. 最良の答えは、接続を一度開いてConnectionオブジェクトを保存することです。ドライバマネージャ(DriverManager.getConnection)またはJDBCドライバ固有のクラス(SQLConnect.getConnection())から最初にConnectionオブジェクトを取得するときに、接続を開きます。このオブジェクトをクラス内のインスタンス変数または必要に応じて静的変数に保存します。アプリケーションを終了する直前に接続を閉じます(connection.close())。

  2. シングルトンパターンを使用してクラスの静的インスタンスを実装します。シングルトンのコンストラクタで接続を開き、それをインスタンス変数として保存します。接続が必要なときはいつも、シングルトンオブジェクトのメソッドを呼び出します。シングルトンのデストラクタでconnection.close()メソッドを呼び出します。

  3. 接続を開くときはいつでも、すべてのステートメントが終了したらclose()を呼び出します。

関連する問題