Hsqldb em memoria

7 respostas
J

galera

to usando hsqld na minha aplicação e ele grava certo no banco. Porém algo me chamou a atenção, ele cria tudo em memoria.

CREATE MEMORY TABLE PUBLIC.FUNCIONARIO

Se eu movo meu jar de um diretorio para outro, eu continua acessando meus dados.
Mas se eu mover meu jar para outro computador e tentar abrir o banco, ele não localiza as informações e cria um banco novo.

pelo que andei lendo, ele funciona bem na mesma VM, mantendo os dados na memoria. Mas como eu faria para gravar os dados standalone?

eu quero guardar e mesmo se precisar mover de um computador para outro, ter essas informações persistidas.

Alguem sabe o porque disso estar acontecendo?

7 Respostas

jMarcel

Você pode mudar o tipo da tabela existente com o seguinte SQL:

SET TABLE <table name> TYPE { CACHED | MEMORY };

E se você quiser manter um tipo de tabela (CACHED ou MEMORY) pré-definido quando da criação de futuras tabelas, faça o seguinte:

SET DATABASE DEFAULT TABLE TYPE { CACHED | MEMORY };

Até mais.

J

mas a duvida é:

  • onde ta ficando os dados armazenados?

porque se eu movo o jar de computador, os dados somem da tabela.

jMarcel

Qual o tipo de driver vc está usando no seu BD ?

J

to usando o hsqldb 2 , modo stanladone

chamo assim na aplicação acfg.setProperty("hibernate.connection.url", "jdbc:hsqldb:/swing/desktop");

sendo que swing eh o nome do projeto e desktop eh o nome do script que ele gera.

jMarcel

Verifique se seus arquivos do BD (*.data, *.script, *.log, *.properties e/ou *.lobs) estão no path [color=blue]/swing/desktop[/color] do outro PC também.

Aliás, só pra deixar claro, para acessar o BD, de alguma forma você precisará acessar esses arquivos: ou em modo server ou in-process.

Ok. Você está usando o modo de execução ‘in-process’ (standalone).

O HSQLDB possui 4 tipos de drivers (Server, Embedded, WebServer e In-Memory).

Qual destes você está usando ?

J

como eu vejo isso?

jMarcel

Procure na sua diretiva JDBC (poste ela aqui).

Criado 25 de abril de 2011
Ultima resposta 27 de abr. de 2011
Respostas 7
Participantes 2