DBCP Возвращает замкнутые соединения

Мы видим ситуации, когда наша база данных соединение из org.apache.commons.dbcp.basicdataSource умирает с ошибками сокета записи:

com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: socket write error

все последующие попытки написать Конечно, соединение не удается:

com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed.

после обновления кода, чтобы поймать такие исключения и запрашивать новое соединение, когда это происходит, это Альтену снова. Я правильно подозреваю, что звонить DataSource # GetConnection () на самом деле не дает новое соединение каждый раз, когда он называется? Разве это не просто не используемое существующее соединение, которое закрыто?

Если я правильно, какой правильный способ выбросить старое соединение и запросить новый?

Отредактировать: вот еще более заклинание Что я хотел бы знать:

Connection c1, c2;
c1 = DatabaseManager.getConnection();
// c1.close() not called
c2 = DatabaseManager.getConnection(); 

- это «C1 == C2» истинное утверждение? Или были выделены два соединения? И если это последнее, подобно бы, как это представляет собой «утечку бассейна соединения»:

Connection c1;
c1 = DatabaseManager.getConnection();
// c1.close() not called
c1 = DatabaseManager.getConnection();
5
задан skaffman 14 September 2011 в 17:05
поделиться