dropping DataBase
Do you have any idea about this?
org.basex.core.BaseXException: Database could not be dropped.
at org.basex.core.Proc.execute(Proc.java:75)when it does: new DropDB("DBCabecera").execute(CONTEXT);
My program is doing a lot of actions to get some information and sometimes this error appears, do you know why? How can i solve it?
Another question, what would happen if I create a lot of news DB with the same name and i don't drop them?
Thank you very much!
Dear Bea,
Quoted text · bea.sancho · 2 lines
> org.basex.core.BaseXException: Database could not be dropped. > at org.basex.core.Proc.execute(Proc.java:75)
It seems as if your database is still opened; feel free to send us a runnable example of your code/xml files whic reproduced the issue.
Quoted text · bea.sancho · 1 line
> Another question, what would happen if I create a lot of news DB with the same name and i don't drop them?
Your old database will be closed and dropped before the new database is created.
Hope this helps, Christian
Thanks Christian, It is something weird, it sometimes works and sometimes doesn't, i don't understand....
This is my query:
String extraeActors = "//interactiondata/preamble/users/user_def/@id";
Then i use it in my code:
try {
Vector vactors =
MyQuery.queryExtraeDatosCabecera(extraeActors);
} catch (QueryException ex) {
Logger.getLogger(Actor.class.getName()).log(Level.SEVERE,
null, ex);
} catch (IOException ex) {
Logger.getLogger(Actor.class.getName()).log(Level.SEVERE,
null, ex);
} catch (BaseXException ex) {
Logger.getLogger(Actor.class.getName()).log(Level.SEVERE, null,
ex);
}I have written a method to extract data in a Vector:
static public Vector queryExtraeDatosCabecera(final String query) throws
BaseXException, QueryException, IOException {
WorkSpace sp1 = new WorkSpace();
String workspace = sp1.getWorkspace();
new CreateDB(workspace + "\\cabecera.xml",
"DBCabecera").execute(CONTEXT);
System.out.println("\n* Close and reopen database: " + workspace +
"\\cabecera.xml");
new Close().execute(CONTEXT);
new Open("DBCabecera").execute(CONTEXT);
final QueryProcessor processor = new QueryProcessor(query, CONTEXT);
final Iter iter = processor.iter();
final Result result = processor.query();
Item item;
Vector datos = new Vector();
int i = 0;
datos.setSize(result.size());
while ((item = iter.next()) != null) {
String aux = item.toString();
System.out.println(aux + "\n");
int begin = aux.indexOf("\"");
int end = aux.indexOf("\"", begin + 1);
String actor = aux.substring(begin + 1, end);
datos.setElementAt(actor, i);
i++;
}
processor.close();
new Optimize().execute(CONTEXT);
new DropIndex("text").execute(CONTEXT);
new DropIndex("attribute").execute(CONTEXT);
new DropIndex("fulltext").execute(CONTEXT);
new DropIndex("path").execute(CONTEXT);
new Close().execute(CONTEXT);
new DropDB("DBCabecera").execute(CONTEXT);
return datos;
}And this is the XML located in my workspace:
<?xml version='1.0' encoding='UTF-8'?>
<interactiondata>
<preamble>
<roles>
<role_def id="Profesor">
<description>unknown</description>
</role_def>
<role_def id="Alumno">
<description>unknown</description>
</role_def>
<role_def id="Externo">
<description>unknown</description>
</role_def>
</roles>
<users>
<user_def id="laox00" firstname="unknown">
<properties>
<property value="x00" name="rep"/>
</properties>
</user_def>
<user_def role="Alumno" id="laox01" firstname="unknown">
<properties>
<property value="x01" name="rep"/>
<property value="09/10/2001" name="start"/>
</properties>
</user_def>
<user_def role="Alumno" id="laox02" firstname="unknown">
<properties>
<property value="x02" name="rep"/>
<property value="09/10/2001" name="start"/>
</properties>
</user_def>
<user_def role="Alumno" id="laox03_extended_0"
firstname="unknown">
<properties>
<property value="x03" name="rep"/>
<property value="09/10/2001" name="start"/>
</properties>
</user_def>
<user_def role="Coordinador" id="laox03_extended_1"
firstname="unknown">
<properties>
<property value="x03" name="rep"/>
<property value="10/11/2001" name="start"/>
</properties>
</user_def>
<user_def id="laox04" firstname="unknown">
<properties>
<property value="x04" name="rep"/>
</properties>
</user_def>
<user_def id="laox05" firstname="unknown">
<properties>
<property value="x05" name="rep"/>
</properties>
</user_def>
<user_def id="laox06" firstname="unknown">
<properties>
<property value="x06" name="rep"/>
</properties>
</user_def>
<user_def id="laox07" firstname="unknown">
<properties>
<property value="x07" name="rep"/>
</properties>
</user_def>
<user_def id="laox08" firstname="unknown">
<properties>
<property value="x08" name="rep"/>
</properties>
</user_def>
<user_def id="laox09" firstname="unknown">
<properties>
<property value="x09" name="rep"/>
</properties>
</user_def>
<user_def id="laox10" firstname="unknown">
<properties>
<property value="x10" name="rep"/>
</properties>
</user_def>
<user_def id="laox11" firstname="unknown">
<properties>
<property value="x11" name="rep"/>
</properties>
</user_def>
<user_def id="laox12" firstname="unknown">
<properties>
<property value="x12" name="rep"/>
</properties>
</user_def>
<user_def id="laox13" firstname="unknown">
<properties>
<property value="x13" name="rep"/>
</properties>
</user_def>
<user_def id="laox14" firstname="unknown">
<properties>
<property value="x14" name="rep"/>
</properties>
</user_def>
<user_def id="laox15" firstname="unknown">
<properties>
<property value="x15" name="rep"/>
</properties>
</user_def>
<user_def id="laox16" firstname="unknown">
<properties>
<property value="x16" name="rep"/>
</properties>
</user_def>
<user_def id="laox17" firstname="unknown">
<properties>
<property value="x17" name="rep"/>
</properties>
</user_def>
<user_def id="laox18" firstname="unknown">
<properties>
<property value="x18" name="rep"/>
</properties>
</user_def>
<user_def id="laox19" firstname="unknown">
<properties>
<property value="x19" name="rep"/>
</properties>
</user_def>
<user_def id="laox20" firstname="unknown">
<properties>
<property value="x20" name="rep"/>
</properties>
</user_def>
<user_def id="laox21" firstname="unknown">
<properties>
<property value="x21" name="rep"/>
</properties>
</user_def>
<user_def id="laox22" firstname="unknown">
<properties>
<property value="x22" name="rep"/>
</properties>
</user_def>
<user_def id="laox23" firstname="unknown">
<properties>
<property value="x23" name="rep"/>
</properties>
</user_def>
<user_def id="laox24" firstname="unknown">
<properties>
<property value="x24" name="rep"/>
</properties>
</user_def>
<user_def id="laox25" firstname="unknown">
<properties>
<property value="x25" name="rep"/>
</properties>
</user_def>
<user_def id="laox26" firstname="unknown">
<properties>
<property value="x26" name="rep"/>
</properties>
</user_def>
<user_def id="laox27" firstname="unknown">
<properties>
<property value="x27" name="rep"/>
</properties>
</user_def>
<user_def id="laox28" firstname="unknown">
<properties>
<property value="x28" name="rep"/>
</properties>
</user_def>
<user_def id="laox29" firstname="unknown">
<properties>
<property value="x29" name="rep"/>
</properties>
</user_def>
<user_def id="laox30" firstname="unknown">
<properties>
<property value="x30" name="rep"/>
</properties>
</user_def>
<user_def id="laox31" firstname="unknown">
<properties>
<property value="x31" name="rep"/>
</properties>
</user_def>
<user_def id="laox32" firstname="unknown">
<properties>
<property value="x32" name="rep"/>
</properties>
</user_def>
<user_def id="laox33" firstname="unknown">
<properties>
<property value="x33" name="rep"/>
</properties>
</user_def>
<user_def id="laox34" firstname="unknown">
<properties>
<property value="x34" name="rep"/>
</properties>
</user_def>
<user_def id="laox35" firstname="unknown">
<properties>
<property value="x35" name="rep"/>
</properties>
</user_def>
<user_def id="laox36" firstname="unknown">
<properties>
<property value="x36" name="rep"/>
</properties>
</user_def>
<user_def id="laox37" firstname="unknown">
<properties>
<property value="x37" name="rep"/>
</properties>
</user_def>
<user_def id="laox38" firstname="unknown">
<properties>
<property value="x38" name="rep"/>
</properties>
</user_def>
<user_def id="laox39" firstname="unknown">
<properties>
<property value="x39" name="rep"/>
</properties>
</user_def>
<user_def id="laox40" firstname="unknown">
<properties>
<property value="x40" name="rep"/>
</properties>
</user_def>
<user_def id="laox41" firstname="unknown">
<properties>
<property value="x41" name="rep"/>
</properties>
</user_def>
<user_def id="laox42" firstname="unknown">
<properties>
<property value="x42" name="rep"/>
</properties>
</user_def>
<user_def id="laox43" firstname="unknown">
<properties>
<property value="x43" name="rep"/>
</properties>
</user_def>
<user_def id="laox44" firstname="unknown">
<properties>
<property value="x44" name="rep"/>
</properties>
</user_def>
<user_def id="laox45" firstname="unknown">
<properties>
<property value="x45" name="rep"/>
</properties>
</user_def>
<user_def id="laox46" firstname="unknown">
<properties>
<property value="x46" name="rep"/>
</properties>
</user_def>
<user_def id="laox47" firstname="unknown">
<properties>
<property value="x47" name="rep"/>
</properties>
</user_def>
<user_def id="laox48" firstname="unknown">
<properties>
<property value="x48" name="rep"/>
</properties>
</user_def>
<user_def id="laox49" firstname="unknown">
<properties>
<property value="x49" name="rep"/>
</properties>
</user_def>
<user_def id="laox50" firstname="unknown">
<properties>
<property value="x50" name="rep"/>
</properties>
</user_def>
<user_def id="laox51" firstname="unknown">
<properties>
<property value="x51" name="rep"/>
</properties>
</user_def>
<user_def id="laox52" firstname="unknown">
<properties>
<property value="x52" name="rep"/>
</properties>
</user_def>
<user_def id="laox53" firstname="unknown">
<properties>
<property value="x53" name="rep"/>
</properties>
</user_def>
<user_def id="laox54" firstname="unknown">
<properties>
<property value="x54" name="rep"/>
</properties>
</user_def>
<user_def id="laox55" firstname="unknown">
<properties>
<property value="x55" name="rep"/>
</properties>
</user_def>
<user_def id="laox56" firstname="unknown">
<properties>
<property value="x56" name="rep"/>
</properties>
</user_def>
<user_def id="laox57" firstname="unknown">
<properties>
<property value="x57" name="rep"/>
</properties>
</user_def>
<user_def id="laox58" firstname="unknown">
<properties>
<property value="x58" name="rep"/>
</properties>
</user_def>
<user_def id="laox59" firstname="unknown">
<properties>
<property value="x59" name="rep"/>
</properties>
</user_def>
<user_def id="laox61" firstname="unknown">
<properties>
<property value="x61" name="rep"/>
</properties>
</user_def>
<user_def id="laox62" firstname="unknown">
<properties>
<property value="x62" name="rep"/>
</properties>
</user_def>
<user_def id="laox63" firstname="unknown">
<properties>
<property value="x63" name="rep"/>
</properties>
</user_def>
<user_def id="laox65" firstname="unknown">
<properties>
<property value="x64" name="rep"/>
</properties>
</user_def>
</users>
<groups>
<group_def id="TurnoA">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="laox00"/>
<member_def id="laox01"/>
<member_def id="laox02"/>
<member_def id="laox04"/>
<member_def id="laox05"/>
<member_def id="laox06"/>
<member_def id="laox07"/>
<member_def id="laox08"/>
<member_def id="laox09"/>
<member_def id="laox10"/>
<member_def id="laox11"/>
<member_def id="laox12"/>
<member_def id="laox13"/>
<member_def id="laox14"/>
<member_def id="laox15"/>
<member_def id="laox16"/>
<member_def id="laox17"/>
<member_def id="laox18"/>
<member_def id="laox19"/>
</members>
</group_def>
<group_def id="TurnoB">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="laox21"/>
<member_def id="laox22"/>
<member_def id="laox23"/>
<member_def id="laox24"/>
<member_def id="laox25"/>
<member_def id="laox26"/>
<member_def id="laox27"/>
<member_def id="laox28"/>
<member_def id="laox29"/>
<member_def id="laox30"/>
<member_def id="laox31"/>
<member_def id="laox32"/>
<member_def id="laox33"/>
<member_def id="laox34"/>
<member_def id="laox35"/>
<member_def id="laox36"/>
<member_def id="laox37"/>
<member_def id="laox38"/>
<member_def id="laox39"/>
</members>
</group_def>
<group_def id="TurnoC">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="laox41"/>
<member_def id="laox42"/>
<member_def id="laox43"/>
<member_def id="laox44"/>
<member_def id="laox45"/>
<member_def id="laox46"/>
<member_def id="laox47"/>
<member_def id="laox48"/>
<member_def id="laox49"/>
<member_def id="laox50"/>
<member_def id="laox51"/>
<member_def id="laox52"/>
<member_def id="laox53"/>
<member_def id="laox54"/>
<member_def id="laox55"/>
<member_def id="laox56"/>
<member_def id="laox57"/>
<member_def id="laox58"/>
<member_def id="laox59"/>
</members>
</group_def>
<group_def id="TurnoD">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="laox61"/>
<member_def id="laox62"/>
<member_def id="laox63"/>
<member_def id="laox65"/>
</members>
</group_def>
<group_def id="Bolsa">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="laox04"/>
<member_def id="laox05"/>
<member_def id="laox10"/>
<member_def id="laox12"/>
<member_def id="laox21"/>
<member_def id="laox32"/>
<member_def id="laox33"/>
<member_def id="laox37"/>
<member_def id="laox43"/>
<member_def id="laox51"/>
<member_def id="laox52"/>
<member_def id="laox53"/>
</members>
</group_def>
<group_def id="Imagen">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="laox09"/>
<member_def id="laox11"/>
<member_def id="laox13"/>
<member_def id="laox24"/>
<member_def id="laox27"/>
<member_def id="laox28"/>
<member_def id="laox29"/>
<member_def id="laox41"/>
<member_def id="laox56"/>
<member_def id="laox61"/>
</members>
</group_def>
<group_def id="Ensen">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="laox26"/>
<member_def id="laox30"/>
<member_def id="laox31"/>
<member_def id="laox34"/>
<member_def id="laox48"/>
<member_def id="laox49"/>
</members>
</group_def>
<group_def id="Biblio">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="laox01"/>
<member_def id="laox02"/>
<member_def id="laox25"/>
<member_def id="laox35"/>
<member_def id="laox36"/>
<member_def id="laox42"/>
<member_def id="laox46"/>
<member_def id="laox54"/>
<member_def id="laox57"/>
<member_def id="laox62"/>
</members>
</group_def>
<group_def id="Movil">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="laox06"/>
<member_def id="laox07"/>
<member_def id="laox22"/>
<member_def id="laox23"/>
<member_def id="laox38"/>
<member_def id="laox39"/>
<member_def id="laox44"/>
<member_def id="laox45"/>
<member_def id="laox58"/>
<member_def id="laox63"/>
<member_def id="laox65"/>
</members>
</group_def>
<group_def id="Turnos">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="TurnoA"/>
<member_def id="TurnoB"/>
<member_def id="TurnoC"/>
<member_def id="TurnoD"/>
</members>
</group_def>
<group_def id="Clientes">
<time_range to="09/10/2001" from="09/10/2001"/>
<members>
<member_def id="Bolsa"/>
<member_def id="Imagen"/>
<member_def id="Ensen"/>
<member_def id="Biblio"/>
<member_def id="Movil"/>
</members>
</group_def>
</groups>
<objects/>
</preamble>
</interactiondata>2010/5/30 Christian Grün <christian.gruen at gmail.com>
Quoted text · Christian Grün · 18 lines
> Dear Bea, > > > org.basex.core.BaseXException: Database could not be dropped. > > at org.basex.core.Proc.execute(Proc.java:75) > > It seems as if your database is still opened; feel free to send us a > runnable example of your code/xml files whic reproduced the issue. > > > > Another question, what would happen if I create a lot of news DB with the > same name and i don't drop them? > > Your old database will be closed and dropped before the new database is > created. > > Hope this helps, > Christian >
Hello Beatriz,
Quoted text · Beatriz Sancho · 10 lines
Am 30.05.2010 16:32, schrieb Beatriz Sancho: > static public Vector queryExtraeDatosCabecera(final String query) throws > BaseXException, QueryException, IOException { > WorkSpace sp1 = new WorkSpace(); > String workspace = sp1.getWorkspace(); > new CreateDB(workspace + "\\cabecera.xml", "DBCabecera").execute(CONTEXT); > [...] > new DropDB("DBCabecera").execute(CONTEXT); > return datos; > }
wouldn't it be much easier to use an in-memory DB in this case? No need to explicitly drop it and you probably would even get better performance because of reduced I/O.
Just my 0.02$...
Cheers, Leo Wörteler
Hi again,
Just in case you're interested: A simple way to create a main-memory based DB in BaseX, given the path to an XML document, would be
final Data db = CreateDB.xml(IO.get(path), CTX.prop); CTX.openDB(db); // open DB in current Context
By the way, this also works if you feed IO.get(..) an XML string instead of a path.
Cheers again, Leo
Quoted text · Leonard Wörteler · 19 lines
Am 30.05.2010 17:10, schrieb Leonard Wörteler: > Hello Beatriz, > > Am 30.05.2010 16:32, schrieb Beatriz Sancho: >> static public Vector queryExtraeDatosCabecera(final String query) throws >> BaseXException, QueryException, IOException { >> WorkSpace sp1 = new WorkSpace(); >> String workspace = sp1.getWorkspace(); >> new CreateDB(workspace + "\\cabecera.xml", "DBCabecera").execute(CONTEXT); >> [...] >> new DropDB("DBCabecera").execute(CONTEXT); >> return datos; >> } > > wouldn't it be much easier to use an in-memory DB in this case? No need > to explicitly drop it and you probably would even get better performance > because of reduced I/O. > > Just my 0.02$...
Hi Bea,
i didn't realize that you're not on the basex-talk list. Sorry for that.
Leo
-------- Original-Nachricht -------- Betreff: Re: [basex-talk] dropping DataBase Datum: Sun, 30 May 2010 18:34:42 +0200
Quoted text · Leonard Wörteler · 30 lines
Von: Leonard Wörteler <leo at woerteler.de> An: basex-talk at mailman.uni-konstanz.de Hi again, Just in case you're interested: A simple way to create a main-memory based DB in BaseX, given the path to an XML document, would be final Data db = CreateDB.xml(IO.get(path), CTX.prop); CTX.openDB(db); // open DB in current Context By the way, this also works if you feed IO.get(..) an XML string instead of a path. Cheers again, Leo Am 30.05.2010 17:10, schrieb Leonard Wörteler: > Hello Beatriz, > > Am 30.05.2010 16:32, schrieb Beatriz Sancho: >> static public Vector queryExtraeDatosCabecera(final String query) throws >> BaseXException, QueryException, IOException { >> WorkSpace sp1 = new WorkSpace(); >> String workspace = sp1.getWorkspace(); >> new CreateDB(workspace + "\\cabecera.xml", "DBCabecera").execute(CONTEXT); >> [...] >> new DropDB("DBCabecera").execute(CONTEXT); >> return datos; >> } > > wouldn't it be much easier to use an in-memory DB in this case? No need > to explicitly drop it and you probably would even get better performance > because of reduced I/O. > > Just my 0.02$...
Thanks Leonard and Christian!!! I have solved it using
final QueryProcessor processor = new QueryProcessor("doc('"+workspace +
"\\cabecera.xml')"+query, CONTEXT);I don't need to create databases and drop them if i only want to get data, understood :)
BaseX team is wonderful, thanks!!!
2010/5/30 Leonard Wörteler <leo at woerteler.de>
Quoted text · Leonard Wörteler · 47 lines
> Hi Bea, > > i didn't realize that you're not on the basex-talk list. Sorry for that. > > Leo > > -------- Original-Nachricht -------- > Betreff: Re: [basex-talk] dropping DataBase > Datum: Sun, 30 May 2010 18:34:42 +0200 > Von: Leonard Wörteler <leo at woerteler.de> > An: basex-talk at mailman.uni-konstanz.de > > Hi again, > > Just in case you're interested: A simple way to create a main-memory > based DB in BaseX, given the path to an XML document, would be > > final Data db = CreateDB.xml(IO.get(path), CTX.prop); > CTX.openDB(db); // open DB in current Context > > By the way, this also works if you feed IO.get(..) an XML string instead > of a path. > > Cheers again, > Leo > > Am 30.05.2010 17:10, schrieb Leonard Wörteler: > > Hello Beatriz, > > > > Am 30.05.2010 16:32, schrieb Beatriz Sancho: > >> static public Vector queryExtraeDatosCabecera(final String query) throws > >> BaseXException, QueryException, IOException { > >> WorkSpace sp1 = new WorkSpace(); > >> String workspace = sp1.getWorkspace(); > >> new CreateDB(workspace + "\\cabecera.xml", > "DBCabecera").execute(CONTEXT); > >> [...] > >> new DropDB("DBCabecera").execute(CONTEXT); > >> return datos; > >> } > > > > wouldn't it be much easier to use an in-memory DB in this case? No need > > to explicitly drop it and you probably would even get better performance > > because of reduced I/O. > > > > Just my 0.02$... >
Written for BaseX 6. BaseX may have changed since: please check the current documentation.