2012-04-16 110 views
0

嗨任何人都可以解釋我如何減少數據庫連接。我使用連接池概念在java和jdbc中開發了一個應用程序。但在我的應用程序中給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連接? – 2012-04-16 06:24:19

+0

所以你想減少這1400個數據庫連接到maxActive水平? – UVM 2012-04-16 06:26:31

+0

AM使用查詢檢查計數..它總是1400+ – 2012-04-16 06:27:27

回答

0

基本上你需要調用連接對象的close方法。

  1. 最好的答案是打開連接一次並保存Connection對象。首次從驅動程序管理器(DriverManager.getConnection)或JDBC驅動程序特定的類(SQLConnect.getConnection())獲取Connection對象時,可以打開連接。如有必要,將此對象保存在類或靜態變量的實例變量中。在結束您的應用程序(connection.close())之前關閉連接。

  2. 使用單例模式實現類的靜態實例。在單例的構造函數中打開連接,並將其保存爲實例變量。無論何時需要連接,都可以在單例對象上調用一個方法。在單例的析構函數中調用connection.close()方法。

  3. 每當你打開一個連接,當你完成所有的語句後,調用close()。