Java DB com Hibernate - ERROR XSDB6

Olá pessoal,

Usei o assistente do netbeans 7.2 para criar o hibernante.cfg.xml, obtendo sucesso no teste de conexão com Java Db embedded. Tanto que foi criada uma conexão na aba de serviços do netbeans para este banco, onde aproveitei e criei uma tabela, adicionando em seguida um registro nela.

O erro abaixo surge ao tentar criar o hibernate.reveng via assistente do netbeans 7.2.

no assistente surge:
Não foi possível estabelecer a conexão do banco de dados com o arquivo de Configuração do Hibernate selecionado . Verifique os detalhes da conexão ao banco de dados em hibernate.cfg.xml.

no log do ide surge:
INFO [org.netbeans.modules.hibernate.util.HibernateUtil]: Found pre-existing database connection.
INFO [org.netbeans.modules.hibernate.util.HibernateUtil]: Database Connection is pre-established. Returning the conneciton.
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: Initializing Custom Classloader with classpath :
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/antlr-2.7.6.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/asm.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/asm-attrs.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/cglib-2.1.3.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/commons-collections-2.1.1.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/org-apache-commons-logging.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/dom4j-1.6.1.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/ehcache-1.2.3.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/jdbc2_0-stdext.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/jta.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/hibernate3.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/hibernate-tools.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/hibernate-annotations.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/hibernate-commons-annotations.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/hibernate-entitymanager.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/hibernate-support/javassist.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/ejb3-persistence/ejb3-persistence.jar!/
INFO [org.netbeans.modules.hibernate.util.CustomClassLoader]: jar:file:/C:/Users/vicente/Documents/NetBeansProjects/JavaApplication/lib/derby.jar!/
[color=red]INFO [org.netbeans.modules.hibernate.service.spi.HibernateEnvironmentImpl]: Cannot establish direct database connection
ERROR XSDB6: Another instance of Derby may have already booted the database C:\Users\vicente\AppData\Roaming\NetBeans\7.2\derby\teste.
[/color]

Banco de dados embedded permite uma única instancia do banco por vez, ou seja, um único acesso, acessos simultâneos não são permitidos.
Segundo a exceção que você postou, você está tentando acessar uma instancia que já está sendo acessada.
ERROR XSDB6: Another instance of Derby may have already booted the database

Pois é romarcio,

Mas como se explica que eu tenha acabado de criar o projeto, nem ao menos o executei e surge este problema ?

Meu netbeans tá o padrão. O Java DB já veio nele, não tive necessidade de realizar nenhum download para incluí-lo. Assim que crio o hibernate.cfg.xml os .jar referente ao hibernate, ejb3.persistence.jar e derby.jar (que sei que se trata do Java DB) já são incluídos na árvore do projeto.

Já criei novo projeto do zero, com outro nome de banco em Java DB e acontece o mesmo problema.

Já testei da seguinte forma também: antes de tentar criar o hibernate.reveng, desconectei a conexão existente na aba serviços para tal banco. Ao passar para a segunda tela deste wizard, a conexão é restabelecida e depois surge a mensagem que informei anteriormente.

Bom, pode ser algum bug no netbeans então. Porque você não usa outro banco de dados, tipo o MySQL? Ou precisa em seu projeto utilizar um banco embarcado?

Pois é Marcio,

Precisa ser embarcado. :frowning:

Sabes dizer a vantagem deste hibernate.reveng ?

Ainda será vantajoso se eu usar o hibernate sem a criação desta engenharia reversa ?

Grato,

Nunca usei esse arquivo hibernate.reveng. Nem sei ao certo pra que ele serve, me corrija se eu estiver errado. Seria para gerar as classes já mapeadas através das tabelas do banco de dados?

Se for isso, acho que o Netbeans faz esse processo por conta. Basta você clicar com o botão direito do mouse no pacote que pretende criar a classe e selecionar Novo e depois procurar pela opção Classe de entidade de bando de dados. Assim, ele pede para você selecionar o banco de dados e vai listar as tabelas as tabelas, dai selecione as tabelas que quiser gerar as classes.

Tenho um tutorial de hibernate com Derby embarcado se você quiser dar uma olhada, mas não uso o netbeans nesse tutorial, crio tudo por código, inclusive as tabelas.
Utilizando Swing com Hibernate

Valeu pelo esclarecimento, Marcio! Agora posso descartar a criação dele.

Já possuo seu blog em meu bookmark. Por coincidência, há pouco refiz a leitura desta url que passastes.

O hibernate.reveng apareceu em minha vida (kkk) ao ler este tutorial:

http://netbeans.org/kb/docs/java/hibernate-java-se_pt_BR.html#05a

Saudações :slight_smile:

Pelo que entendi nesse link que você postou, esse arquiva era útil para gerar os arquivos de mapeamento do tipo hbm.xml. Antes das anotações nas classes de entidades, o mapeamento era feito por esses arquivos do tipo hbm.xml.

Valeu pela observação!