Hi Ivan,

The "delete database" only works with databases created via the UI, not via a provided configuration file (actually ones laid out in the /run/ area if you want to mimic that).

When I tried it I got a different error:

"""
[2] There are 0 configuration files, not one.
"""

and no stacktrace.

Which version of Fuseki are you running?
Was the server doing anything else at the time?

    Andy

On 10/06/2020 17:20, Ivan Subotic wrote:
Dear all

I've successfully used the Fuseki2 Administration API (
https://jena.apache.org/documentation/fuseki2/fuseki-server-protocol.html)
to create and delete a dataset (the dataset config is appended). Thank you
very much for the easy to use API.

After deleting a dataset, trying to recreate it, fails. Fuseki2 throws the
appended stack trace.

Is there a way to remove the lucene index and the lock over the
administration API?

Cheers,
Ivan

db_1       | [2020-06-10 16:11:08] Admin      INFO  [6] DELETE
http://localhost:3030/$/datasets/knora-test
db_1       | [2020-06-10 16:11:08] Admin      INFO  [6] DELETE
dataset=/knora-test
db_1       | [2020-06-10 16:11:08] Admin      WARN  [6] RC = 500 : Not in a
transaction
db_1       | org.apache.jena.tdb.transaction.TDBTransactionException: Not
in a transaction
db_1       | at
org.apache.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:138)
db_1       | at
org.apache.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:49)
db_1       | at
org.apache.jena.sparql.core.DatasetGraphWrapper.getWrapped(DatasetGraphWrapper.java:41)
db_1       | at
org.apache.jena.sparql.core.DatasetGraphWrapper.getBase(DatasetGraphWrapper.java:51)
db_1       | at
org.apache.jena.fuseki.server.DataService.expel(DataService.java:277)
db_1       | at
org.apache.jena.fuseki.server.DataService.shutdown(DataService.java:267)
db_1       | at
org.apache.jena.fuseki.mgt.ActionDatasets.execDeleteItem(ActionDatasets.java:389)
db_1       | at
org.apache.jena.fuseki.ctl.ActionContainerItem.performDelete(ActionContainerItem.java:99)
db_1       | at
org.apache.jena.fuseki.ctl.ActionContainerItem.execute(ActionContainerItem.java:45)
db_1       | at
org.apache.jena.fuseki.ctl.ActionCtl.executeLifecycle(ActionCtl.java:49)
db_1       | at
org.apache.jena.fuseki.ctl.ActionCtl.process(ActionCtl.java:39)
db_1       | at
org.apache.jena.fuseki.servlets.ActionExecLib.execAction(ActionExecLib.java:106)
db_1       | at
org.apache.jena.fuseki.servlets.ActionExecLib.execAction(ActionExecLib.java:79)
db_1       | at
org.apache.jena.fuseki.servlets.ServletProcessor.service(ServletProcessor.java:52)
db_1       | at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
db_1       | at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
db_1       | at
org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:59)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
db_1       | at
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
db_1       | at
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
db_1       | at
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
db_1       | at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
db_1       | at
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
db_1       | at
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
db_1       | at
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
db_1       | at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
db_1       | at
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
db_1       | at
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
db_1       | at
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
db_1       | at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
db_1       | at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
db_1       | at
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
db_1       | at
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
db_1       | at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
db_1       | at
org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285)
db_1       | at
org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
db_1       | at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
db_1       | at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
db_1       | at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
db_1       | at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
db_1       | at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
db_1       | at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
db_1       | at
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690)
db_1       | at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
db_1       | at org.eclipse.jetty.server.Server.handle(Server.java:503)
db_1       | at
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
db_1       | at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
db_1       | at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
db_1       | at
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
db_1       | at
org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
db_1       | at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
db_1       | at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
db_1       | at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
db_1       | at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
db_1       | at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
db_1       | at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
db_1       | at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
db_1       | at java.base/java.lang.Thread.run(Unknown Source)
db_1       | [2020-06-10 16:11:08] Admin      INFO  [6] 500 Not in a
transaction (9 ms)
db_1       | [2020-06-10 16:11:08] Admin      INFO  [7] POST
http://localhost:3030/$/datasets
db_1       | [2020-06-10 16:11:08] Admin      INFO  [7] Filename:
fuseki-knora-test-repository-config.ttl,
Content-Type=application/octet-stream, Charset=null => Turtle : Count=36
Triples=36 Quads=0
db_1       | [2020-06-10 16:11:08] Admin      INFO  [7] Create database :
name = /knora-test
db_1       | [2020-06-10 16:11:08] Admin      WARN  [7] RC = 500 : caught:
openIndexWriter
db_1       | org.apache.jena.assembler.exceptions.AssemblerException:
caught: openIndexWriter
db_1       |   doing:
db_1       |     root: http://base/#indexLucene with type:
http://jena.apache.org/text#TextIndexLucene assembler class: class
org.apache.jena.query.text.assembler.TextIndexLuceneAssembler
db_1       |     root: http://base/#text_dataset with type:
http://jena.apache.org/text#TextDataset assembler class: class
org.apache.jena.query.text.assembler.TextDatasetAssembler
db_1       |
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:165)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:144)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerGroup$ExpandingAssemblerGroup.open(AssemblerGroup.java:93)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:39)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:35)
db_1       | at
org.apache.jena.query.text.assembler.TextDatasetAssembler.open(TextDatasetAssembler.java:62)
db_1       | at
org.apache.jena.query.text.assembler.TextDatasetAssembler.open(TextDatasetAssembler.java:42)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:157)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:144)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerGroup$ExpandingAssemblerGroup.open(AssemblerGroup.java:93)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:39)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:35)
db_1       | at
org.apache.jena.fuseki.build.FusekiConfig.getDataset(FusekiConfig.java:638)
db_1       | at
org.apache.jena.fuseki.build.FusekiConfig.buildDataService(FusekiConfig.java:443)
db_1       | at
org.apache.jena.fuseki.build.FusekiConfig.buildDataAccessPoint(FusekiConfig.java:433)
db_1       | at
org.apache.jena.fuseki.mgt.ActionDatasets.execPostContainer(ActionDatasets.java:216)
db_1       | at
org.apache.jena.fuseki.ctl.ActionContainerItem.performPost(ActionContainerItem.java:81)
db_1       | at
org.apache.jena.fuseki.ctl.ActionContainerItem.execute(ActionContainerItem.java:43)
db_1       | at
org.apache.jena.fuseki.ctl.ActionCtl.executeLifecycle(ActionCtl.java:49)
db_1       | at
org.apache.jena.fuseki.ctl.ActionCtl.process(ActionCtl.java:39)
db_1       | at
org.apache.jena.fuseki.servlets.ActionExecLib.execAction(ActionExecLib.java:106)
db_1       | at
org.apache.jena.fuseki.servlets.ActionExecLib.execAction(ActionExecLib.java:79)
db_1       | at
org.apache.jena.fuseki.servlets.ServletProcessor.service(ServletProcessor.java:52)
db_1       | at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
db_1       | at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
db_1       | at
org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:59)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
db_1       | at
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
db_1       | at
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
db_1       | at
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
db_1       | at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
db_1       | at
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
db_1       | at
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
db_1       | at
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
db_1       | at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
db_1       | at
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
db_1       | at
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
db_1       | at
org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
db_1       | at
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
db_1       | at
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
db_1       | at
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383)
db_1       | at
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
db_1       | at
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
db_1       | at
org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285)
db_1       | at
org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
db_1       | at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
db_1       | at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
db_1       | at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
db_1       | at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
db_1       | at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
db_1       | at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
db_1       | at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
db_1       | at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
db_1       | at
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:690)
db_1       | at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
db_1       | at org.eclipse.jetty.server.Server.handle(Server.java:503)
db_1       | at
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
db_1       | at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
db_1       | at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
db_1       | at
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
db_1       | at
org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
db_1       | at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
db_1       | at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
db_1       | at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
db_1       | at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
db_1       | at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
db_1       | at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
db_1       | at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
db_1       | at java.base/java.lang.Thread.run(Unknown Source)
db_1       | Caused by: org.apache.jena.query.text.TextIndexException:
openIndexWriter
db_1       | at
org.apache.jena.query.text.TextIndexLucene.openIndexWriter(TextIndexLucene.java:198)
db_1       | at
org.apache.jena.query.text.TextIndexLucene.<init>(TextIndexLucene.java:181)
db_1       | at
org.apache.jena.query.text.TextDatasetFactory.createLuceneIndex(TextDatasetFactory.java:109)
db_1       | at
org.apache.jena.query.text.assembler.TextIndexLuceneAssembler.open(TextIndexLuceneAssembler.java:199)
db_1       | at
org.apache.jena.query.text.assembler.TextIndexLuceneAssembler.open(TextIndexLuceneAssembler.java:42)
db_1       | at
org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:157)
db_1       | ... 77 more
db_1       | Caused by: org.apache.lucene.store.LockObtainFailedException:
Lock held by this virtual machine: /fuseki/lucene/knora-test/write.lock
db_1       | at
org.apache.lucene.store.NativeFSLockFactory.obtainFSLock(NativeFSLockFactory.java:139)
db_1       | at
org.apache.lucene.store.FSLockFactory.obtainLock(FSLockFactory.java:41)
db_1       | at
org.apache.lucene.store.BaseDirectory.obtainLock(BaseDirectory.java:45)
db_1       | at
org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:718)
db_1       | at
org.apache.jena.query.text.TextIndexLucene.openIndexWriter(TextIndexLucene.java:188)
db_1       | ... 82 more
db_1       | [2020-06-10 16:11:08] Admin      INFO  [7] 500 caught:
openIndexWriter (42 ms)

-------------------------

@prefix :           <http://base/#> .
@prefix tdb:        <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf:        <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja:         <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs:       <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki:     <http://jena.apache.org/fuseki#> .
@prefix text:       <http://jena.apache.org/text#> .
@prefix knora-base: <http://www.knora.org/ontology/knora-base#> .

:service_tdb_all        a                                   fuseki:Service ;
                         rdfs:label                          "TDB
knora-test" ;
                         fuseki:dataset                      :text_dataset ;
                         fuseki:name                         "knora-test" ;
                         fuseki:serviceQuery                 "query" ,
"sparql" ;
                         fuseki:serviceReadGraphStore        "get" ;
                         fuseki:serviceReadWriteGraphStore   "data" ;
                         fuseki:serviceUpdate                "update" ;
                         fuseki:serviceUpload                "upload" .

## ---------------------------------------------------------------
## This URI must be fixed - it's used to assemble the text dataset.

:text_dataset           rdf:type
  text:TextDataset ;
                         text:dataset
  :tdb_dataset_readwrite ;
                         text:index                          :indexLucene .

# A TDB datset used for RDF storage
:tdb_dataset_readwrite  a                                   tdb:DatasetTDB ;
                         tdb:unionDefaultGraph               true ;
                         tdb:location
  "/fuseki/databases/knora-test" .

# Text index description
:indexLucene            a
text:TextIndexLucene ;
                         text:directory
  "/fuseki/lucene/knora-test" ;
##text:directory                    "mem" ;
                         text:entityMap                      :entMap .

# Mapping in the index
# URI stored in field "uri"
# knora-base:valueHasString is mapped to field "text"
:entMap                 a                                   text:EntityMap ;
                         text:entityField                    "uri" ;
                         text:defaultField                   "text" ;
                         text:uidField                       "uid" ;
                         text:map                            (
                                                                 [
text:field  "text" ;  text:predicate  rdfs:label ]
                                                                 [
text:field  "text" ;  text:predicate  knora-base:valueHasString ]
                                                                 [
text:field  "text" ;  text:predicate  knora-base:valueHasComment ]

                                                             ) .

Reply via email to