Tenho um aplicativo com uma conexão com um banco local no Derby, onde todo o mapeamento, classe de acesso aos Dados(DAO) ja foram implementados e devidamente testados. O meu problema surgiu depois da necessidade de inserir uma segunda conexão. Um banco de dados remoto mysql. Bom fiz o mapeamento(JPA/Hibernate, DAOs, etc). Então passei a ter duas Unidades de persistência no arquivo xml. Quando inicio a aplicação crio duas EntityManagerFactory uma para o banco local e outra para o banco remoto. Então faço acesso a alguns dados no banco local e não recebo nenhum erro. Em seguida faço uma consulta e uma atualização no meu banco remoto(mysql) e obtenho sucesso em ambas as operações e em um terceiro momento quando vou fazer uma operação de salvamento em uma tabela do meu banco local obtenho o seguinte erro:
15/10/2011 23:52:46 org.hibernate.util.JDBCExceptionReporter logExceptions
AVISO: SQL Error: 40000, SQLState: 08003
15/10/2011 23:52:46 org.hibernate.util.JDBCExceptionReporter logExceptions
GRAVE: Nenhuma conexão corrente.
15/10/2011 23:52:46 org.hibernate.util.JDBCExceptionReporter logExceptions
AVISO: SQL Error: 0, SQLState: null
15/10/2011 23:52:46 org.hibernate.util.JDBCExceptionReporter logExceptions
GRAVE: org.apache.derby.jdbc.EmbeddedDriver não está registrado com o gerenciador do driver JDBC
15/10/2011 23:52:46 org.hibernate.event.def.DefaultLoadEventListener onLoad
INFO: Error performing load command
org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:182)
at monitor.info.modelo.persistencia.monitorinfodb.dao.MonitorInfoJpaController.findMonitorInfo(MonitorInfoJpaController.java:123)
at monitor.info.modelo.persistencia.monitorinfodb.dao.MonitorInfoJpaController.create(MonitorInfoJpaController.java:43)
O erro ocorre no método que persiste o novo objeto no banco local. Será que eu perco a conexão do banco local (org.apache.derby.jdbc.EmbeddedDriver) quando acesso o banco mysql, pois quando não acesso o banco remoto o aplicativo roda normalmente e consigo salvar dados no banco local. Estou meio perdido com a situação. Se alguem tiver qualquer opinião, dica, fico grato.