Would you mind rewriting it for Java 1.7?
Thanks in advance,
Christian
On Sun, Oct 9, 2016 at 4:44 PM, Erdal Karaca <erdal.karaca.de@gmail.com> wrote:
> Hi Christian,
> I have prepared a MCVE (see attachment).
> Not sure how to use QueryProcess.register/unregister.
> Is there an example?
> XQuery.execute() does not return objects, just a string?
>
> 2016-10-09 16:36 GMT+02:00 Christian Grün <christian.gruen@gmail.com>:
>>
>> You may need to call XQuery.execute, or call QueryProcessor.register
>> (and, finally, unregister) before retrieving results; but maybe you
>> should prepare an MCVE for us?
>>
>>
>>
>> On Sun, Oct 9, 2016 at 4:20 PM, Erdal Karaca <erdal.karaca.de@gmail.com>
>> wrote:
>> > Hi Christian,
>> > I have setup a stress test to access the same DB in parallel. I have
>> > only
>> > one call to the Context constructor and using that same Context instance
>> > for
>> > all executions.
>> > I still get this exception:
>> > Caused by: java.nio.channels.OverlappingFileLockException
>> > at sun.nio.ch.SharedFileLockTable.checkList( FileLockTable.java:255)
>> > at sun.nio.ch.SharedFileLockTable.add( FileLockTable.java:152)
>> > at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java: 1108)
>> > at org.basex.io.random.TableDiskAccess.lock( TableDiskAccess.java:139)
>> > at org.basex.data.DiskData.startUpdate(DiskData.java:207)
>> > at org.basex.query.up.ContextModifier.apply( ContextModifier.java:131)
>> > at org.basex.query.up.Updates.apply(Updates.java:157)
>> > at org.basex.query.QueryContext.iter(QueryContext.java:351)
>> > at org.basex.query.QueryProcessor.value( QueryProcessor.java:101)
>> >
>> > I am accessing the returned elements (of the queries) via a Value.iter()
>> > iterator.
>> > The queries returns a sequence of 100 elements.
>> >
>> > Each access to the DB has its own subtree.
>> > I.e. if "user 1" accesses the DB, then he only accesses the subtree
>> > assigned
>> > to him.
>> >
>> > This is the DB tree structure:
>> > MyDB
>> > + users/usr1.xml/container
>> > + users/usr2.xml/container
>> > + ...
>> > + users/usrN.xml/container
>> >
>> > Are iterators also thread-safe?
>> > If not, what can I use instead?
>> >
>> > (Standalone unit test will follow.)
>> >
>> > 2016-10-06 20:07 GMT+02:00 Christian Grün <christian.gruen@gmail.com>:
>> >>
>> >> > I mean, once I have the Context object and opened a database, is it
>> >> > safe
>> >> > to
>> >> > access (read/write) it from multiple threads?
>> >>
>> >> It depends on how you do it ;) If you call Command.execute() with the
>> >> same Context instance, you should be safe.
>> >
>> >
>
>