Org.hibernate.exception.GenericJDBCException: Cannot open connection - MySQL e JavaDB Embedded

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.

posta seu persistence.xml e seu codigo.

arquivo persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="MonitorINFO-V3PU-marceloDB" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>monitor.info.modelo.persistencia.marcelodb.Aplicativo</class>
    <class>monitor.info.modelo.persistencia.marcelodb.Chave</class>
    <class>monitor.info.modelo.persistencia.marcelodb.IdentidadePC</class>
    <class>monitor.info.modelo.persistencia.marcelodb.Usuario</class>
    <properties>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
    </properties>
  </persistence-unit>
  <persistence-unit name="MonitorINFO-V3PU-JavaDB" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>monitor.info.modelo.persistencia.monitorinfodb.AplicativoRede</class>
    <class>monitor.info.modelo.persistencia.monitorinfodb.AplicativoUsuario</class>
    <class>monitor.info.modelo.persistencia.monitorinfodb.Estacao</class>
    <class>monitor.info.modelo.persistencia.monitorinfodb.LogEstacaoUsuario</class>
    <class>monitor.info.modelo.persistencia.monitorinfodb.Monitor</class>
    <class>monitor.info.modelo.persistencia.monitorinfodb.MonitorInfo</class>
    <class>monitor.info.modelo.persistencia.monitorinfodb.PerfilEstacao</class>
    <class>monitor.info.modelo.persistencia.monitorinfodb.PerfilSistema</class>
    <class>monitor.info.modelo.persistencia.monitorinfodb.PropriedadeSistema</class>
    <class>monitor.info.modelo.persistencia.monitorinfodb.UsuarioEstacaoinfo</class>
    <properties>
      <property name="hibernate.connection.username" value="monitor"/>
      <property name="hibernate.connection.driver_class" value="org.apache.derby.jdbc.EmbeddedDriver"/>
      <property name="hibernate.connection.password" value="monitorando"/>
      <property name="hibernate.connection.url" value="jdbc:derby:/home/marcelo/javadb/bancos/MONITORINFO_DB"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
    </properties>
  </persistence-unit>
</persistence>

Classe Persistencia:

public class Persistencia {

    private static EntityManagerFactory monitorInfoJavaDB;
    private static EntityManagerFactory marceloDB;

    public static EntityManagerFactory getMonitorInfoJavaDB() {
        if (monitorInfoJavaDB == null) {
            Map map = new LinkedHashMap();
            map.put("hibernate.connection.driver_class", "org.apache.derby.jdbc.EmbeddedDriver");
            map.put("hibernate.connection.username", "monitor");
            map.put("hibernate.connection.password", "monitorando");
            map.put("hibernate.connection.url", "jdbc:derby:/home/marcelo/javadb/bancos/MONITORINFO_DB");
            map.put("hibernate.cache.provider_class", "org.hibernate.cache.NoCacheProvider");
            monitorInfoJavaDB = Persistence.createEntityManagerFactory("MonitorINFO-V3PU-JavaDB",map);
        }

        return monitorInfoJavaDB;
    }

    public static EntityManagerFactory getMarceloDB() {
        if (marceloDB == null) {
            Map map = new LinkedHashMap();
            map.put("hibernate.connection.url", "jdbc:mysql://IP-SERVIDOR-REMOTO:3306/MARCELO_DB");
            map.put("hibernate.connection.username", "USER");
            map.put("hibernate.connection.password", "SENHA");
            marceloDB = Persistence.createEntityManagerFactory("MonitorINFO-V3PU-marceloDB", map);
        }

        return marceloDB;
    }

}

metodo onde ocorre o erro

private void registrarMonitor(){
        MonitorInfo monitorInfo = new MonitorInfo(chave.getIdchave());
        monitorInfo.setValidacao(20);
        monitorInfo.setValidado(Short.valueOf("1"));
        Monitor monitor = new Monitor();
        monitor.setNome(txtNome.getText());
        monitor.setEmail(txtEmail.getText());
        monitor.setLogin(txtLogin.getText());
        monitor.setSenha(new String(txtSenha.getPassword()));
        MonitorInfoJpaController jpamf = new MonitorInfoJpaController(null, Persistencia.getMonitorInfoJavaDB());

        try {
            jpamf.create(monitorInfo); //aqui ocorre o erro, esta classe foi criada através do assistente do netbens 7 com um CRUD para a classe de entidade MonitorInfo , ja verifiquei a classe e funciona quando não acesso o mysql
        } catch (PreexistingEntityException ex) {
            Logger.getLogger(Splash.class.getName()).log(Level.SEVERE, null, ex);
        } catch (Exception ex) {
            Logger.getLogger(Splash.class.getName()).log(Level.SEVERE, null, ex);
        }

        MonitorJpaController jpa = new MonitorJpaController(null, Persistencia.getMonitorInfoJavaDB());
        try {
            jpa.create(monitor);
        } catch (Exception ex) {
            Logger.getLogger(Splash.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

nunca trabalhei com Derby, mas verifique duas coisas:
1 - seu banco está realmente de pé
2 - ve esse link de configuração http://agoncal.wordpress.com/2009/07/05/jpa-2-0-standard-properties-in-persistence-xml/

t+

então cara. Inicialmente eu sei que ele esta em pé, pois eu acesso algumas tabelas no banco local(derby) porém depois que eu acesso o mysql e tento acessar novamente o banco local(derby) é que recebo este erro. Muito estranho. Mas vou dar mais uma olhada ver se encontro algo, do contrario vou ter que mudar a estratégia. Valeu!