I'm getting a little confused. My understanding is that there are
really two issues here. One is that LO Base is RAM resident - all
updates are held in RAM until saved by the user, or the program is
closed. Correct? If so, this situation will expose the user to data
loss between saves.
There are two components here: the DB engine (eg HSQLDB) and the
front-end (ie LO-Base).
In embedded mode, running Base stats the DB engine and opens the wanted
database. In this situation, yes, database updates are set to ram until
the database is saved, either voluntarily or when Base is shut down.
And yes, any flaw in *any* piece of software running while Base and the
DB also run, can create DB loss.
The other issue is that LO Base uses an embedded database, which means
that the data files and the GUI, reports, etc. are combined into one
file that can be corrupted. The suggestion is to use a split system
where the data files are separate from the other files. Correct? If
so, at best, the data may be a little safer, but forms, queries, etc.
can still be corrupted.
Yes, this is what "split-mode" is all about.
A database like MySQL and mariadb cache the updates and then write them
to disk every 1/2 to full second (or however configured). Seems like a
good idea.
So I come back to my suggestion earlier today - LO Base needs to give
the user the opportunity to specify what they want - RAM or file based,
single file or multiple files. Would that be difficult to do?
WRT HSQL it's just a couple settings away:
(1) in LO global settings (Tools/Options, Advanced page) specify where
the external HSQLDB engine is stored (Class Path button)
-> Add archive: points to the hsqldb.jar
-> Add Folder: points to the directory where hsqldb.jar is stored
(lib dir)
Then make sure to check the test button
These setings are stored in the user profile /config directory.
(2) in Base, DB creation wizard
-> at step 1 : select JDBC database
-> at step 2 : specify the DB address settings
Datasource URL :
hsqldb:file:d:/somedir/mybase/basetest;default_schema=true;shutdown=true;hsqldb.default_table_type=cached;get_column_name=false
JDBC Driver class: org.hsqldb.jdbcDriver
Test with the Test Class button.
These settings are stored in the RegistryModifications.xcu file.
To me, the main difficulty lies in the backup of these settings (config
dir and RegistryModifications.xcu and the .odb file), so that you may
change PC without hassle. Unless I'm missing the obvious, it is not the
case currently.