 |
AppletTalk.com Java discussions newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Ely77 Guest
|
Posted: Tue Jun 28, 2005 1:59 pm Post subject: Aiuto HSQLDB |
|
|
Ho provato HSQLDB è non riesco a risolvere un problema:
Mi collego a un database e creo una tabella utilizzando il driver
org.hsqldb.jdbcDriver e la stringa di connessione
jdbc:hsqldb:file:/database/mioDB
Purtroppo alla chiusura del database la tabella viene eliminata, nel senso
che quando faccio ripartire il programma e cerco di ricaricare il db non
trova la tabella. Se è per questo non vengono creati file di dati, ma gli
altri (.properties, .log, .lck, .script) rimangono!
Insomma come se stessi creando un database in memoria jdbc:hsqldb:mem:... ma
non sto facendo cosi'! Un'altra cosa strana è che finchè il mio programma
java non termina la tabella è completamente accessibile e utilizzabile.
Inoltre sembra che solo la tabella non venga "storata" il db si. Bisogna
fare qualche "stora le operazioni" prima di chiudere il programma?
Grazie mille!!!!!!!!!!!!!!!!!
Eli
|
|
| Back to top |
|
 |
pole Guest
|
Posted: Tue Jun 28, 2005 2:24 pm Post subject: Re: Aiuto HSQLDB |
|
|
Ely77 wrote:
| Quote: | Inoltre sembra che solo la tabella non venga "storata" il db si. Bisogna
fare qualche "stora le operazioni" prima di chiudere il programma?
|
Uhmmm strano. Per prima cosa verifica che nel file .properties la
proprietà modified non sia "yes". Se è così vuol dire che il db si sta
chiudendo male.
Dalla stringa di connessione che usi stai usando la modalità in-process,
potrebbe essere che l'applicazione venga chiusa mentre c'è ancora
qualche connessione aperta verso il database. Se è così ti basta
chiudere le connessioni prima di terminare il programma.
Inoltre per creare le tabelle usa la sintassi "create cached table..."
HTH
pole
--
ammentos - a lightweight persistence framework for JDK5
http://www.sourceforge.net/projects/ammentos
http://ammentos.biobytes.it
|
|
| Back to top |
|
 |
Dimitri De Franciscis Guest
|
Posted: Tue Jun 28, 2005 2:57 pm Post subject: Re: Aiuto HSQLDB |
|
|
Ely77 ha scritto:
| Quote: | Ho provato HSQLDB è non riesco a risolvere un problema:
Mi collego a un database e creo una tabella utilizzando il driver
org.hsqldb.jdbcDriver e la stringa di connessione
jdbc:hsqldb:file:/database/mioDB
Purtroppo alla chiusura del database la tabella viene eliminata, nel senso
che quando faccio ripartire il programma e cerco di ricaricare il db non
trova la tabella. Se è per questo non vengono creati file di dati, ma gli
altri (.properties, .log, .lck, .script) rimangono!
|
La sparo: hai fatto commit dopo aver creato le tabelle?
Non è che non mi fidi, però...non si sa mai...
--
-- + Setaceous Pig + --
http://megadix.users.mcs2.netarray.com/
http://www.jroller.com/page/megadix/
|
|
| Back to top |
|
 |
thd Guest
|
Posted: Tue Jun 28, 2005 3:35 pm Post subject: Re: Aiuto HSQLDB |
|
|
Ely77 <Elisa.Adamoli-TogliQuesto- (AT) Tiscali (DOT) it> wrote:
| Quote: | il db non trova la tabella. Se è per questo non vengono creati file
di dati, ma gli altri (.properties, .log, .lck, .script) rimangono!
|
il file .script mantiene i dati quando crei tabelle non cached
se apri il file .script vedrai tutti i comandi con cui il db, ogni volta
avviato, ricrea le tabelle e le riempie con i dati..
devi creare una cached table per tenerle dentro il file .data
anche se in effetti sembra strano che all'avvio successivo la tabella non
venga ricaricata..
|
|
| Back to top |
|
 |
Ely77 Guest
|
Posted: Wed Jun 29, 2005 7:54 am Post subject: Re: Aiuto HSQLDB |
|
|
| Quote: | Inoltre sembra che solo la tabella non venga "storata" il db si. Bisogna
fare qualche "stora le operazioni" prima di chiudere il programma?
Uhmmm strano. Per prima cosa verifica che nel file .properties la
proprietà modified non sia "yes". Se è così vuol dire che il db si sta
chiudendo male.
Si penso che il problema sia proprio qui dove dici tu, ora sto provando |
eseguendo il comando "SHUTDOWN" prima di fare il close() e sembra
funzionare. Ma è normale questa cosa?
Poi visto che ci sono se faccio una connessione al database con un programma
e un'altra connessione da un altro mi dice che un processo sta già
utilizzando il db, non riesco ad accedervi neanche in lettura! So che
c'entra il file .lock ma non so che farci, spero il db non possa essere
usato da una sola persona per volta!
Grazie mille a tutti!!
|
|
| Back to top |
|
 |
pole Guest
|
Posted: Wed Jun 29, 2005 8:31 am Post subject: Re: Aiuto HSQLDB |
|
|
Ely77 wrote:
| Quote: | Si penso che il problema sia proprio qui dove dici tu, ora sto provando
eseguendo il comando "SHUTDOWN" prima di fare il close() e sembra
funzionare. Ma è normale questa cosa?
|
In realtà dovrebbe bastare accertarsi di chiudere tutte le connessioni.
Quando è utilizzato in modalità in-process hsqldb si chiude
automaticamente nel momento in cui l'ultima connessione viene chiusa.
Per questo motivo in questo caso sarebbe meglio utilizzare un'unica
connessione al db, aperta all'avvio dell'applicazione e chiusa alla fine.
| Quote: | Poi visto che ci sono se faccio una connessione al database con un programma
e un'altra connessione da un altro mi dice che un processo sta già
utilizzando il db, non riesco ad accedervi neanche in lettura! So che
c'entra il file .lock ma non so che farci, spero il db non possa essere
usato da una sola persona per volta!
|
Questo è sempre dovuto al fatto che stai utilizzando hsqldb in modalità
in-process. In questa modalità il database è proprietà esclusiva del
processo all'interno del quale il db è eseguito. Se vuoi poterti
connettere al db da più client devi utilizzare la modalità server.
Questi dettagli sono spiegati bene qui:
http://www.hsqldb.org/doc/guide/ch01.html#N100F6
ciao
pole
--
ammentos - a lightweight persistence framework for JDK5
http://www.sourceforge.net/projects/ammentos
http://ammentos.biobytes.it
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|