Ok, so apologies for kinda spamming the list with this. 

1. Laura, I agree with the options you listed below. Although: 
- LOAD, in my experience, requires access to the file system where fuseki is 
running and I do not have that 
- SOH has that same requirement and also requires me to ssh into the machine, 
which I don't want to have to do programmatically 
- chunking is my likely work around although it is suboptimal (I serialize an 
RDFLib in memory graph) 

2. After looking around and doing a bit of archaeology, 

https://jena.markmail.org/message/nmtny6wlnvzltws7?q=maxFormContentSize
(At first seeing this I thought it used to be called 'Fuseky'! I can only 
recall Joseki)

it seems that the principled approach is to run fuseki with a customised jetty 
configuration.

http://jena.apache.org/documentation/fuseki2/data-access-control#jetty-configuration
" Server command line: --jetty=jetty.xml."
-> is wrong

This:
> fuseki-server --jetty-config=jetty.xml
Worked for me. 

However, I do not know what to put in jetty.xml 

https://www.eclipse.org/jetty/documentation/current/setting-form-size.html

I tried the following snippet but it broke

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" 
"http://www.eclipse.org/jetty/configure_9_3.dtd";>

<Configure id="Server" class="org.eclipse.jetty.server.Server">
  <Call name="setAttribute">
    <Arg>org.eclipse.jetty.server.Request.maxFormContentSize</Arg>
    <Arg><Property name="jetty.maxFormContentSize" default="1000000"/></Arg>
  </Call></Configure>

[2019-08-06 17:07:48] Server     ERROR SPARQLServer: Failed to configure 
server: 0
java.lang.ArrayIndexOutOfBoundsException: 0
        at 
org.apache.jena.fuseki.cmd.JettyFusekiWebapp.configServer(JettyFusekiWebapp.java:297)
        at 
org.apache.jena.fuseki.cmd.JettyFusekiWebapp.buildServerWebapp(JettyFusekiWebapp.java:243)
        at 
org.apache.jena.fuseki.cmd.JettyFusekiWebapp.<init>(JettyFusekiWebapp.java:99)
        at 
org.apache.jena.fuseki.cmd.JettyFusekiWebapp.initializeServer(JettyFusekiWebapp.java:94)
        at org.apache.jena.fuseki.cmd.FusekiCmd.runFuseki(FusekiCmd.java:371)
        at 
org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.exec(FusekiCmd.java:356)
        at jena.cmd.CmdMain.mainMethod(CmdMain.java:93)
        at jena.cmd.CmdMain.mainRun(CmdMain.java:58)
        at jena.cmd.CmdMain.mainRun(CmdMain.java:45)
        at 
org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.innerMain(FusekiCmd.java:104)
        at org.apache.jena.fuseki.cmd.FusekiCmd.main(FusekiCmd.java:67)

So I suppose I need a complete jetty config file rather than a snippet (unless 
the above is erroneous anyway). I wasn't able to find the default jetty 
configuration file in the jars. 

I found this 
https://github.com/apache/jena/blob/master/jena-fuseki2/examples/fuseki-jetty-https.xml
But it mentions needing configuring further things and I have no clue how to 
adapt it. 

Any pointer, walkthrough or further help most appreciated. 

With many thanks and kind regards, 
Pierre

THIS E-MAIL MAY CONTAIN CONFIDENTIAL AND/OR PRIVILEGED INFORMATION. 
IF YOU ARE NOT THE INTENDED RECIPIENT (OR HAVE RECEIVED THIS E-MAIL 
IN ERROR) PLEASE NOTIFY THE SENDER IMMEDIATELY AND DESTROY THIS 
E-MAIL. ANY UNAUTHORISED COPYING, DISCLOSURE OR DISTRIBUTION OF THE 
MATERIAL IN THIS E-MAIL IS STRICTLY FORBIDDEN. 

IN ACCORDANCE WITH MIFID II RULES ON INDUCEMENTS, THE FIRM'S EMPLOYEES 
MAY ATTEND CORPORATE ACCESS EVENTS (DEFINED IN THE FCA HANDBOOK AS 
"THE SERVICE OF ARRANGING OR BRINGING ABOUT CONTACT BETWEEN AN INVESTMENT 
MANAGER AND AN ISSUER OR POTENTIAL ISSUER"). DURING SUCH MEETINGS, THE 
FIRM'S EMPLOYEES MAY ON NO ACCOUNT BE IN RECEIPT OF INSIDE INFORMATION 
(AS DESCRIBED IN ARTICLE 7 OF THE MARKET ABUSE REGULATION (EU) NO 596/2014). 
(https://www.handbook.fca.org.uk/handbook/glossary/G3532m.html)
COMPANIES WHO DISCLOSE INSIDE INFORMATION ARE IN BREACH OF REGULATION 
AND MUST IMMEDIATELY AND CLEARLY NOTIFY ALL ATTENDEES. FOR INFORMATION 
ON THE FIRM'S POLICY IN RELATION TO ITS PARTICIPATION IN MARKET SOUNDINGS, 
PLEASE SEE https://www.horizon-asset.co.uk/market-soundings/. 

HORIZON ASSET LLP IS AUTHORISED AND REGULATED 
BY THE FINANCIAL CONDUCT AUTHORITY.


From: Laura Morales [mailto:laure...@mail.com] 
Sent: 06 August 2019 12:25
To: users@jena.apache.org
Cc: 'users@jena.apache.org'
Subject: Re: Sensible size limit for SPARQL update payload to Fuseki2?

Your best option is to look at the Fuseki logs for the exact error. I've 
personally never POSTed so much data to Fuseki, but I feel like it should not 
be be a problem unless something is timing out the connection, or truncating 
the POST data, or your triples contain syntax errors. Another option is to try 
the LOAD operation (https://www.w3.org/TR/sparql11-update/#load), or the SOH 
command line tools (https://jena.apache.org/documentation/fuseki2/soh.html). 
What I would do, personally speaking, is find a way to chunk your data and send 
multiple requests (even if, as I said, 85MB should work. It's not a huge file 
after all).


> Sent: Tuesday, August 06, 2019 at 12:39 PM
> From: "Pierre Grenon" <pgre...@horizon-asset.co.uk>
> To: "'users@jena.apache.org'" <users@jena.apache.org>
> Subject: RE: RE: Sensible size limit for SPARQL update payload to Fuseki2?
>
> > Can you share your query?
>
> Afraid I can't
>
> It looks like :
>
> <PREFIX>
>
> INSERT DATA {
>
> <9000K triples>
>
> }
>
> > I don't understand if you're trying to insert a single literal string that 
> > is 85MB in size, or if you're trying to load 900K triples that are 85MB in 
> > total.
>
> Second one. I'm not trying to load a single triple with a 85Mb object literal 
> but I am trying to perform a single INSERT operation of 900k triples.
>
> Many thanks,
> Pierre

Reply via email to