Hi Andy, I have no idea but after dropping & recreating the tables in the database, it started working.
Nevertheless, I feel this can resurface. I shall let you know if I can reproduce it again. Can you please let me know when is 3.1 scheduled for release? Thanks, Akhilesh On Thu, Feb 11, 2016 at 11:56 PM, Bangalore Akhilesh < [email protected]> wrote: > Hi Andy, > > I tried the latest snapshots of Fuseki & SDB - 48 & 49 respectively - as > per your advice. Unfortunately, SDB seems broken. I encounter an error for > any operation - update or query! > > Below is the log when I tried to insert a triple: > > *** Start of log *** > > [2016-02-11 23:45:41] Fuseki INFO [9] POST /oracle :: 'update' :: > [application/x-www-form-urlencoded charset=UTF-8] ? > [2016-02-11 23:45:42] SDBConnection WARN execUpdate: SQLException > ORA-06550: line 1, column 18: > PL/SQL: ORA-00942: table or view does not exist > ORA-06550: line 1, column 7: > PL/SQL: SQL Statement ignored > ORA-06550: line 4, column 27: > PL/SQL: ORA-00942: table or view does not exist > ORA-06550: line 2, column 1: > PL/SQL: SQL Statement ignored > > BEGIN LOCK TABLE Nodes IN EXCLUSIVE MODE; > INSERT INTO Nodes (hash, lex, lang, datatype, type) > SELECT NNodeQuads.n0 , NNodeQuads.n1 , NNodeQuads.n2 , NNodeQuads.n3 , > NNodeQuads.n4 > FROM NNodeQuads LEFT JOIN Nodes ON (NNodeQuads.n0=Nodes.hash) > WHERE Nodes.hash IS NULL; > END; > > [2016-02-11 23:45:42] LoaderTuplesNodes ERROR Error in thread: Exception > flushing > org.apache.jena.sdb.SDBException: Exception flushing > at > org.apache.jena.sdb.layout2.TupleLoaderBase.flush(TupleLoaderBase.java:235) > at > org.apache.jena.sdb.layout2.TupleLoaderBase.finish(TupleLoaderBase.java:170) > at > org.apache.jena.sdb.layout2.LoaderTuplesNodes.commitTuples(LoaderTuplesNodes.java:305) > at > org.apache.jena.sdb.layout2.LoaderTuplesNodes.access$100(LoaderTuplesNodes.java:42) > at > org.apache.jena.sdb.layout2.LoaderTuplesNodes$Commiter.run(LoaderTuplesNodes.java:345) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.sql.SQLException: ORA-06550: line 1, column 18: > PL/SQL: ORA-00942: table or view does not exist > ORA-06550: line 1, column 7: > PL/SQL: SQL Statement ignored > ORA-06550: line 4, column 27: > PL/SQL: ORA-00942: table or view does not exist > ORA-06550: line 2, column 1: > PL/SQL: SQL Statement ignored > > at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) > at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395) > at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802) > at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436) > at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186) > at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521) > at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:194) > at > oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:1000) > at > oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307) > at > oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1814) > at > oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1779) > at > oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:277) > at > org.apache.jena.sdb.sql.SDBConnection.execUpdate(SDBConnection.java:160) > at > org.apache.jena.sdb.layout2.TupleLoaderBase.flush(TupleLoaderBase.java:217) > ... 5 more > org.apache.jena.sdb.SDBException: Exception flushing > at > org.apache.jena.sdb.layout2.TupleLoaderBase.flush(TupleLoaderBase.java:235) > at > org.apache.jena.sdb.layout2.TupleLoaderBase.finish(TupleLoaderBase.java:170) > at > org.apache.jena.sdb.layout2.LoaderTuplesNodes.commitTuples(LoaderTuplesNodes.java:305) > at > org.apache.jena.sdb.layout2.LoaderTuplesNodes.access$100(LoaderTuplesNodes.java:42) > at > org.apache.jena.sdb.layout2.LoaderTuplesNodes$Commiter.run(LoaderTuplesNodes.java:345) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.sql.SQLException: ORA-06550: line 1, column 18: > PL/SQL: ORA-00942: table or view does not exist > ORA-06550: line 1, column 7: > PL/SQL: SQL Statement ignored > ORA-06550: line 4, column 27: > PL/SQL: ORA-00942: table or view does not exist > ORA-06550: line 2, column 1: > PL/SQL: SQL Statement ignored > > at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) > at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395) > at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802) > at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436) > at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186) > at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521) > at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:194) > at > oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:1000) > at > oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307) > at > oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1814) > at > oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1779) > at > oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:277) > at > org.apache.jena.sdb.sql.SDBConnection.execUpdate(SDBConnection.java:160) > at > org.apache.jena.sdb.layout2.TupleLoaderBase.flush(TupleLoaderBase.java:217) > ... 5 more > [2016-02-11 23:45:43] Fuseki INFO [9] 500 Exception flushing (1.265 s) > > *** End of log *** > > > Thanks, > Akhilesh > > > On Mon, Feb 8, 2016 at 7:19 PM, Andy Seaborne <[email protected]> wrote: > >> Hi Akhilesh, >> >> I reduced your setup to something outside Fuseki:insert some data >> >> * check it is as expected >> * DROP GRAPH >> * check it is not there >> >> >> public static void main(String ... a) { >> sdb.sdbtruncate.main("--sdb=sdb.ttl", "--confirm") ; >> sdb.sdbupdate.main("--sdb=sdb.ttl", "INSERT DATA { GRAPH <x:gx> >> { <x:sx> <x:px> <x:ox> } }"); >> sdb.sdbquery.main("--sdb=sdb.ttl", "SELECT * { { GRAPH ?g { ?s ?p >> ?o } } UNION { ?s ?p ?o } }"); >> sdb.sdbdump.main("--sdb=sdb.ttl"); >> sdb.sdbupdate.main("--sdb=sdb.ttl", "DROP GRAPH <x:gx>") ; >> sdb.sdbquery.main("--sdb=sdb.ttl", "SELECT * { { GRAPH ?g { ?s ?p >> ?o } } UNION { ?s ?p ?o } }"); >> } >> >> (sdbupdate is new, not in 3.0.1) >> >> or the same run as command scripts from the command line. >> >> The same via Fuseki would also illustrate the problem but it's easier to >> debug outside Fuseki. >> >> JENA-1132 <https://issues.apache.org/jira/browse/JENA-1132> >> >> It turns out that it got fixed (or rather rewritten out of existence) as >> part of wider changes from ARQ. >> >> So please give the snapshot build a try [*] >> >> Thanks >> Andy >> >> [*] >> >> https://repository.apache.org/content/repositories/snapshots/org/apache/jena/apache-jena-fuseki/ >> build 46 or later. >> >> On 08/02/16 12:17, Bangalore Akhilesh wrote: >> >>> Hi Andy, >>> >>> Sorry the examples got damaged. Please find them below along with other >>> details. >>> >>> I had built the source from git tagged at jena-3.0.1-rc1. >>> >>> The versions and other environment details are: >>> >>> 1. Jena - 3.0.1 >>> 2. Fuseki - 2.3.1 >>> 3. SDB - 3.0.1 >>> 4. OS - Windows 7 + Oracle Linux 6 >>> 5. Web app server - Tomcat 8 on Windows 7 >>> 6. Database server - Oralce 11g on Oracle Linux 6 >>> >>> *Note*: The problem was reproduced even when SDB is configured to connect >>> to MySQL as well! >>> >>> >>> 1. *Fuseki configuration* (place under *C:\etc\fuseki* or >>> */etc/fuseki*) >>> >>> @prefix : <#> . >>> >>> @prefix fuseki: <http://jena.apache.org/fuseki#> . >>> >>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . >>> >>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . >>> >>> @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> . >>> >>> >>> >>> [] rdf:type fuseki:Server ; >>> >>> # ja:context [ ja:cxtName "arq:queryTimeout" ; ja:cxtValue "30000" ] >>> ; >>> >>> ja:loadClass "org.apache.jena.sdb.SDB" ; >>> >>> . >>> >>> >>> 2. *SDB configuration* (place under *C:\etc\fuseki\configuration* or >>> */etc/fuseki/configuration*) >>> >>> *(a) For Oracle* >>> >>> >>> @prefix : <#> . >>> @prefix fuseki: <http://jena.apache.org/fuseki#> . >>> @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . >>> @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . >>> @prefix sdb: <http://jena.hpl.hp.com/2007/sdb#> . >>> @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> . >>> >>> :service_sdb_all rdf:type fuseki:Service ; >>> rdfs:label "SDB - Oracle" ; >>> fuseki:name "oracle" ; >>> fuseki:serviceQuery "query", "sparql" ; >>> fuseki:serviceUpdate "update" ; >>> fuseki:serviceUpload "upload" ; >>> fuseki:serviceReadWriteGraphStore "data" ; >>> fuseki:serviceReadGraphStore "get" ; >>> fuseki:dataset :sdb_dataset_readwrite ; >>> . >>> >>> :sdb_dataset_readwrite rdf:type sdb:DatasetStore ; >>> sdb:store :rdbms_datastore >>> >>> . >>> >>> :rdbms_datastore rdf:type sdb:Store ; >>> sdb:layout "layout2" ; >>> sdb:connection :oracle_data_conn ; >>> . >>> >>> :oracle_data_conn rdf:type sdb:SDBConnection ; >>> sdb:sdbType "oracle" ; >>> sdb:driver "oracle.jdbc.driver.OracleDriver" ; >>> sdb:jdbcURL "jdbc:oracle:thin:@localhost:1521/xe" ; >>> sdb:sdbUser "username" ; >>> sdb:sdbPassword "password" ; >>> . (b) For MySQL * @prefix : <#> . @prefix fuseki: >>> <http://jena.apache.org/fuseki# <http://jena.apache.org/fuseki#>> . >>> @prefix >>> rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns# >>> <http://www.w3.org/1999/02/22-rdf-syntax-ns#>> . @prefix rdfs: >>> <http://www.w3.org/2000/01/rdf-schema# >>> <http://www.w3.org/2000/01/rdf-schema#>> . @prefix sdb: >>> <http://jena.hpl.hp.com/2007/sdb# <http://jena.hpl.hp.com/2007/sdb#>> >>> . >>> @prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler# >>> <http://jena.hpl.hp.com/2005/11/Assembler#>> . :service_sdb_all >>> rdf:type >>> fuseki:Service ; rdfs:label "SDB - MySQL" ; fuseki:name "mysql" ; >>> fuseki:serviceQuery "query", "sparql" ; fuseki:serviceUpdate >>> "update" ; >>> fuseki:serviceUpload "upload" ; fuseki:serviceReadWriteGraphStore >>> "data" ; >>> fuseki:serviceReadGraphStore "get" ; fuseki:dataset >>> :sdb_dataset_readwrite >>> ; . :sdb_dataset_readwrite rdf:type sdb:DatasetStore ; sdb:store >>> :rdbms_datastore . :rdbms_datastore rdf:type sdb:Store ; sdb:layout >>> "layout2" ; sdb:connection :mysql_data_conn ; sdb:engine "MyISAM" ; . >>> :mysql_data_conn rdf:type sdb:SDBConnection ; sdb:sdbType "MySQL" ; >>> sdb:jdbcURL "jdbc:mysql://localhost:3306/triplestore" ; sdb:driver >>> "com.mysql.jdbc.Driver" ; sdb:sdbUser "user" ; sdb:sdbPassword >>> "password" ; >>> . * >>> 3. *Steps Followed* >>> >>> I have created fuseki.war after including the ojdbc6.jar (or) >>> mysql-connector-java-5.0.8-bin.jar & jena-sdb.3.0.1.jar in the lib >>> folder >>> and deployed it on Tomcat 8. >>> >>> *Step 1:* >>> >>> On successful deploy, I had accessed Fuseki's UI for executing >>> queries >>> and created a named graph with a triple by accessing the sparql >>> update end >>> point http://localhost:8080/fuseki/oracle/update >>> >>> insert data{ graph <urn:providers:search:google>{ < >>> http://www.google.com> >>> <http://www.google.com#tab> <http://www.google.com/images> . } } >>> >>> *Step 2:* >>> >>> Then I executed the below query against sparql query end point >>> http://localhost:8080/fuseki/oracle/query >>> >>> select ?g ?s ?p ?o { graph ?g { ?s ?p ?o } } >>> >>> This returned the triple which was inserted in Step 1. >>> >>> *Step 3:* >>> >>> I had again accessed the sparql update end point. This time to >>> execute >>> the query to drop the named graph. >>> >>> drop graph <urn:providers:search:google> >>> >>> This returned a success status code. >>> >>> >>> *Step 4:* >>> >>> I then again executed the query from Step 2. The named graph and the >>> triple still persisted! >>> >>> *Step 5:* >>> >>> >>> I then tried the query to delete all the triples in the named graph >>> against the sparql update end point. >>> >>> with <urn:providers:search:google> delete {?s ?p ?o} where {?s ?p ?o} >>> >>> This deleted the triples along with the graph! >>> >>> >>> Thanks, >>> Akhilesh >>> >>> >>> On Thu, Feb 4, 2016 at 8:06 PM, Andy Seaborne <[email protected]> wrote: >>> >>> Akhilesh, >>>> >>>> Please can you provide a complete, minimal example including the Fuseki >>>> configuration together with details of your environment (version >>>> numbers of >>>> Jena/Fuseki/SDB, OS, webapp server, etc.) >>>> >>>> There are too many unknowns here at the moment to accurate recreate the >>>> situation. >>>> >>>> Your examples below seem to have got damaged in email. A pastebin might >>>> be safer. >>>> >>>> >>>> Andy >>>> >>>> PS I don't have an Oracle instance for testing - I have MySQL, H2, HSQL, >>>> or Apache Derby. >>>> >>>> >>>> On 04/02/16 08:30, Bangalore Akhilesh wrote: >>>> >>>> Hi Rob, >>>>> >>>>> The response remained the same even with DROP GRAPH <iri>. >>>>> >>>>> Below are the sequence of requests that were issued: >>>>> >>>>> Step 1: >>>>> >>>>> >>>>> >>>>> Request >>>>> >>>>> Response >>>>> >>>>> POST http://localhost:8080/fuseki/oracle/update >>>>> >>>>> Accept: application/sparql-results+json >>>>> >>>>> Content-Type: application/sparql-update >>>>> >>>>> >>>>> >>>>> insert data{ >>>>> >>>>> graph <urn:providers:search:google>{ >>>>> >>>>> <http://www.google.com> >>>>> >>>>> <http://www.google.com#tab> >>>>> >>>>> <http://www.google.com/images> >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> Status 204 No Content >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Step 2: >>>>> >>>>> >>>>> >>>>> Request >>>>> >>>>> Response >>>>> >>>>> POST http://localhost:8080/fuseki/oracle/query >>>>> >>>>> Accept: application/sparql-results+json >>>>> >>>>> Content-Type: application/sparql-query >>>>> >>>>> >>>>> >>>>> select ?g ?s ?p ?o >>>>> >>>>> { >>>>> >>>>> graph ?g >>>>> >>>>> { >>>>> >>>>> ?s ?p ?o >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> Status 200 OK >>>>> >>>>> >>>>> >>>>> { >>>>> >>>>> "head": { >>>>> >>>>> "vars": [ >>>>> >>>>> "g", >>>>> >>>>> "s", >>>>> >>>>> "p", >>>>> >>>>> "o" >>>>> >>>>> ] >>>>> >>>>> }, >>>>> >>>>> "results": { >>>>> >>>>> "bindings": [ >>>>> >>>>> { >>>>> >>>>> "g": { >>>>> >>>>> "type": "uri", >>>>> >>>>> "value": "urn:providers:search:google" >>>>> >>>>> }, >>>>> >>>>> "s": { >>>>> >>>>> "type": "uri", >>>>> >>>>> "value": "http://www.google.com" >>>>> >>>>> }, >>>>> >>>>> "p": { >>>>> >>>>> "type": "uri", >>>>> >>>>> "value": "http://www.google.com#tab" >>>>> >>>>> }, >>>>> >>>>> "o": { >>>>> >>>>> "type": "uri", >>>>> >>>>> "value": "http://www.google.com/images" >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> ] >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Step 3: >>>>> >>>>> >>>>> >>>>> Request >>>>> >>>>> Response >>>>> >>>>> POST http://localhost:8080/fuseki/oracle/update >>>>> >>>>> Accept: application/sparql-results+json >>>>> >>>>> Content-Type: application/sparql-update >>>>> >>>>> >>>>> >>>>> drop graph <urn:providers:search:google> >>>>> >>>>> >>>>> >>>>> Status 204 No Content >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> Step 4: >>>>> >>>>> >>>>> >>>>> Request >>>>> >>>>> Response >>>>> >>>>> POST http://localhost:8080/fuseki/oracle/query >>>>> >>>>> Accept: application/sparql-results+json >>>>> >>>>> Content-Type: application/sparql-query >>>>> >>>>> >>>>> >>>>> select ?g ?s ?p ?o >>>>> >>>>> { >>>>> >>>>> graph ?g >>>>> >>>>> { >>>>> >>>>> ?s ?p ?o >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> >>>>> >>>>> Status 200 OK >>>>> >>>>> >>>>> >>>>> { >>>>> >>>>> "head": { >>>>> >>>>> "vars": [ >>>>> >>>>> "g", >>>>> >>>>> "s", >>>>> >>>>> "p", >>>>> >>>>> "o" >>>>> >>>>> ] >>>>> >>>>> }, >>>>> >>>>> "results": { >>>>> >>>>> "bindings": [ >>>>> >>>>> { >>>>> >>>>> "g": { >>>>> >>>>> "type": "uri", >>>>> >>>>> "value": "urn:providers:search:google" >>>>> >>>>> }, >>>>> >>>>> "s": { >>>>> >>>>> "type": "uri", >>>>> >>>>> "value": "http://www.google.com" >>>>> >>>>> }, >>>>> >>>>> "p": { >>>>> >>>>> "type": "uri", >>>>> >>>>> "value": "http://www.google.com#tab" >>>>> >>>>> }, >>>>> >>>>> "o": { >>>>> >>>>> "type": "uri", >>>>> >>>>> "value": "http://www.google.com/images" >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> ] >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> As you can see, the graph is still available! >>>>> >>>>> I have also tried the below request but the graph still remained. >>>>> >>>>> Request >>>>> >>>>> Response >>>>> >>>>> DELETE >>>>> >>>>> >>>>> http://localhost:8080/fuseki/oracle/graph?graph=urn:providers:search:google >>>>> >>>>> >>>>> >>>>> Status 204 No Content >>>>> >>>>> >>>>> >>>>> Thanks, >>>>> Akhilesh >>>>> >>>>> On Tue, Feb 2, 2016 at 7:03 PM, Rob Vesse <[email protected]> >>>>> wrote: >>>>> >>>>> How do you verify that the graph is still present? >>>>> >>>>>> Also what happens if you run DROP GRAPH <iri>? >>>>>> >>>>>> The SILENT keyword allows for an operation to fail but to ignore the >>>>>> failure and return success so if something is going wrong removing the >>>>>> SILENT keyword allows for the error to be propagated. >>>>>> >>>>>> Rob >>>>>> >>>>>> On 02/02/2016 12:59, "Bangalore Akhilesh" < >>>>>> [email protected]> >>>>>> wrote: >>>>>> >>>>>> Hi All, >>>>>> >>>>>>> I had setup Fuseki with SDB to work against Oracle. >>>>>>> >>>>>>> Today, I had observed that the command *DROP SILENT GRAPH <GRAPH >>>>>>> IRI>* >>>>>>> returned a success code but the graph & the triples remained in the >>>>>>> database. >>>>>>> >>>>>>> Can anyone please help me out to address this problem? >>>>>>> >>>>>>> Thanks, >>>>>>> Akhilesh >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >> >
