dropping DataBase
Sunday, 30 May 2010 · 7 messages
B
bea.sancho30 May 2010 16:11 #
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!
CG
Christian Grün30 May 2010 16:17 #
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
BS
Beatriz Sancho30 May 2010 16:32 #
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 >
LW
Leonard Wörteler30 May 2010 17:10 #
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
LW
Leonard Wörteler30 May 2010 18:34 #
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$...
LW
Leonard Wörteler30 May 2010 18:42 #
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$...
BS
Beatriz Sancho30 May 2010 19:53 #
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.
⚡Generated with XQuery