Problema com VRaptor / Hibernate

3 respostas
G

Oi pessoal,

Eu tenho uma aplicação que está dando problema após ficar algum tempo no ar. Depois de algum tempo com o servidor no ar, dá o seguinte erro:

org.hibernate.exception.JDBCConnectionException: could not prepare statement
	org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:67)
	org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)
	org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125)
	org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:188)
	org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:159)
	org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1859)
	org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1836)
	org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1816)
	org.hibernate.loader.Loader.doQuery(Loader.java:900)
	org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342)
	org.hibernate.loader.Loader.doList(Loader.java:2526)
	org.hibernate.loader.Loader.doList(Loader.java:2512)
	org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2342)
	org.hibernate.loader.Loader.list(Loader.java:2337)
	org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:124)
	org.hibernate.internal.SessionImpl.list(SessionImpl.java:1668)
	org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
	br.com.metamorfosevirtual.daos.ConvenioDao.visualizar(ConvenioDao.java:23)
	br.com.metamorfosevirtual.interceptors.DaoInterceptor.intercept(DaoInterceptor.java:32)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.metamorfosevirtual.interceptors.HibernateInterceptor.intercept(HibernateInterceptor.java:30)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:93)
	br.com.caelum.vraptor.ioc.guice.GuiceProvider.provideForRequest(GuiceProvider.java:82)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:99)
root cause

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	java.lang.reflect.Constructor.newInstance(Constructor.java:526)
	com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	com.mysql.jdbc.Util.getInstance(Util.java:386)
	com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
	com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
	com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
	com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
	com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1304)
	com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1296)
	com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4511)
	com.mysql.jdbc.ConnectionImpl.prepareStatement(ConnectionImpl.java:4476)
	org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:161)
	org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:182)
	org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:159)
	org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1859)
	org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1836)
	org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1816)
	org.hibernate.loader.Loader.doQuery(Loader.java:900)
	org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342)
	org.hibernate.loader.Loader.doList(Loader.java:2526)
	org.hibernate.loader.Loader.doList(Loader.java:2512)
	org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2342)
	org.hibernate.loader.Loader.list(Loader.java:2337)
	org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:124)
	org.hibernate.internal.SessionImpl.list(SessionImpl.java:1668)
	org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
	br.com.metamorfosevirtual.daos.ConvenioDao.visualizar(ConvenioDao.java:23)
	br.com.metamorfosevirtual.interceptors.DaoInterceptor.intercept(DaoInterceptor.java:32)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.metamorfosevirtual.interceptors.HibernateInterceptor.intercept(HibernateInterceptor.java:30)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:93)
	br.com.caelum.vraptor.ioc.guice.GuiceProvider.provideForRequest(GuiceProvider.java:82)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:99)
root cause

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet successfully received from the server was 29,362,473 milliseconds ago.  The last packet sent successfully to the server was 6 milliseconds ago.
	sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
	sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	java.lang.reflect.Constructor.newInstance(Constructor.java:526)
	com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
	com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121)
	com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3603)
	com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3492)
	com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4043)
	com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
	com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
	com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2815)
	com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
	com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2322)
	org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:56)
	org.hibernate.loader.Loader.getResultSet(Loader.java:2040)
	org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1837)
	org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1816)
	org.hibernate.loader.Loader.doQuery(Loader.java:900)
	org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342)
	org.hibernate.loader.Loader.doList(Loader.java:2526)
	org.hibernate.loader.Loader.doList(Loader.java:2512)
	org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2342)
	org.hibernate.loader.Loader.list(Loader.java:2337)
	org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:124)
	org.hibernate.internal.SessionImpl.list(SessionImpl.java:1668)
	org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
	br.com.metamorfosevirtual.daos.ConvenioDao.visualizar(ConvenioDao.java:23)
	br.com.metamorfosevirtual.interceptors.DaoInterceptor.intercept(DaoInterceptor.java:32)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.metamorfosevirtual.interceptors.HibernateInterceptor.intercept(HibernateInterceptor.java:30)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:93)
	br.com.caelum.vraptor.ioc.guice.GuiceProvider.provideForRequest(GuiceProvider.java:82)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:99)
root cause

java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
	com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:3052)
	com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3503)
	com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3492)
	com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4043)
	com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2503)
	com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2664)
	com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2815)
	com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
	com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2322)
	org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:56)
	org.hibernate.loader.Loader.getResultSet(Loader.java:2040)
	org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1837)
	org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1816)
	org.hibernate.loader.Loader.doQuery(Loader.java:900)
	org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:342)
	org.hibernate.loader.Loader.doList(Loader.java:2526)
	org.hibernate.loader.Loader.doList(Loader.java:2512)
	org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2342)
	org.hibernate.loader.Loader.list(Loader.java:2337)
	org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:124)
	org.hibernate.internal.SessionImpl.list(SessionImpl.java:1668)
	org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:374)
	br.com.metamorfosevirtual.daos.ConvenioDao.visualizar(ConvenioDao.java:23)
	br.com.metamorfosevirtual.interceptors.DaoInterceptor.intercept(DaoInterceptor.java:32)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.metamorfosevirtual.interceptors.HibernateInterceptor.intercept(HibernateInterceptor.java:30)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:93)
	br.com.caelum.vraptor.ioc.guice.GuiceProvider.provideForRequest(GuiceProvider.java:82)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:99)

O estranho é que minha aplicação funciona sem problemas por um bom tempo. Mas depois de uns 3 dias com o site no ar (as vezes até mais), dá algum erro interno e essa exceção é lançada em qualquer request. Eu acho que o Vraptor está se perdendo com as conexões do banco de dados. Eu estou criando as conexões da seguinte forma:

Session Factory:
@Component
@ApplicationScoped
public class HibernateSessionFactory implements
		ComponentFactory<SessionFactory> {

	private SessionFactory factory;

	@PostConstruct
	public void construtor() {
		Configuration configuration = new Configuration();
		configuration.configure();
		this.factory = configuration.buildSessionFactory();
	}

	public SessionFactory getInstance() {
		return this.factory;
	}

	@PreDestroy
	public void destrutor() {
		this.factory.close();
	}
}
Session:
@Component
public class HibernateSession implements ComponentFactory<Session> {

	private SessionFactory factory;
	private Session session;

	public HibernateSession(SessionFactory factory) {
		this.factory = factory;
	}

	@PostConstruct
	public void construtor() {
		this.session = factory.openSession();
	}

	public Session getInstance() {
		return this.session;
	}

	@PreDestroy
	public void destrutor() {
		this.session.close();
	}

}

E nos lugares que eu preciso, recebo uma Session por injeção. Alguém tem alguma dica do que pode ser?

3 Respostas

Rafael_Guerreiro

A culpa ai é do MySql na verdade… Ele mata as conexões por inatividade de 8 horas (default)…

Poste a configuração do seu Hibernate, pois basta você incluir as configurações do C3P0 que ele vai criar conexões novas para você…

Você define o timeout, ou seja, se colocar um timeout menor que 8 horas, nunca vai dar tempo do MySql matar essa conexão…

G
As configurações que estou usando são essas:
<!DOCTYPE hibernate-configuration PUBLIC
  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password"></property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost/rateioamigo</property>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

		<property name="hibernate.hbm2ddl.auto">update</property>

		<!-- <property name="show_sql">true</property> -->
		<!-- <property name="format_sql">true</property> -->
		<!-- <property name="use_sql_comments">true</property> -->

		<mapping class="br.com.metamorfosevirtual.models.Broadcast" />
		<mapping class="br.com.metamorfosevirtual.models.Cliente" />
		<mapping class="br.com.metamorfosevirtual.models.Convite" />
		<mapping class="br.com.metamorfosevirtual.models.Evento" />
		<mapping class="br.com.metamorfosevirtual.models.Item" />
		<mapping class="br.com.metamorfosevirtual.models.Mesa" />
		<mapping class="br.com.metamorfosevirtual.models.Newsletter" />
		<mapping class="br.com.metamorfosevirtual.models.Restaurante" />
		<mapping class="br.com.metamorfosevirtual.models.Satisfacao" />
	</session-factory>
</hibernate-configuration>

Quais configurações você recomenda que eu use?
Obrigado pela ajuda. :)

Rafael_Guerreiro

Faltaram algumas propriedades do c3p0 (precisa verificar antes se você tem o jar dele no seu projeto)

Você vai precisar entender o que cada uma dessas faz e qual o valor mais adequado para os seus projetos.

&lt;property name="hibernate.connection.provider_class"&gt;org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider&lt;/property&gt;
&lt;property name="hibernate.c3p0.acquire_increment"&gt;1&lt;/property&gt;
&lt;property name="hibernate.c3p0.timeout"&gt;180&lt;/property&gt; &lt;!-- segundos --&gt;
&lt;property name="hibernate.c3p0.min_size"&gt;2&lt;/property&gt;
&lt;property name="hibernate.c3p0.max_size"&gt;10&lt;/property&gt;
&lt;property name="hibernate.c3p0.max_statements"&gt;0&lt;/property&gt;
Criado 1 de março de 2014
Ultima resposta 2 de mar. de 2014
Respostas 3
Participantes 2