Bug #4701
closedPersistent Database needed in Core Module for LSID generation to prevent namespace updating on clean-cache
0%
Description
The need to use a database table to generate new LSID revisions (ref bug 4633) spawned a new database table called LSID_GENERATOR. The table is defined in the common module's resources/configurations/configuration.xml file. Because all of these tables exist in the hsql database inside of the transient .kepler directory, whenever that directory is removed the LSID_GENERATOR table is lost and Kepler responds by retrieving a new namespace ID from the server.
Moving the LSID_GENERATOR table to the persistent KeplerData directory will prevent the namespace from being updated when the .kepler directory is removed.
Two possible solutions are:
There is already an hsql database in the persistent directory but it is defined in the provenance module. That database could be moved out of the provenance module and made to be shared by all modules. But the code needed for it's generation would need to be pushed into core (if it's not already there).
The other solution is to generate a new (3rd) hsql database in the persistent directory under the core module and then move the LSID_GENERATOR table to that database.
See the LSIDGenerator class' constructor for where the connection is made to access the LSID_GENERATOR table.
Updated by Derik Barseghian almost 15 years ago
Of those two options, I definitely vote for a 3rd database. One of the main reasons for the DB overhaul was to support cases like these, allowing us to keep DBs separate when it makes sense.
Updated by Daniel Crawl almost 15 years ago
Done: the table is now in the persistent area for the core module. The connection parameters are in core's configuration.xml.