2016-04-22 2 views
0
<beans:bean id="scimDataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
     <beans:property name="driverClassName" value="${oracle.driver}" /> 
     <beans:property name="url" value="${oracle.url}" /> 
     <beans:property name="username" value="${oracle.user}" /> 
     <beans:property name="password" value="${oracle.password}" /> 
     <beans:property name="initialSize" value="2" /> 
     <beans:property name="maxActive" value="15" /> 
     <beans:property name="maxIdle" value="3" /> 
    </beans:bean> 

これは、プールを作成するために使用して構成イムです。 2つの接続を、アプリケーションが起動するとすぐに開くようにします。 しかし、私は最初のリクエストを作成した後、最初の接続を開くようになりました。アプリケーションを配備するとすぐにすべての接続を開く方法は?

は、どのように私は初め自体にすべての接続を開くことができますか?

+1

2つではなく1つだけ開いたことをどのように知っていますか? –

+0

応答時間に基づいています。最初の接続に時間がよりかかります。最初の呼び出しの後、接続が即座に返されます。最初に別の呼び出しを並列に行うと、もう一度長時間を要します.2つの接続が既に初期化さ速いはずです。 –

+0

私は時間のかかる代わりにDB内のアクティブな接続を確認することをお勧めします。 MySqlを使用する場合は、これを参照できます。 http://stackoverflow.com/questions/7432241/mysql-show-status-active-or-total-connections –

答えて

2

https://commons.apache.org/proper/commons-dbcp/configuration.html

paramenter INITIALSIZE - プールが開始されたときに作成される接続の初期数。

+0

しかし最初は開けません。私が最初の呼び出しを行うとすぐに、その開始。必要なコードやパラメータを追加する必要がありますか? –

+0

さて、testOnCreateパラメータはどうですか?私は、SantoshがinitialSizeパラメータを持っていて、まだ動作しないと思いますか?なぜ彼はそれをやっている理由に関係なく、実際に接続を開いてtestOnCreateしないでしょうか?またはvalidationQueryを実行しますか? – holmicz

+0

それはプールの問題ではないかもしれませんが、春にはBeanをロードしていません。 [スタックオーバーフローの質問](http://stackoverflow.com/questions/6684451/executing-a-java-class-at-application-startup-using-spring-mvc) – Patrick

関連する問題