Chúng tôi đang chạy ứng dụng spring/hibernate/c3p0 đang được tải. Khi tôi giảm tối đa c3p0 maxPoolSize xuống một số, thấp hơn nhiều so với số lượng người dùng đồng thời, ứng dụng của chúng tôi chỉ bị treo. Không có thông báo lỗi trong nhật ký, nhưng nó cũng không tiến hành.Mất kết nối Hibernate/c3p0
Tôi hy vọng ứng dụng sẽ chậm lại, nhưng không dừng lại hoàn toàn.
Dưới đây là cấu hình C3P0 của chúng tôi:
<bean id="coreDataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close"
p:driverClass="${core.jdbc.driver}"
p:jdbcUrl="${core.jdbc.url}"
p:user="${core.jdbc.user}"
p:acquireIncrement="5"
p:acquireRetryAttempts="10"
p:acquireRetryDelay="5000"
p:initialPoolSize="52"
p:maxIdleTime="3600"
p:maxIdleTimeExcessConnections="300"
p:minPoolSize="52"
p:maxPoolSize="125"
p:numHelperThreads="6"
p:unreturnedConnectionTimeout="0">
<property name="password">
<bean class="com.docfinity.util.encryption.SpringStringDecrypter"
p:decryptFlag="${core.jdbc.decryptPasswordFlag}"
p:encryptedString="${core.jdbc.password}" />
</property>
</bean>
này sẽ bị khóa nếu tôi ném một 160 người đã ở đó.
Tôi đã cố gắng thiết lập unreturnedConnectionTimeout thành điều gì đó tích cực (120 giây) và xem các dấu vết ngăn xếp hiển thị trong ứng dụng của chúng tôi. Các dấu vết ngăn xếp là từ các phương pháp khác nhau khác nhau trong ứng dụng của chúng tôi. Nó không giống như có một phương pháp chúng ta có thể chỉ ra và nói rằng đó là các kết nối bị rò rỉ.
Bất kỳ trợ giúp nào gỡ lỗi vấn đề này sẽ được đánh giá cao nhất.