¶
7.8.5. Sesame
¶
Failover Connect String format
VirtuosoRepository("server1:port1,server2:port2,server3", "uid", "pwd");
¶
Round Robin Connect String format
VirtuosoRepository("server1:port1,server2:port2,server3", "uid", "pwd"); ((VirtuosoRepository)repository).setRoundrobin(true);
¶
Sample program
/* * $Id$ * * This file is part of the OpenLink Software Virtuoso Open-Source (VOS) * project. * * Copyright (C) 1998-2024 OpenLink Software * * This project is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; only version 2 of the License, dated June 1991. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ import java.sql.*; import java.util.*; import java.lang.*; import org.openrdf.model.*; import org.openrdf.query.*; import org.openrdf.repository.*; import org.openrdf.rio.*; import virtuoso.jdbc4.*; import virtuoso.sesame2.driver.*; public class TestSesame2 { public static void main(String[] args) { Repository repository = new VirtuosoRepository("localhost:1111,localhost:1311,localhost:1312,localhost:1313", "dba", "dba"); ((VirtuosoRepository)repository).setRoundrobin(true); RepositoryConnection con = null; Random rnd = new Random(); for (int i = 0; i < 1000000; ) { try { if (null == con) { System.out.println("New connection"); con = repository.getConnection(); } TupleQuery query = con.prepareTupleQuery( QueryLanguage.SPARQL, "INSERT INTO <test_g> { <sub" + i + "> <pred> <obj" + i+ "> . " + " <r" + Math.abs (rnd.nextInt()) + "> <rndpred> <r" + Math.abs (rnd.nextInt ()) + "> . }"); TupleQueryResult queryResult = query.evaluate(); /*long count = 0; while (queryResult.hasNext()) { queryResult.next(); count++; if (count % 1000 == 0) { System.out.println("Passed " + count + " results..."); } } */ queryResult.close(); i++; try { Thread.sleep(100); } catch (InterruptedException ie) { } } catch (Exception e) { String state = ""; if (e.getCause() instanceof SQLException) { state = ((SQLException)e.getCause()).getSQLState(); } System.out.println("ERROR:" + state + " " + e.getCause()); try { Thread.sleep(2000); } catch (InterruptedException ie) { } System.out.println("ERROR:" + e.toString ()); if (state == "") e.printStackTrace(); try { if (con != null /*&& (state == "08U01" || state == "S2801")*/) { System.out.println("Closing Connection."); con.close(); con = null; } } catch (RepositoryException re) { System.out.println("Test Failed."); re.printStackTrace(); System.exit (1); } } finally { } } } }