Вам нужно закрыть соединение, которое вы получаете из пула соединений jdbc? - PullRequest
2 голосов
/ 19 апреля 2011

Предположим, у меня есть следующий код

DataSource source = (DataSource) (new InitialContext()).lookup("jdbc/myName"); 
Connection connnection = source.getConnection() 

//use the connection to do some database operations...

в конце, должен ли я все еще вызывать

connection.close(), чтобы освободить ресурс?

Если соединениеиз пула соединений, если я ничего не делаю, соединение должно автоматически возвращаться в пул, верно?

С другой стороны, если я закрою его, будет ли какое-либо неблагоприятное воздействие на пул соединений (т. Е. После нескольких вызовов не останется ли соединение в пуле?)

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

Ответ - да, и проверьте Закрытие подключений JDBC в пуле и Рекомендации по созданию пулов соединений JDBC для получения дополнительной информации.

1 голос
/ 19 апреля 2011

Да, вы должны закрывать соединение, хотя бы для быстрого восстановления в пуле.

В этой статье http://www.javaranch.com/journal/200601/JDBCConnectionPooling.html рекомендуется размещение вызова .close () в блоке finally.

...