como disponivel.Quando o numero de conexoes que os clientes abremusando o pool passa do numero de conexoes que o connection pool mantem abertas,o pool abre uma nova conexao com o banco de dados, a nao ser que tenha atingidoum numero maximo de conexoes reais, caso no qual seria lancada uma excecao. (http://www.devmedia.com.br/connection-pool/5869)Neste contexto eu tive uma certa dificuldade emconfigurar um pool de conexoes com JPA. O cenario era um sistema REST que jaestava em producao utilizando Hibernate puro e realizava o pool com C3P0 (jafalaremos dele). Ao colocar as dependencias e configuracoes do JPA o pool parade funcionar.Como foi dificil achar a solucao, vou compartilhar comvoces duas configuracoes de pool, uma direto no servidor Tomcat e outra atravesdo C3P0. Pool de Conexao no Tomcat.Primeiramente realizamos aconfiguracao no Tomcat atraves dos arquivos server.xml e contexto.xml.Pool de conexao configurado noarquivo server.xml do Tomcat na tag atraves de umdatasource. <Resource name="jdbc/TesteDB" auth="Container" type="javax.sql.DataSource" validationInterval="30000" timeBetweenEvictionRunsMillis="30000" maxActive="100" minIdle="10" maxWait="10000" initialSize="10" minEvictableIdleTimeMillis="30000" jmxEnabled="true" jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState; org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer; org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer" username="dev" password="dev@1" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://192.168.0.165:5432/teste_v_3_1_0"/> No arquivo context.xml do Tomcat,referenciar o datasource criado. <ResourceLink name="jdbc/TesteDB" global="jdbc/TesteDB" auth="Container" type="javax.sql.DataSource" /> Agora vamos para aplicacao e no arquivoweb.xml, referenciamos o datasource atraves do codigo abaixo. <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/TesteDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> Como a aplicacao esta utilizando JPA, no arquivo persistence.xml fazemos referencia ao datasource com a linha de codigo abaixo: <non-jta-data-source>java:/comp/env/jdbc/TesteDB</non-jta-data-source> Obs: deve ficar logo abaixo da tag.Ainda no persistence, inclua apenas a propriedade de dialeto. <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" /> Agora a parte mais importante, ea causa de todo o trabalho para configuracao, utilizar a versao 5.0.4 ousuperior do hibernate-entitymanger, pois as versoes inferiores possui um bug nautilizacao de datasource no JPA, o que causou uma certa dor de cabeca. Abaixoas dependencia no arquivo pom do Maven. <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.0.4.Final</version> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.0.GA</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.2.2.Final</version> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.0.Final</version> </dependency> Pool de Conexao com C3P0c3p0e uma biblioteca facil de usar para drivers JDBC tradicionais"enterprise-ready", mechorando sua funcionalidade definida pelaespecificacao JDBC3 e as extensoes opcionais para JDBC2. A partir da versao 0.9.5, c3p0 apoiaplenamente a especificacao JDBC4.Em particular, c3p0 fornece variosservicos uteis:Uma classe para adaptar os drivers JDBC tradicionais baseados em DriverManager para o mais recente regime de aquisicao de conexoes de banco de dados atraves do javax.sql.DataSource.Pooling transparente de Conexao e PreparedStatements.A biblioteca se esforca para acertar osdetalhes:DataSources c3p0 sao ambos Referenciavel e Serializable, e sao, portanto, adequados para a ligacao de uma ampla variedade de servicos de nomenclatura baseado em JNDI.Declaracao e ResultSets sao cuidadosamente limpos quando Conexoes e Demonstracoes sao alocadas, para evitar a exaustao em recursos quando os clientes usam a estrategia de gestao de recursos Lazy, mas comum do que apenas limpar suas conexoes. A biblioteca adota a abordagem definida pela especificacao JDBC 2 e 3. DataSources sao escritos no estilo JavaBean, oferecendo todo o necessario e a maioria das propriedades opcionais. Todas as interfaces internas JDBC-definidos sao implementadas (ConnectionPoolDataSource, PooledConnection, ConnectionEvent-generating Connections, etc.) Voce pode misturar as classes c3p0 com implementacoes de terceiros (embora nem todos os recursos c3p0 ira trabalhar com implementacoes externas de ConnectionPoolDataSource).c3p0 espera fornecer implementacoes deDataSource mais