私はしばらくTomcatを使用しています。しかし、それが実際にどのように機能するか、特にスレッド プーリングと JDBC 接続プーリングについて十分に理解したことがありません。
たとえば、標準の Spring Web アプリ (c3p0 接続プールを使用) を考えてみましょう。私の質問は
TC の起動時に、それぞれが applicationContext を持つ N 個のスレッドを作成しますか?
もしそうなら、それは各スレッドが作成された Bean インスタンスの独自のリストを持つことを意味しますか?
Bean 定義の 1 つは
<bean id="dataSource" class = "com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${db.driverClassName}"/> <property name="jdbcUrl" value="${db.url}"/> <property name="user" value="${db.username}"/> <property name="password" value="${db.password}"/> <property name="minPoolSize" value="5" /> </bean>
これにより、この Bean の作成時に 5 つの JDBC 接続が作成されます。それは私たちがで終わるつもりだということですか
5 接続 x N スレッド = 5N 接続?
これは私には正しく聞こえません。JDBC プールはすべてのスレッドで共有されていると思いました。しかし、JDBC プール (ComboPooledDataSource Bean として定義) は、applicationContext の一部として作成されているようですよね?