Update operation is spawning new databases with underscore
Wednesday, 17 July 2019 · 5 messages · last reply 18 Jul 2019
ZD
Zimmel, Daniel17 Jul 2019 10:18 #
Hi,
sometimes in my update operations BaseX deliberately is spawning several databases like the following, with a name of the database plus underscore and number:
DBNAME_2618234251
caused by
db:replace($dbname, $dbpath|| '/' || $fname, $file-to-import, map { 'intparse': true(),
'chop': false(),
'addcache': false() })
I cannot find anything about this behavior in the docs.
It seems to happen randomly, and the main database does seem ok.
How can I avoid these extra databases? They will vanish only by force.
BaseX 9.2.1
Thanks, Daniel
CG
Christian Grün18 Jul 2019 15:53 #
Hi Daniel,
It looks as if databases are not cleaned up in your environment that are temporarily created during the update step.
I guess it will be difficult for you to get this reproduced for us?
Best,
Christian
Quoted text · Zimmel, Daniel · 17 lines
> DBNAME_2618234251 > > caused by > > db:replace($dbname, $dbpath|| '/' || $fname, $file-to-import, map { > 'intparse': true(), > 'chop': false(), > 'addcache': false() }) > > I cannot find anything about this behavior in the docs. > It seems to happen randomly, and the main database does seem ok. > > How can I avoid these extra databases? They will vanish only by force. > > BaseX 9.2.1 > > Thanks, Daniel
ZD
Zimmel, Daniel18 Jul 2019 16:48 #
Quoted text · Christian Grün · 4 lines
> It looks as if databases are not cleaned up in your environment that > are temporarily created during the update step. > > I guess it will be difficult for you to get this reproduced for us?
Indeed.
It does happen on Windows and Linux, though. I pretty much run the default setup.
This is a complete example of a simple import query:
declare variable $system external;
declare variable $config := fetch:xml(file:base-dir() || '../../config/config.' || $system ||'.xml')/basexconfig;
declare variable $dbname := string($config/esvxml/database/esvschema);
declare variable $sourcefile := string($config/esvxml/import/paths/sourcefile)
for $source in fetch:xml($sourcefile)/sources/*/path
where file:is-dir($source)
let $path := $source
let $produkt := $source/@produkt
let $produkttyp := $source/parent::*/name()
let $xmlprozess := $source/@xml
for $file in file:list($path, true(), '*.xml')
return db:add($dbname, $path || $file , $produkttyp||'/'||$xmlprozess||'/'||$produkt||'/'||$file,
map { 'intparse': true(),'chop': false(), 'addcache': true(), 'skipcorrupt': true() })Nothing special in here.
It seems safe to delete those temporary databases regularly, then? Too bad I cannot reproduce.
Thanks, Daniel
CG
Christian Grün18 Jul 2019 16:54 #
In your first query,
ADDCACHE was set to false. Does the problem exist in both cases?Quoted text · Zimmel, Daniel · 1 line
> It seems safe to delete those temporary databases regularly, then?
Absolutely.
Just guessing:
• Did you get any errors reported while performing updates?
• Do you have any symbolic links (and potential circular dependencies) in the directory you are parsing?
ZD
Zimmel, Daniel18 Jul 2019 17:52 #
Quoted text · Christian Grün · 2 lines
> In your first query, ADDCACHE was set to false. Does the problem exist > in both cases?
Definitely.
Quoted text · Christian Grün · 2 lines
> Just guessing: > • Did you get any errors reported while performing updates?
No.
Quoted text · Christian Grün · 2 lines
> • Do you have any symbolic links (and potential circular dependencies) > in the directory you are parsing?
No.
BTW there is a db:lock message when I try to remove them via RESTXQ (DBA module). I will try to get back if any other hint shows up that might help.
Thanks, Daniel
Written for BaseX 9.2. BaseX may have changed since: please check the current documentation.
⚡Generated with XQuery