Dear BaseX team, I want to ask you how to use the class AlterDB to change a database name. It always throws the exception DB_PINNED_X although I use "unpin" before using AlterDB. I found the problem is that the method TableDiskAccess.locked(db, this) always returns "true". Please see the attachment and help me solve the problem. Thanks in advance.
Hi,
it’s probably a better idea to avoid explicit (un)pinning of nodes; all commands should correctly do this for you. Out of interest: why did you choose to do pinning by yourself?
Best, Christian _____________________________
Dear BaseX team, I want to ask you how to use the class AlterDB to change a database name. It always throws the exception DB_PINNED_X although I use "unpin" before using AlterDB. I found the problem is that the method TableDiskAccess.locked(db, this) always returns "true". Please see the attachment and help me solve the problem. Thanks in advance.
Dear Christian, Thanks for your response. I use "pin" so that a context can store many databases. If I don't use "pin", a newest database will override the current database (see context.dbs.list.elementData). Please tell me how can I use many database on one context.
Quoting Christian Grün christian.gruen@gmail.com:
Hi,
it?s probably a better idea to avoid explicit (un)pinning of nodes; all commands should correctly do this for you. Out of interest: why did you choose to do pinning by yourself?
Best, Christian _____________________________
Dear BaseX team, I want to ask you how to use the class AlterDB to change a database name. It always throws the exception DB_PINNED_X although I use "unpin" before using AlterDB. I found the problem is that the method TableDiskAccess.locked(db, this) always returns "true". Please see the attachment and help me solve the problem. Thanks in advance.
Thanks for your response. I use "pin" so that a context can store many databases. If I don't use "pin", a newest database will override the current database (see context.dbs.list.elementData). Please tell me how can I use many database on one context.
…I see. Sounds like a dangerous journey, because the whole architecture relies on the concept that only one database is opened in the current context. Why do you want to keep more than one database opened at the same time?
Christian __________________________
Quoting Christian Grün christian.gruen@gmail.com:
Hi,
it?s probably a better idea to avoid explicit (un)pinning of nodes;
all commands should correctly do this for you. Out of interest: why did you choose to do pinning by yourself?
Best, Christian _____________________________
Dear BaseX team, I want to ask you how to use the class AlterDB to change a database name. It always throws the exception DB_PINNED_X although I use "unpin" before using AlterDB. I found the problem is that the method TableDiskAccess.locked(db, this) always returns "true". Please see the attachment and help me solve the problem. Thanks in advance.
Thank you for you answer. I have ever used many contexts to store many databases but the EVENT coundn't work properly. Dimitar has adviced me that I should use one context for many databases. It has worked well until I used AlterDB. How should I do to use many databases on one context?
Quoting Christian Grün christian.gruen@gmail.com:
Thanks for your response. I use "pin" so that a context can store many databases. If I don't use "pin", a newest database will override the current database (see context.dbs.list.elementData). Please tell me how can I use many database on one context.
?I see. Sounds like a dangerous journey, because the whole architecture relies on the concept that only one database is opened in the current context. Why do you want to keep more than one database opened at the same time?
Christian __________________________
Quoting Christian Grün christian.gruen@gmail.com:
Hi,
it?s probably a better idea to avoid explicit (un)pinning of nodes;
all commands should correctly do this for you. Out of interest: why did you choose to do pinning by yourself?
Best, Christian _____________________________
Dear BaseX team, I want to ask you how to use the class AlterDB to change a database name. It always throws the exception DB_PINNED_X although I use "unpin" before using AlterDB. I found the problem is that the method TableDiskAccess.locked(db, this) always returns "true". Please see the attachment and help me solve the problem. Thanks in advance.
Thanks. I’m not sure what you tried to do with event? Do you have a little example or some more information? ___________________________
Thank you for you answer. I have ever used many contexts to store many databases but the EVENT coundn't work properly. Dimitar has adviced me that I should use one context for many databases. It has worked well until I used AlterDB. How should I do to use many databases on one context?
Quoting Christian Grün christian.gruen@gmail.com:
Thanks for your response. I use "pin" so that a context can store many databases. If I don't use "pin", a newest database will override the current database (see context.dbs.list.elementData). Please tell me how can I use many database on one context.
?I see. Sounds like a dangerous journey, because the whole architecture relies on the concept that only one database is opened in the current context. Why do you want to keep more than one database opened at the same time?
Christian __________________________
Quoting Christian Grün christian.gruen@gmail.com:
Hi,
it?s probably a better idea to avoid explicit (un)pinning of nodes;
all commands should correctly do this for you. Out of interest: why did you choose to do pinning by yourself?
Best, Christian _____________________________
Dear BaseX team, I want to ask you how to use the class AlterDB to change a database name. It always throws the exception DB_PINNED_X although I use "unpin" before using AlterDB. I found the problem is that the method TableDiskAccess.locked(db, this) always returns "true". Please see the attachment and help me solve the problem. Thanks in advance.
Thank you for your answer. I give you some cases why I can't use many contexts to store many databases. Case1: create only one BaseXServer. In this case, the context of the BaseXServer is not related to contexts that I store my databases. Thus, no contexts can work with events. Case2: create one BaseXServer for each context. In this case, only one the first context (and event) can work with events. These are the reasons why I have to use ONE context to store many databases.
Quoting Christian Grün christian.gruen@gmail.com:
Thanks. I?m not sure what you tried to do with event? Do you have a little example or some more information? ___________________________
Thank you for you answer. I have ever used many contexts to store many databases but the EVENT coundn't work properly. Dimitar has adviced me that I should use one context for many databases. It has worked well until I used AlterDB. How should I do to use many databases on one context?
Quoting Christian Grün christian.gruen@gmail.com:
Thanks for your response. I use "pin" so that a context can store many databases. If I don't use "pin", a newest database will override the current database (see context.dbs.list.elementData). Please tell me how can I use many database on one context.
?I see. Sounds like a dangerous journey, because the whole architecture relies on the concept that only one database is opened in the current context. Why do you want to keep more than one database opened at the same time?
Christian __________________________
Quoting Christian Grün christian.gruen@gmail.com:
Hi,
it?s probably a better idea to avoid explicit (un)pinning of nodes;
all commands should correctly do this for you. Out of interest: why did you choose to do pinning by yourself?
Best, Christian _____________________________
Dear BaseX team, I want to ask you how to use the class AlterDB to change a database name. It always throws the exception DB_PINNED_X although I use "unpin" before using AlterDB. I found the problem is that the method TableDiskAccess.locked(db, this) always returns "true". Please see the attachment and help me solve the problem. Thanks in advance.
Please invest some more time, and send me examples that run out of the box. In the given case, I had to rename the class constructor to Case1; next, I was getting the error "Event 'event100' is unknown". More to that, you were talking about databases, but I don’t see anything related to databases in your tests.
If you create a BaseXServer instance, you should generally use ClientSession instances whenever you communicate with the server, and avoid the creation of new Context instances. You may want to have a look at the EventTest class [1], which demonstrates how multiple clients can concurrently watch events in the client/server architecture.
[1] https://github.com/BaseXdb/basex/blob/master/src/test/java/org/basex/test/se... ___________________________
On Tue, Mar 26, 2013 at 3:57 AM, truc.cam@emotive.de wrote:
Thank you for your answer. I give you some cases why I can't use many contexts to store many databases. Case1: create only one BaseXServer. In this case, the context of the BaseXServer is not related to contexts that I store my databases. Thus, no contexts can work with events. Case2: create one BaseXServer for each context. In this case, only one the first context (and event) can work with events. These are the reasons why I have to use ONE context to store many databases.
Quoting Christian Grün christian.gruen@gmail.com:
Thanks. I?m not sure what you tried to do with event? Do you have a
little example or some more information? ___________________________
Thank you for you answer. I have ever used many contexts to store many databases but the EVENT coundn't work properly. Dimitar has adviced me that I should use one context for many databases. It has worked well until I used AlterDB. How should I do to use many databases on one context?
Quoting Christian Grün christian.gruen@gmail.com:
Thanks for your response. I use "pin" so that a context can store many databases. If I don't use "pin", a newest database will override the current database (see context.dbs.list.elementData). Please tell me how can I use many database on one context.
?I see. Sounds like a dangerous journey, because the whole architecture relies on the concept that only one database is opened in the current context. Why do you want to keep more than one database opened at the same time?
Christian __________________________
Quoting Christian Grün christian.gruen@gmail.com:
Hi,
it?s probably a better idea to avoid explicit (un)pinning of nodes;
all commands should correctly do this for you. Out of interest: why did you choose to do pinning by yourself?
Best, Christian _____________________________
> Dear BaseX team, > I want to ask you how to use the class AlterDB to change a database > name. > It > always throws the exception DB_PINNED_X although I use "unpin" before > using > AlterDB. I found the problem is that the method > TableDiskAccess.locked(db, > this) always returns "true". Please see the attachment and help me > solve > the > problem. > Thanks in advance.
I was getting the error "Event 'event100' is unknown". Response: the event will be created If It doesn't exist. I don't know why you get that error.
if (context.events.get(eventName) == null) { createEvent.execute(context); }
More to that, you were talking about databases, but I don?t see anything related to databases in your tests. Reponse: I just try to show you what happens if I use many contexts (of course for storing many databases). Events can't work with many contexts.
And avoid the creation of new Context instances Response: That why I asked you how should I need to do when I use more than one database on a context.
Quoting Christian Grün christian.gruen@gmail.com:
Please invest some more time, and send me examples that run out of the box. In the given case, I had to rename the class constructor to Case1; next, I was getting the error "Event 'event100' is unknown". More to that, you were talking about databases, but I don?t see anything related to databases in your tests.
If you create a BaseXServer instance, you should generally use ClientSession instances whenever you communicate with the server, and avoid the creation of new Context instances. You may want to have a look at the EventTest class [1], which demonstrates how multiple clients can concurrently watch events in the client/server architecture.
[1] https://github.com/BaseXdb/basex/blob/master/src/test/java/org/basex/test/se... ___________________________
On Tue, Mar 26, 2013 at 3:57 AM, truc.cam@emotive.de wrote:
Thank you for your answer. I give you some cases why I can't use many contexts to store many databases. Case1: create only one BaseXServer. In this case, the context of the BaseXServer is not related to contexts that I store my databases. Thus, no contexts can work with events. Case2: create one BaseXServer for each context. In this case, only one the first context (and event) can work with events. These are the reasons why I have to use ONE context to store many databases.
Quoting Christian Grün christian.gruen@gmail.com:
Thanks. I?m not sure what you tried to do with event? Do you have a
little example or some more information? ___________________________
Thank you for you answer. I have ever used many contexts to store many databases but the EVENT coundn't work properly. Dimitar has adviced me that I should use one context for many databases. It has worked well until I used AlterDB. How should I do to use many databases on one context?
Quoting Christian Grün christian.gruen@gmail.com:
Thanks for your response. I use "pin" so that a context can store many databases. If I don't use "pin", a newest database will override the current database (see context.dbs.list.elementData). Please tell me how can I use many database on one context.
?I see. Sounds like a dangerous journey, because the whole architecture relies on the concept that only one database is opened in the current context. Why do you want to keep more than one database opened at the same time?
Christian __________________________
Quoting Christian Grün christian.gruen@gmail.com:
> Hi, > > it?s probably a better idea to avoid explicit (un)pinning of nodes; > > all commands should correctly do this for you. Out of interest: why > did you choose to do pinning by yourself? > > Best, > Christian > _____________________________ > >> Dear BaseX team, >> I want to ask you how to use the class AlterDB to change a database >> name. >> It >> always throws the exception DB_PINNED_X although I use "unpin" before >> using >> AlterDB. I found the problem is that the method >> TableDiskAccess.locked(db, >> this) always returns "true". Please see the attachment and help me >> solve >> the >> problem. >> Thanks in advance.
Response: That why I asked you how should I need to do when I use more than one database on a context.
With XQuery, you can open and process as many databases as you want; see e.g:
for $c in 1 to 100 let $dbname := "db" || $c return db:open($dbname)
There will be no need at all to explicitly bind databases to a context.
Hope this helps, Christian
Why do you want to keep more than one database opened at the same time?
I don't need to use more than one database opened at the same time. I can open a database if needed. But If I don't use "pin", the context stores only the newest database and I can't open one database I need to use.
Quoting truc.cam@emotive.de:
Thank you for you answer. I have ever used many contexts to store many databases but the EVENT coundn't work properly. Dimitar has adviced me that I should use one context for many databases. It has worked well until I used AlterDB. How should I do to use many databases on one context?
Quoting Christian Grün christian.gruen@gmail.com:
Thanks for your response. I use "pin" so that a context can store many databases. If I don't use "pin", a newest database will override the current database (see context.dbs.list.elementData). Please tell me how can I use many database on one context.
?I see. Sounds like a dangerous journey, because the whole architecture relies on the concept that only one database is opened in the current context. Why do you want to keep more than one database opened at the same time?
Christian __________________________
Quoting Christian Grün christian.gruen@gmail.com:
Hi,
it?s probably a better idea to avoid explicit (un)pinning of nodes;
all commands should correctly do this for you. Out of interest: why did you choose to do pinning by yourself?
Best, Christian _____________________________
Dear BaseX team, I want to ask you how to use the class AlterDB to change a database name. It always throws the exception DB_PINNED_X although I use "unpin" before using AlterDB. I found the problem is that the method TableDiskAccess.locked(db, this) always returns "true". Please see the attachment and help me solve the problem. Thanks in advance.
basex-talk@mailman.uni-konstanz.de