diff -ruN original/src/com/hp/hpl/jena/sdb/layout2/hash/StoreTriplesNodesHashMySQL.java modification/src/com/hp/hpl/jena/sdb/layout2/hash/StoreTriplesNodesHashMySQL.java --- original/src/com/hp/hpl/jena/sdb/layout2/hash/StoreTriplesNodesHashMySQL.java 2009-01-16 14:02:04.000000000 +0100 +++ modification/src/com/hp/hpl/jena/sdb/layout2/hash/StoreTriplesNodesHashMySQL.java 2009-03-18 14:39:31.000000000 +0100 @@ -12,7 +12,10 @@ import com.hp.hpl.jena.sdb.layout2.SQLBridgeFactory2; import com.hp.hpl.jena.sdb.sql.MySQLEngineType; import com.hp.hpl.jena.sdb.sql.SDBConnection; - + +/*-MOMENT*/ +import com.hp.hpl.jena.sdb.layout2.MySQLconnection; +/*MOMENT-*/ public class StoreTriplesNodesHashMySQL extends StoreBaseHash { @@ -32,7 +35,12 @@ new SQLBridgeFactory2(), new GenerateSQLMySQL()) ; - ((LoaderTuplesNodes) this.getLoader()).setStore(this); + ((LoaderTuplesNodes) this.getLoader()).setStore(this); + + /*-MOMENT*/ + MySQLconnection p = new MySQLconnection("MySQLconnection-Thread", connection); + new Thread(p).start(); + /*MOMENT-*/ } } @@ -61,4 +69,4 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ \ No hay ningún carácter de nueva línea al final del fichero + */ diff -ruN original/src/com/hp/hpl/jena/sdb/layout2/index/StoreTriplesNodesIndexMySQL.java modification/src/com/hp/hpl/jena/sdb/layout2/index/StoreTriplesNodesIndexMySQL.java --- original/src/com/hp/hpl/jena/sdb/layout2/index/StoreTriplesNodesIndexMySQL.java 2009-01-16 14:02:04.000000000 +0100 +++ modification/src/com/hp/hpl/jena/sdb/layout2/index/StoreTriplesNodesIndexMySQL.java 2009-03-18 14:39:36.000000000 +0100 @@ -12,6 +12,10 @@ import com.hp.hpl.jena.sdb.layout2.SQLBridgeFactory2; import com.hp.hpl.jena.sdb.sql.MySQLEngineType; import com.hp.hpl.jena.sdb.sql.SDBConnection; + +/*-MOMENT*/ +import com.hp.hpl.jena.sdb.layout2.MySQLconnection; +/*MOMENT-*/ public class StoreTriplesNodesIndexMySQL extends StoreBaseIndex { @@ -31,6 +35,11 @@ new GenerateSQLMySQL()) ; ((LoaderTuplesNodes) this.getLoader()).setStore(this); + + /*-MOMENT*/ + MySQLconnection p = new MySQLconnection("MySQLconnection-Thread", connection); + new Thread(p).start(); + /*MOMENT-*/ } } @@ -59,4 +68,4 @@ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ \ No hay ningún carácter de nueva línea al final del fichero + */ diff -ruN original/src/com/hp/hpl/jena/sdb/layout2/MySQLconnection.java modification/src/com/hp/hpl/jena/sdb/layout2/MySQLconnection.java --- original/src/com/hp/hpl/jena/sdb/layout2/MySQLconnection.java 1970-01-01 01:00:00.000000000 +0100 +++ modification/src/com/hp/hpl/jena/sdb/layout2/MySQLconnection.java 2009-03-18 14:43:29.000000000 +0100 @@ -0,0 +1,54 @@ +/*-MOMENT*/ + +package com.hp.hpl.jena.sdb.layout2; + +import java.sql.Statement; +import java.sql.SQLException; +import java.sql.ResultSet; +import static java.sql.ResultSet.CONCUR_READ_ONLY; +import static java.sql.ResultSet.TYPE_FORWARD_ONLY; +import com.hp.hpl.jena.sdb.sql.SDBConnection; + +public class MySQLconnection extends Thread { + private SDBConnection conn ; + private int wait_timeout = -1; // sec + + public MySQLconnection(String str, SDBConnection connection) { + super(str); + this.conn = connection; + } + public void run() { + while(true){ + if(wait_timeout < 0){ + try{ + Statement s = conn.getSqlConnection().createStatement(TYPE_FORWARD_ONLY, CONCUR_READ_ONLY) ; + ResultSet rs = s.executeQuery("show variables like 'wait_timeout';"); + rs.next(); + wait_timeout = rs.getInt(2); // sec + s.close(); + } catch (SQLException ex) { + System.err.println("MySQLconnection class - Connection error"); + } + } + + try{ + // Try to make a Statement + Statement s = conn.getSqlConnection().createStatement(TYPE_FORWARD_ONLY, CONCUR_READ_ONLY) ; + s.executeQuery("SELECT * FROM Triples LIMIT 1;"); + s.cancel(); + } catch (SQLException ex) { + System.err.println("MySQLconnection class - Connection error"); + } + + try{ + if(wait_timeout > 0){ + sleep(wait_timeout*1000/10); // msec + } else { + sleep(1000); // msec + } + }catch(InterruptedException ex){} + } + } +} +/*-MOMENT*/ +