Erro de persistência. Hibernate + duas chaves primárias!

Olá Pessoal,

Tenho uma base de dados oracle com uma tabela/entidade PrismaBoxReserva.
Quando quero listar os registro desta tabela tudo ocorre bem.
Quando quero inserir uma linha não consigo.
Nota: eu não posso criar/atualizar colunas desta base de dados. Então crio minhas classes verificando nas tabelas quais os tipos e nomes de cada coluna.

Colunas da tabela


prisma ------------------------- varchar2(6) -- id not null 
data_comeca ------------------ date -- id not null			
data_termina ------------------ date ------------ null
motivo ------------------------- varchar2(50) -- null
crm_cod_empresa ------------ integer --------- null
crm_cod_evento -------------- integer --------- null
placa --------------------------- varchar2(8) --- null

Class PrismaBoxReserva (conversão de tabela para class/bean)


@Table(name="PRISMA_BOX_RESERVA", schema="NBS")
@Entity
public class PrismaBoxReserva implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@Id
	private String prisma;
	
	@Id
	private Date data_comeca;
	
	private Date data_termina;
	
	@Column(columnDefinition="LONGTEXT")
	private String motivo;
	
	private Long crm_cod_empresa;
	
	private Long crm_cod_evento;
	
	private String placa;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name="prisma", unique = false, nullable = false)
	private PrismaBox prismaBox;

DAO (responsável por inserir o registro)


public ClienteEpico manterAgendamento(AgendamentoGravarClient agendamentoGravarClient) {
		
		PrismaBoxReserva reserva = new PrismaBoxReserva();
		
		reserva.setData_comeca( agendamentoGravarClient.getDataAgendar() );

		reserva.setData_termina( agendamentoGravarClient.getDataAgendar() );

		reserva.setPlaca( agendamentoGravarClient.getPlaca() );

		reserva.setPrisma( agendamentoGravarClient.getPrisma() );

		ClienteEpico clienteEpico = (ClienteEpico) sessionS.mysqlSession().get(ClienteEpico.class, agendamentoGravarClient.getId_clienteEpico());
		
		reserva.setMotivo( "On Line: Sr(a) " + clienteEpico.getNome() );
		
		try{
			
			Transaction tx = sessionS.oracleSession().beginTransaction();
			
			sessionS.oracleSession().persist( reserva );
				
			tx.commit();
			
			return clienteEpico;
			
		}catch (Exception e) { 
			
			E.exToMsg(e, "Erro na tentativa de manter gravar um agendamento on line."); 
			
			e.printStackTrace();
			
			return null;
			
		}	
		
	}

ERRO


Hibernate: insert into NBS.PRISMA_BOX_RESERVA (crm_cod_empresa, crm_cod_evento, data_termina, motivo, placa, prisma, data_comeca) values (?, ?, ?, ?, ?, ?, ?)
[27/52/2012 11:52]  WARN [http-bio-8080-exec-4] (JDBCExceptionReporter.java:233) - SQL Error: 17003, SQLState: null
[27/52/2012 11:52] ERROR [http-bio-8080-exec-4] (JDBCExceptionReporter.java:234) - Índice de coluna inválido
[27/52/2012 11:52] ERROR [http-bio-8080-exec-4] (AbstractFlushingEventListener.java:324) - Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not insert: [br.com.brabus.epico.model.agendamento.PrismaBoxReserva]
	at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2454)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2874)
	at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
	at br.com.brabus.epico.rest.dao.AgendamentoServiceDAO.manterAgendamento(AgendamentoServiceDAO.java:122)
	...
Caused by: java.sql.SQLException: Índice de coluna inválido
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
	at oracle.jdbc.driver.OraclePreparedStatement.setTimestampInternal(OraclePreparedStatement.java:7660)
	at oracle.jdbc.driver.OraclePreparedStatement.setTimestamp(OraclePreparedStatement.java:7634)
	... 65 more

Qualquer ajuda é muito bem vinda.
Abraços,
Jsign

Deixa eu entender, vc então tem uma chave composta? Ex: prisma + data_comeca?

Se for isso você pode fazer o seguinte, http://www.guj.com.br/java/204454-resolvido–mapeamento-de-chave-composta-no-hibernate-usando-annotation e também tem essa documentação: http://www.wedebug.it/2011/05/08/chaves-compostas-no-hibernate

Se continuar com dúvidas estamos ai!

Abs.

Já tentei mudar a DAO para insert manual (sem usar o session.persist(objeto) ) e nada, outro erro ocorreu:

[code] …
Transaction tx = sessionS.oracleSession().beginTransaction();

		// sessionS.oracleSession().persist( reserva );
			
		String insert = "insert into NBS.PRISMA_BOX_RESERVA (prisma, data_comeca, data_termina, motivo, placa, crm_cod_empresa, crm_cod_evento) values (" 
			+ "'" + agendamentoGravarClient.getPrisma() + "', " 
			+ "TO_DATE('" + Data.getData( "dd/MM/yyyy HH:mm", agendamentoGravarClient.getDataAgendar() ) + "','DD/MM/YYYY HH24:MI'), "
			+ "TO_DATE('" + Data.getData( "dd/MM/yyyy HH:mm", agendamentoGravarClient.getDataAgendar() ) + "','DD/MM/YYYY HH24:MI'), "
			+ "'On Line. Sr(a) " + clienteEpico.getNome() + "', "
			+ "'" + agendamentoGravarClient.getPlaca() + "', null, null)";
		
		sessionS.oracleSession().createQuery(insert);
		
		tx.commit();


[/code]

Erro

org.hibernate.hql.ast.QuerySyntaxException: unexpected token: values near line 1, column 120 [insert into NBS.PRISMA_BOX_RESERVA (prisma, data_comeca, data_termina, motivo, placa, crm_cod_empresa, crm_cod_evento) values ('XXXXX', TO_DATE('24/01/2012 08:00','DD/MM/YYYY HH24:MI'), TO_DATE('24/01/2012 08:00','DD/MM/YYYY HH24:MI'), 'On Line. Sr(a) XXXXXXXX', '123456', null, null)]
	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
	at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
	at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
	at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284)
	at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
	at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
	at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
	at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:124)
	at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
	at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
	at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1770)
	at br.com.brabus.epico.rest.dao.AgendamentoServiceDAO.manterAgendamento(AgendamentoServiceDAO.java:129)
...

Além do teste acima, fix outro teste removendo o relacionamento entre as classes PrismaBoxReserva e PrismaBox
Este foi o mais próximo que consegui chegar de resolver.
O console exibe a tentativa de execução do insert, mas depois de algum tempo tentando lança exeção (Time out).

Estou usando o VRaptor, alguém tem ai alguma idéia ?
Abraços, Jsign.

Olá rcnweb. Obrigado por responder.
Eu uso classes @Embeddable quando preciso usar o equals entre dois objetos de uma mesma classe que tenha dois ou mais @Id’s.
Quando não faço uso de comparações entre classes (equals) coloco os @Id’s na mesma classe.
Consegui persistir um dado usando uma classe teste criando uma sessão única do Oracle com Hibernate.

public static void main(String[] args) {

		AgendamentoServiceDAO dao = new AgendamentoServiceDAO(sessionS);
		
		AgendamentoGravarClient agendamentoGravarClient = new AgendamentoGravarClient();
		
		Calendar dataAgendar = Calendar.getInstance();
				dataAgendar.set(Calendar.DAY_OF_MONTH, 24);
				dataAgendar.set(Calendar.HOUR_OF_DAY, 8);
				dataAgendar.set(Calendar.MINUTE, 0);
				
		agendamentoGravarClient.setDataAgendar( dataAgendar.getTime() );
		
		agendamentoGravarClient.setPlaca("123456");
		
		agendamentoGravarClient.setPrisma("aaaaZ");
		
		agendamentoGravarClient.setId_clienteEpico(4l);
		
		dao.manterAgendamento(agendamentoGravarClient);
		
	}

A maneira acima rolou, usando a sessão logo de cara.

Acho que o problema está na Sessão quando a aplicação é iniciada (start tomcat).

Estou usando @SessionScoped em minha session.

@Component  
@ApplicationScoped  
public class MysqlSessionFactory {
  
	private static SessionFactory factory;  
    
	private static MysqlSessionFactory instance;  
    
    private MysqlSessionFactory() {
        factory = new Configuration().configure("mysqlHibernate.cfg.xml").buildSessionFactory();        
    }  
      
    public static SessionFactory getFactory() {
		if(factory == null){
			instance = new MysqlSessionFactory();
		}
    	return factory;  
    }
    
    public static MysqlSessionFactory getInstance() {
		if(factory == null){
			instance = new MysqlSessionFactory();
		}
    	return instance;  
    }
@Component  
public class SessionS{  
	
    private Session mysqlSession;
    
    private Session oracleSession;
    
    @SuppressWarnings("static-access")
	public SessionS(MysqlSessionFactory mysqlSessionFactory, OracleSessionFactory oracleSessionFactory) {
    	
         this.mysqlSession = mysqlSessionFactory.getFactory().openSession();
         
         this.oracleSession = oracleSessionFactory.getFactory().openSession();
         
    }
    
    public Session mysqlSession() {  
        return mysqlSession;
    }  
      
    public Session oracleSession() {
        return oracleSession;
    }  
    
	public static SessionS current() {
		
		SessionS sessionS = (SessionS) VRaptorRequestHolder.currentRequest().getRequest().getAttribute("sessionS");
		
		if( sessionS == null ){
			
			sessionS = new SessionS(
					MysqlSessionFactory.getInstance(), 
					OracleSessionFactory.getInstance()
				);
			
			VRaptorRequestHolder.currentRequest().getRequest().setAttribute("sessionS", sessionS); // SETA SESSION IN REQUEST APP
			
		}
		
		return sessionS;
		
	}

    @PreDestroy
    public void closeSessionS() {
        mysqlSession.close();
        oracleSession.close();
    }
    
}

Acredito que estou com algum problema de sessão, só não consegui identificar ainda qual é.
Será que alguém sabe o que pode estar acontecento!!

Abraços

Segue erro quando tento persistir usando a sessão iniciada com a aplicação @ApplicationScoped, pode ser util.

Could not synchronize database state with session
org.hibernate.exception.GenericJDBCException: could not insert: [br.com.brabus.epico.model.agendamento.PrismaBoxReserva]
	at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2454)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2874)
	at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:79)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:273)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265)
	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
	at br.com.brabus.epico.rest.dao.AgendamentoServiceDAO.manterAgendamento(AgendamentoServiceDAO.java:122)
	at 

Could not synchronize database state with session (Não sincroniza banco com sessão).

Será que é porque não posso alterar, apenas validar, as tabelas (hibernate.ora.config)

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

Alguma diferenca entre os dados/tipos de colunas da tabela Prisma_Box_Reserva e atributos da classe PrismaBoxReserva ?

Obrigado.
Abraços Jsign.

OLá, achei algo em http://ovictorpinto.wordpress.com/2011/11/22/jpa-oracle-blob/
Com erro bem similar. Então troquei o driver na experança de uma resolução mas não rolou.

 de ojdbc14.jar para ojdbc6.jar 

Continuo com o problema…
Abçs, Jsign.

realmente a sessão perde a conexão com o banco oracle

 INFO [Timer-0] (BasicResourcePool.java:1392) - A checked-out resource is overdue, and will be destroyed: com.mchange.v2.c3p0.impl.NewPooledConnection@d1afd3

Habilitei no debug o parametro

c3p0.debugUnreturnedConnectionStackTraces=true

e no log4j:

log4j.rootCategory=DEBUG,CONSOLE,EMAIL

O C3P0 parece querer retornar uma conexao válida ao hibernate e não consegue

Hibernate: insert into NBS.PRISMA_BOX_RESERVA (crm_cod_empresa, crm_cod_evento, data_termina, motivo, placa, prisma, data_comeca) values (?, ?, ?, ?, ?, ?, ?)
[27/27/2012 04:27] DEBUG [Timer-2] (UpdateChecker.java:54) - Checking for available updated version of Quartz…
[27/27/2012 04:27] DEBUG [Timer-1] (BasicResourcePool.java:1962) - Refurbishing idle resources - Fri Jan 27 16:27:58 BRST 2012 [com.mchange.v2.resourcepool.BasicResourcePool@c5a2f7]
[27/27/2012 04:27] DEBUG [Timer-1] (BasicResourcePool.java:1644) - trace com.mchange.v2.resourcepool.BasicResourcePool@c5a2f7 [managed: 3, unused: 3, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@148ab5c)
[27/27/2012 04:27] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@148ab5c] on IDLE CHECK.
[27/27/2012 04:27] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@e88e24] on IDLE CHECK.
[27/27/2012 04:27] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@27f394] on IDLE CHECK.
[27/27/2012 04:27] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@148ab5c] on IDLE CHECK has SUCCEEDED.
[27/27/2012 04:27] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@e88e24] on IDLE CHECK has SUCCEEDED.
[27/27/2012 04:27] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@27f394] on IDLE CHECK has SUCCEEDED.
[27/27/2012 04:27] DEBUG [Timer-2] (UpdateChecker.java:49) - Quartz version update check failed: connect timed out
[27/28/2012 04:28] DEBUG [Timer-0] (BasicResourcePool.java:1962) - Refurbishing idle resources - Fri Jan 27 16:28:13 BRST 2012 [com.mchange.v2.resourcepool.BasicResourcePool@10a0d51]
[27/28/2012 04:28] DEBUG [Timer-0] (BasicResourcePool.java:1644) - trace com.mchange.v2.resourcepool.BasicResourcePool@10a0d51 [managed: 3, unused: 2, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@1a8739b)
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@1f873dd] on IDLE CHECK.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@b99e4c] on IDLE CHECK.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@b99e4c] on IDLE CHECK has SUCCEEDED.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@1f873dd] on IDLE CHECK has SUCCEEDED.
[27/28/2012 04:28] DEBUG [DefaultQuartzScheduler_QuartzSchedulerThread] (QuartzSchedulerThread.java:268) - batch acquisition of 0 triggers
[27/28/2012 04:28] DEBUG [Timer-1] (BasicResourcePool.java:1962) - Refurbishing idle resources - Fri Jan 27 16:28:18 BRST 2012 [com.mchange.v2.resourcepool.BasicResourcePool@c5a2f7]
[27/28/2012 04:28] DEBUG [Timer-1] (BasicResourcePool.java:1644) - trace com.mchange.v2.resourcepool.BasicResourcePool@c5a2f7 [managed: 3, unused: 3, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@148ab5c)
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@148ab5c] on IDLE CHECK.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@e88e24] on IDLE CHECK.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@27f394] on IDLE CHECK.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@148ab5c] on IDLE CHECK has SUCCEEDED.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@e88e24] on IDLE CHECK has SUCCEEDED.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@27f394] on IDLE CHECK has SUCCEEDED.
[27/28/2012 04:28] DEBUG [Timer-0] (BasicResourcePool.java:1962) - Refurbishing idle resources - Fri Jan 27 16:28:33 BRST 2012 [com.mchange.v2.resourcepool.BasicResourcePool@10a0d51]
[27/28/2012 04:28] DEBUG [Timer-0] (BasicResourcePool.java:1644) - trace com.mchange.v2.resourcepool.BasicResourcePool@10a0d51 [managed: 3, unused: 2, excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@1a8739b)
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@1f873dd] on IDLE CHECK.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3] (C3P0PooledConnectionPool.java:315) - Testing PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@b99e4c] on IDLE CHECK.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@1f873dd] on IDLE CHECK has SUCCEEDED.
[27/28/2012 04:28] DEBUG [com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#3] (C3P0PooledConnectionPool.java:319) - Test of PooledConnection [com.mchange.v2.c3p0.impl.NewPooledConnection@b99e4c] on IDLE CHECK has SUCCEEDED.
[27/28/2012 04:28] DEBUG [Timer-1] (BasicResourcePool.java:1962) - Refurbishing idle resources - Fri Jan 27 16:28:38 BRST 2012 [com.mchange.v2.resourcepool.BasicResourcePool@c5a2f7]
[/code]

Niguém tem idéia do que está ocorrendo?

Esperando todo o debug lança no final o erro

java.lang.Exception: DEBUG ONLY: Overdue resource check-out stack trace.
	at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:506)
	at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
	at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
	at org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:78)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
	at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)
	at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81)
	at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)
	at br.com.brabus.epico.rest.dao.AgendamentoServiceDAO.manterAgendamento(AgendamentoServiceDAO.java:118)
	at br.com.brabus.epico.rest.controller.AgendamentoServiceController.disponibilidadeS(AgendamentoServiceController.java:156)