Hi, We have deployed fuseki with SDB against Oracle database. We have used *jena-sdb-3.1.0-20160211.100203-49* with *apache-jena-fuseki-2.4.0-SNAPSHOT* .
It worked fine for few days before we started to experience the SQL connection closed problems. Can you please let me know why this is happening? Am I missing anything in the configuration? Below are my configuration and exception log. *Configuration:* @prefix : <# <http://example.com/#>> . @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 a 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 a sdb:DatasetStore ; sdb:store :rdbms_datastore . : rdbms_datastore a sdb:Store ; sdb:layout "layout2" ; sdb:connection : fuseki_data_conn ; . :fuseki_data_conn a sdb:SDBConnection ; sdb:sdbType " oracle" ; sdb:driver "oracle.jdbc.driver.OracleDriver" ; sdb:jdbcURL " jdbc:oracle:thin:@localhost:1521/xe" ; sdb:sdbUser "myuser" ; sdb: sdbPassword "password" ; . *Exception log:* [2016-03-28 20:45:46] Fuseki INFO [305964] 500 SQLException in executing SQL statement (1 ms) [2016-03-28 20:45:46] Fuseki INFO [305965] GET http://localhost:8080/fuseki/oracle/query?query=SELECT%20%3Fs%20%3Fp%20%3Fo%0D%0AWHERE%0D%0A%7B%0D%0A%20%20GRAPH%20%3Curn%3Amydepts%3Aplatforms%3Acustomers%3ATestCompany1%3E%20%7B%20%3Fs%20%3Fp%20%3Fo%20.%20%7D%0D%0A%7D%0D%0A [2016-03-28 20:45:46] Fuseki INFO [305965] GET /oracle :: 'query' :: <none> ? query=SELECT%20%3Fs%20%3Fp%20%3Fo%0D%0AWHERE%0D%0A%7B%0D%0A%20%20GRAPH%20%3Curn%3Amydepts%3Aplatforms%3Acustomers%3ATestCompany1%3E%20%7B%20%3Fs%20%3Fp%20%3Fo%20.%20%7D%0D%0A%7D%0D%0A [2016-03-28 20:45:46] Fuseki INFO [305965] Query = SELECT ?s ?p ?o WHERE { GRAPH <urn:mydepts:platforms:customers:TestCompany1> { ?s ?p ?o . } } *[2016-03-28 20:45:46] SDBConnection WARN execQuery: SQLException* *Closed Connection* SELECT -- V_1=?s V_2=?p V_3=?o -- V_4=?s V_5=?p V_6=?o CASE WHEN LENGTH(R_1.lex) <= 2000 THEN NULL ELSE R_1.lex END V_1_lex, CASE WHEN LENGTH(R_1.lex) <= 2000 THEN TO_NCHAR(R_1.lex) ELSE NULL END V_1_lexNChar, R_1.datatype V_1_datatype, R_1.lang V_1_lang, R_1.type V_1_type, CASE WHEN LENGTH(R_2.lex) <= 2000 THEN NULL ELSE R_2.lex END V_2_lex, CASE WHEN LENGTH(R_2.lex) <= 2000 THEN TO_NCHAR(R_2.lex) ELSE NULL END V_2_lexNChar, R_2.datatype V_2_datatype, R_2.lang V_2_lang, R_2.type V_2_type, CASE WHEN LENGTH(R_3.lex) <= 2000 THEN NULL ELSE R_3.lex END V_3_lex, CASE WHEN LENGTH(R_3.lex) <= 2000 THEN TO_NCHAR(R_3.lex) ELSE NULL END V_3_lexNChar, R_3.datatype V_3_datatype, R_3.lang V_3_lang, R_3.type V_3_type, CASE WHEN LENGTH(R_1.lex) <= 2000 THEN NULL ELSE R_1.lex END V_4_lex, CASE WHEN LENGTH(R_1.lex) <= 2000 THEN TO_NCHAR(R_1.lex) ELSE NULL END V_4_lexNChar, R_1.datatype V_4_datatype, R_1.lang V_4_lang, R_1.type V_4_type, CASE WHEN LENGTH(R_2.lex) <= 2000 THEN NULL ELSE R_2.lex END V_5_lex, CASE WHEN LENGTH(R_2.lex) <= 2000 THEN TO_NCHAR(R_2.lex) ELSE NULL END V_5_lexNChar, R_2.datatype V_5_datatype, R_2.lang V_5_lang, R_2.type V_5_type, CASE WHEN LENGTH(R_3.lex) <= 2000 THEN NULL ELSE R_3.lex END V_6_lex, CASE WHEN LENGTH(R_3.lex) <= 2000 THEN TO_NCHAR(R_3.lex) ELSE NULL END V_6_lexNChar, R_3.datatype V_6_datatype, R_3.lang V_6_lang, R_3.type V_6_type FROM ( SELECT * FROM Quads Q_1 -- <urn:mydepts:platforms:customers:TestCompany1> ?s ?p ?o WHERE ( Q_1.g = -106387259433705127 -- Const: <urn:mydepts:platforms:customers:TestCompany1> ) ) Q_1 LEFT OUTER JOIN Nodes R_1 -- Var: ?s ON ( Q_1.s = R_1.hash ) LEFT OUTER JOIN Nodes R_2 -- Var: ?p ON ( Q_1.p = R_2.hash ) LEFT OUTER JOIN Nodes R_3 -- Var: ?o ON ( Q_1.o = R_3.hash ) [2016-03-28 20:45:46] Fuseki WARN [305965] RC = 500 : SQLException in executing SQL statement org.apache.jena.sdb.sql.SDBExceptionSQL: SQLException in executing SQL statement at org.apache.jena.sdb.compiler.SDB_QC.exec(SDB_QC.java:82) at org.apache.jena.sdb.compiler.OpSQL.exec(OpSQL.java:64) at org.apache.jena.sdb.engine.QueryEngineSDB.eval(QueryEngineSDB.java:148) at org.apache.jena.sparql.engine.QueryEngineBase.evaluate(QueryEngineBase.java:136) at org.apache.jena.sparql.engine.QueryEngineBase.createPlan(QueryEngineBase.java:106) at org.apache.jena.sparql.engine.QueryEngineBase.getPlan(QueryEngineBase.java:87) at org.apache.jena.sdb.engine.QueryEngineSDB$QueryEngineFactorySDB.create(QueryEngineSDB.java:175) at org.apache.jena.sparql.engine.QueryExecutionBase.getPlan(QueryExecutionBase.java:524) at org.apache.jena.sparql.engine.QueryExecutionBase.startQueryIterator(QueryExecutionBase.java:472) at org.apache.jena.sparql.engine.QueryExecutionBase.execResultSet(QueryExecutionBase.java:511) at org.apache.jena.sparql.engine.QueryExecutionBase.execSelect(QueryExecutionBase.java:172) at org.apache.jena.fuseki.servlets.SPARQL_Query.executeQuery(SPARQL_Query.java:314) at org.apache.jena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:270) at org.apache.jena.fuseki.servlets.SPARQL_Query.executeWithParameter(SPARQL_Query.java:228) at org.apache.jena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:203) at org.apache.jena.fuseki.servlets.ActionSPARQL.executeLifecycle(ActionSPARQL.java:134) at org.apache.jena.fuseki.servlets.SPARQL_UberServlet.executeRequest(SPARQL_UberServlet.java:340) at org.apache.jena.fuseki.servlets.SPARQL_UberServlet.serviceDispatch(SPARQL_UberServlet.java:301) at org.apache.jena.fuseki.servlets.SPARQL_UberServlet.executeAction(SPARQL_UberServlet.java:257) at org.apache.jena.fuseki.servlets.ActionSPARQL.execCommonWorker(ActionSPARQL.java:85) at org.apache.jena.fuseki.servlets.ActionBase.doCommon(ActionBase.java:81) at org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:72) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:285) at org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:248) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: java.sql.SQLRecoverableException: Closed Connection at oracle.jdbc.driver.PhysicalConnection.createStatement(PhysicalConnection.java:3194) at org.apache.jena.sdb.sql.SDBConnection.execQuery(SDBConnection.java:117) at org.apache.jena.sdb.compiler.SDB_QC.exec(SDB_QC.java:70) ... 57 more Thanks, Akhilesh
