Użyj org.postgresql.ds.PGPoolingDataSource
Oto przykład:http://jdbc.postgresql. org/documentation/head/ds-ds.html
Sprawdziłem ten przykład za pomocą sterownika JDBC4 i działał bez zarzutu.
Jednak w dokumentacji z tego linku odradza się korzystanie ze źródła danych postgreSQL ze względu na jego ograniczenia:
Zalecają korzystanie z puli połączeń DBCP:http://commons.apache.org/proper/ commons-dbcp/
sprawdź, jest znacznie lepiej - wystarczy pobrać pliki biblioteki, umieścić je w łacie klasy i zaimportować do projektu, dokumentacja z powyższego linku zawiera przykłady jak to wykorzystać w kodzie.
Najczęściej (wszystkie? ) serwery aplikacji implementują własne pule połączeń, jeśli używasz serwera aplikacji, jest to najlepsza opcja.
Na przykład Tomcat 7 ma własną implementację puli połączeń, jest nawet lepsza niż DBCP, sprawdź dokumentację:http://tomcat.apache.org/tomcat-7.0-doc/jdbc -pool.html