2016-10-14 6 views
1

マックスアクティブな接続:Tomcatのデータソース - 私は以下のコードを使用して1に、最大のアクティブな接続を設定

ConnectionPool initializePool(DataSource dataSource) { 
    if (!(org.apache.tomcat.jdbc.pool.DataSource.class.isInstance(dataSource))) { 
     return null; 
    } 
    org.apache.tomcat.jdbc.pool.DataSource tomcatDataSource = (org.apache.tomcat.jdbc.pool.DataSource) dataSource; 
    final String poolName = tomcatDataSource.getName(); 
    try { 
     ConnectionPool pool = tomcatDataSource.createPool(); 
     pool.getPoolProperties().setMaxActive(1); 
     pool.getPoolProperties().setInitialSize(1); 
     pool.getPoolProperties().setTestOnBorrow(true); 
     return pool; 
    } catch (SQLException e) { 
     logger.info(String.format(" !--! creation of pool failed for %s", poolName), e); 
    } 
    return null; 
} 

今使用してスレッドが、私は、DBへの同時接続数を開きました。私はまた、下記のコードを使用して現在の有効な接続数をプリントアウトしました。

System.out.println("Current Active Connections = " + ((org.apache.tomcat.jdbc.pool.DataSource) datasource).getActive()); 
System.out.println("Max Active Connections = " + ((org.apache.tomcat.jdbc.pool.DataSource) datasource).getMaxActive()); 

次のような結果が表示されます。アクティブな接続が1より大きいと表示されていますが、最大アクティブな接続を1に制限したいと思います。設定が必要な他のパラメータはありますか?

現在のアクティブ接続= 1

EDIT = 9つの

マックスアクティブな接続:私はアクティブ最大として15または20にしようとすると、しかし、それはそれぞれ常に15または20に制限されています。

答えて

1

はmaxIdleとminIdle

ConnectionPool pool = tomcatDataSource.createPool(); 
pool.getPoolProperties().setMaxActive(1); 
pool.getPoolProperties().setInitialSize(1); 
pool.getPoolProperties().setMaxIdle(1); 
pool.getPoolProperties().setMinIdle(1); 
pool.getPoolProperties().setTestOnBorrow(true); 
+0

おかげ@Issamで試してみてください。私はそれを試しましたが、それは同じです –

関連する問題