/*******************************************************************************
* Copyright (c) 2004, 2007-2009 IBM Corporation and Cambridge Semantics Incorporated.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Created by: Generated Source from org.openanzo.jdbc.utils.opgen.jet
*
* Contributors:
* IBM Corporation - initial API and implementation
* Cambridge Semantics Incorporated - Fork to Anzo
*******************************************************************************/
package org.openanzo.jdbc.container.sql;
// allow for all types that can be returned from a resultset
/**
* TransactionSQL provides wrappers around SQL queries and transforms ResultSets into java objects
*
* @author Generated Source from org.openanzo.jdbc.utils.opgen.jet
*/
public class TransactionSQL {
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(TransactionSQL.class);
static final long CUTOFF=5;
/**
*Constant "insertNotificationStatementAdd" used to reference prepared statement transaction.insertNotificationStatementAdd
*
* <code>
* INSERT INTO {0} (METADATA,NAMEDGRAPHID,SUBJ,PROP,OBJ,NS,NE) VALUES(?,?,?,?,?,1,0)
* </code>
*/
public static final String insertNotificationStatementAdd = "transaction.insertNotificationStatementAdd";
/**
*Constant "insertNotificationStatementDel" used to reference prepared statement transaction.insertNotificationStatementDel
*
* <code>
* INSERT INTO {0} (METADATA,NAMEDGRAPHID,SUBJ,PROP,OBJ,NS,NE) VALUES(?,?,?,?,?,0,1)
* </code>
*/
public static final String insertNotificationStatementDel = "transaction.insertNotificationStatementDel";
/**
*Constant "updateNotificationStatementAdd" used to reference prepared statement transaction.updateNotificationStatementAdd
*
* <code>
* UPDATE {0} SET NS=1,NE=0 WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND (TS_ID IS NOT NULL OR TE_ID IS NOT NULL )
* </code>
*/
public static final String updateNotificationStatementAdd = "transaction.updateNotificationStatementAdd";
/**
*Constant "updateNotificationStatementDel" used to reference prepared statement transaction.updateNotificationStatementDel
*
* <code>
* UPDATE {0} SET NS=0,NE=1 WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND (TS_ID IS NOT NULL OR TE_ID IS NOT NULL )
* </code>
*/
public static final String updateNotificationStatementDel = "transaction.updateNotificationStatementDel";
/**
*Constant "purgeCommitedStatements" used to reference prepared statement transaction.purgeCommitedStatements
*
* <code>
* DELETE FROM {0}_ST WHERE (TS_ID IS NOT NULL AND TS_ID=?) OR (TE_ID IS NOT NULL AND TE_ID=?)
* </code>
*/
public static final String purgeCommitedStatements = "transaction.purgeCommitedStatements";
/**
*Constant "purgeNotificationStatements" used to reference prepared statement transaction.purgeNotificationStatements
*
* <code>
* DELETE FROM {0} WHERE TS_ID IS NULL AND TE_ID IS NULL AND (NS=1 OR NE=1)
* </code>
*/
public static final String purgeNotificationStatements = "transaction.purgeNotificationStatements";
/**
*Constant "updateStatementAdd" used to reference prepared statement transaction.updateStatementAdd
*
* <code>
* UPDATE {0} SET NS=0,NE=0,TS_ID=NULL,TE_ID=NULL,CS_ID=NULL,TE_ID=NULL WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND (TS_ID IS NULL OR TS_ID<?) AND (TE_ID IS NULL OR TE_ID<?)
* </code>
*/
public static final String updateStatementAdd = "transaction.updateStatementAdd";
/**
*Constant "updateStatementDel" used to reference prepared statement transaction.updateStatementDel
*
* <code>
* DELETE FROM {0} WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND (TS_ID IS NULL OR TS_ID<?) AND (TE_ID IS NULL OR TE_ID<?)
* </code>
*/
public static final String updateStatementDel = "transaction.updateStatementDel";
/**
*Constant "insertCommandStatementAdd" used to reference prepared statement transaction.insertCommandStatementAdd
*
* <code>
* INSERT INTO {0}_ST (METADATA,NAMEDGRAPHID,SUBJ,PROP,OBJ,TS_ID,CS_ID) VALUES(?,?,?,?,?,?,?)
* </code>
*/
public static final String insertCommandStatementAdd = "transaction.insertCommandStatementAdd";
/**
*Constant "insertCommandStatementDel" used to reference prepared statement transaction.insertCommandStatementDel
*
* <code>
* INSERT INTO {0}_ST (METADATA,NAMEDGRAPHID,SUBJ,PROP,OBJ,TE_ID,CE_ID) VALUES(?,?,?,?,?,?,?)
* </code>
*/
public static final String insertCommandStatementDel = "transaction.insertCommandStatementDel";
/**
*Constant "updateTransactionStatementDel" used to reference prepared statement transaction.updateTransactionStatementDel
*
* <code>
* UPDATE {0} SET TE_ID=?,CE_ID=? WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND TE_ID IS NULL
* </code>
*/
public static final String updateTransactionStatementDel = "transaction.updateTransactionStatementDel";
/**
*Constant "updateTransactionStatementAdd" used to reference prepared statement transaction.updateTransactionStatementAdd
*
* <code>
* UPDATE {0} SET TS_ID=?,CS_ID=? WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND TS_ID IS NULL and TE_ID IS NULL AND CS_ID IS NULL AND CE_ID IS NULL
* </code>
*/
public static final String updateTransactionStatementAdd = "transaction.updateTransactionStatementAdd";
/**
*Constant "selectAdditions" used to reference prepared statement transaction.selectAdditions
*
* <code>
* SELECT ST.METADATA,ST.NAMEDGRAPHID,ST.subj,ST.prop,ST.obj FROM {0}_ST ST where ST.ts_id =? AND ST.cs_id=?
* </code>
*/
public static final String selectAdditions = "transaction.selectAdditions";
/**
*Constant "selectDeletions" used to reference prepared statement transaction.selectDeletions
*
* <code>
* SELECT ST.METADATA,ST.NAMEDGRAPHID,ST.subj,ST.prop,ST.obj FROM {0}_ST ST where ST.te_id =? AND ST.ce_id=?
* </code>
*/
public static final String selectDeletions = "transaction.selectDeletions";
/**
*Constant "udpateChangeset" used to reference prepared statement transaction.udpateChangeset
*
* <code>
* UPDATE {0} SET ADDGRAPH=?,REMOVEGRAPH=? ,METAADDGRAPH=?,METAREMOVEGRAPH=? WHERE ID=?
* </code>
*/
public static final String udpateChangeset = "transaction.udpateChangeset";
/**
*Constant "insertChangeset" used to reference prepared statement transaction.insertChangeset
*
* <code>
* INSERT INTO {0} (commandId, addGraph,removeGraph,metaddgraph,metaremovegraph,namedGraphUri) VALUES (?, ?, ?, ?,?,?)
* </code>
*/
public static final String insertChangeset = "transaction.insertChangeset";
/**
*Constant "selectMaxChangesetId" used to reference prepared statement transaction.selectMaxChangesetId
*
* <code>
* SELECT MAX(id) FROM {0}
* </code>
*/
public static final String selectMaxChangesetId = "transaction.selectMaxChangesetId";
/**
*Constant "deleteChangeset" used to reference prepared statement transaction.deleteChangeset
*
* <code>
* DELETE FROM {0} WHERE COMMANDID = ? AND ID = ?
* </code>
*/
public static final String deleteChangeset = "transaction.deleteChangeset";
/**
*Constant "selectChangeset" used to reference prepared statement transaction.selectChangeset
*
* <code>
* SELECT ID,ADDGRAPH,REMOVEGRAPH,METAADDGRAPH,METAREMOVEGRAPH,NAMEDGRAPHURI FROM {0} WHERE COMMANDID = ? ORDER BY ID
* </code>
*/
public static final String selectChangeset = "transaction.selectChangeset";
/**
*Constant "updateCommand" used to reference prepared statement transaction.updateCommand
*
* <code>
* UPDATE {0} set transactionId=?,commandType=?,context=?,preReq=? where id=?
* </code>
*/
public static final String updateCommand = "transaction.updateCommand";
/**
*Constant "insertCommand" used to reference prepared statement transaction.insertCommand
*
* <code>
* INSERT INTO {0} (transactionId, commandType,context,prereq) VALUES (?, ?, ?, ?)
* </code>
*/
public static final String insertCommand = "transaction.insertCommand";
/**
*Constant "deleteCommand" used to reference prepared statement transaction.deleteCommand
*
* <code>
* DELETE FROM {0} WHERE TRANSACTIONID = ? AND ID = ?
* </code>
*/
public static final String deleteCommand = "transaction.deleteCommand";
/**
*Constant "deleteTransaction" used to reference prepared statement transaction.deleteTransaction
*
* <code>
* DELETE FROM {0} WHERE ID = ?
* </code>
*/
public static final String deleteTransaction = "transaction.deleteTransaction";
/**
*Constant "selectCommand" used to reference prepared statement transaction.selectCommand
*
* <code>
* SELECT ID,COMMANDTYPE,PREREQ,CONTEXT FROM {0} WHERE TRANSACTIONID = ? ORDER BY ID
* </code>
*/
public static final String selectCommand = "transaction.selectCommand";
/**
*Constant "insertTransaction" used to reference prepared statement transaction.insertTransaction
*
* <code>
* INSERT INTO {0} (CREATED) VALUES (?)
* </code>
*/
public static final String insertTransaction = "transaction.insertTransaction";
/**
*Constant "maxId" used to reference prepared statement transaction.maxId
*
* <code>
* SELECT MAX(ID) FROM {0}
* </code>
*/
public static final String maxId = "transaction.maxId";
/**
*Constant "selectTransactions" used to reference prepared statement transaction.selectTransactions
*
* <code>
* SELECT ID FROM {0} ORDER BY ID
* </code>
*/
public static final String selectTransactions = "transaction.selectTransactions";
/**
* Runs the insertNotificationStatementAdd prepared statement.
* <code>
* INSERT INTO {0} (METADATA,NAMEDGRAPHID,SUBJ,PROP,OBJ,NS,NE) VALUES(?,?,?,?,?,1,0)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int insertNotificationStatementAdd (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(insertNotificationStatementAdd, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertNotificationStatementAdd",stmtProvider.getSqlString(insertNotificationStatementAdd) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[insertNotificationStatementAdd]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the InsertNotificationStatementAdd prepared statement
*/
public static class BatchInsertNotificationStatementAdd extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the InsertNotificationStatementAdd prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchInsertNotificationStatementAdd(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,insertNotificationStatementAdd,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the insertNotificationStatementAdd prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the insertNotificationStatementDel prepared statement.
* <code>
* INSERT INTO {0} (METADATA,NAMEDGRAPHID,SUBJ,PROP,OBJ,NS,NE) VALUES(?,?,?,?,?,0,1)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int insertNotificationStatementDel (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(insertNotificationStatementDel, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertNotificationStatementDel",stmtProvider.getSqlString(insertNotificationStatementDel) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[insertNotificationStatementDel]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the InsertNotificationStatementDel prepared statement
*/
public static class BatchInsertNotificationStatementDel extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the InsertNotificationStatementDel prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchInsertNotificationStatementDel(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,insertNotificationStatementDel,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the insertNotificationStatementDel prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the updateNotificationStatementAdd prepared statement.
* <code>
* UPDATE {0} SET NS=1,NE=0 WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND (TS_ID IS NOT NULL OR TE_ID IS NOT NULL )
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int updateNotificationStatementAdd (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(updateNotificationStatementAdd, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"updateNotificationStatementAdd",stmtProvider.getSqlString(updateNotificationStatementAdd) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[updateNotificationStatementAdd]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the UpdateNotificationStatementAdd prepared statement
*/
public static class BatchUpdateNotificationStatementAdd extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the UpdateNotificationStatementAdd prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchUpdateNotificationStatementAdd(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,updateNotificationStatementAdd,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the updateNotificationStatementAdd prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the updateNotificationStatementDel prepared statement.
* <code>
* UPDATE {0} SET NS=0,NE=1 WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND (TS_ID IS NOT NULL OR TE_ID IS NOT NULL )
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int updateNotificationStatementDel (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(updateNotificationStatementDel, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"updateNotificationStatementDel",stmtProvider.getSqlString(updateNotificationStatementDel) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[updateNotificationStatementDel]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the UpdateNotificationStatementDel prepared statement
*/
public static class BatchUpdateNotificationStatementDel extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the UpdateNotificationStatementDel prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchUpdateNotificationStatementDel(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,updateNotificationStatementDel,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the updateNotificationStatementDel prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the purgeCommitedStatements prepared statement.
* <code>
* DELETE FROM {0}_ST WHERE (TS_ID IS NOT NULL AND TS_ID=?) OR (TE_ID IS NOT NULL AND TE_ID=?)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param lastTransaction template parameter
*@param lastTransaction2 template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int purgeCommitedStatements (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long lastTransaction, long lastTransaction2, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(purgeCommitedStatements, new String[] {transactionTableName},connection); int argc = 1;
ps.setLong(argc++, lastTransaction);
ps.setLong(argc++, lastTransaction2);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"purgeCommitedStatements",stmtProvider.getSqlString(purgeCommitedStatements) ,""+ "lastTransaction="+(lastTransaction) + "," +"lastTransaction2="+(lastTransaction2),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[purgeCommitedStatements]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the PurgeCommitedStatements prepared statement
*/
public static class BatchPurgeCommitedStatements extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the PurgeCommitedStatements prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchPurgeCommitedStatements(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,purgeCommitedStatements,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the purgeCommitedStatements prepared statement.
*
*@param lastTransaction template parameter
*@param lastTransaction2 template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (long lastTransaction, long lastTransaction2) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setLong(argc++, lastTransaction);
ps.setLong(argc++, lastTransaction2);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the purgeNotificationStatements prepared statement.
* <code>
* DELETE FROM {0} WHERE TS_ID IS NULL AND TE_ID IS NULL AND (NS=1 OR NE=1)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int purgeNotificationStatements (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(purgeNotificationStatements, new String[] {transactionTableName},connection);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"purgeNotificationStatements",stmtProvider.getSqlString(purgeNotificationStatements) ,"",""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[purgeNotificationStatements]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the PurgeNotificationStatements prepared statement
*/
public static class BatchPurgeNotificationStatements extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the PurgeNotificationStatements prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchPurgeNotificationStatements(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,purgeNotificationStatements,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the purgeNotificationStatements prepared statement.
*
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry () throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters();
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the updateStatementAdd prepared statement.
* <code>
* UPDATE {0} SET NS=0,NE=0,TS_ID=NULL,TE_ID=NULL,CS_ID=NULL,TE_ID=NULL WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND (TS_ID IS NULL OR TS_ID<?) AND (TE_ID IS NULL OR TE_ID<?)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param lastTransaction template parameter
*@param lastTransaction2 template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int updateStatementAdd (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, long lastTransaction, long lastTransaction2, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(updateStatementAdd, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, lastTransaction);
ps.setLong(argc++, lastTransaction2);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"updateStatementAdd",stmtProvider.getSqlString(updateStatementAdd) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj) + "," +"lastTransaction="+(lastTransaction) + "," +"lastTransaction2="+(lastTransaction2),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[updateStatementAdd]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the UpdateStatementAdd prepared statement
*/
public static class BatchUpdateStatementAdd extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the UpdateStatementAdd prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchUpdateStatementAdd(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,updateStatementAdd,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the updateStatementAdd prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param lastTransaction template parameter
*@param lastTransaction2 template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj, long lastTransaction, long lastTransaction2) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, lastTransaction);
ps.setLong(argc++, lastTransaction2);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the updateStatementDel prepared statement.
* <code>
* DELETE FROM {0} WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND (TS_ID IS NULL OR TS_ID<?) AND (TE_ID IS NULL OR TE_ID<?)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param lastTransaction template parameter
*@param lastTransaction2 template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int updateStatementDel (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, long lastTransaction, long lastTransaction2, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(updateStatementDel, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, lastTransaction);
ps.setLong(argc++, lastTransaction2);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"updateStatementDel",stmtProvider.getSqlString(updateStatementDel) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj) + "," +"lastTransaction="+(lastTransaction) + "," +"lastTransaction2="+(lastTransaction2),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[updateStatementDel]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the UpdateStatementDel prepared statement
*/
public static class BatchUpdateStatementDel extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the UpdateStatementDel prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchUpdateStatementDel(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,updateStatementDel,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the updateStatementDel prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param lastTransaction template parameter
*@param lastTransaction2 template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj, long lastTransaction, long lastTransaction2) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, lastTransaction);
ps.setLong(argc++, lastTransaction2);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the insertCommandStatementAdd prepared statement.
* <code>
* INSERT INTO {0}_ST (METADATA,NAMEDGRAPHID,SUBJ,PROP,OBJ,TS_ID,CS_ID) VALUES(?,?,?,?,?,?,?)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param transId template parameter
*@param commandId template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int insertCommandStatementAdd (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, long transId, long commandId, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(insertCommandStatementAdd, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, transId);
ps.setLong(argc++, commandId);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertCommandStatementAdd",stmtProvider.getSqlString(insertCommandStatementAdd) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj) + "," +"transId="+(transId) + "," +"commandId="+(commandId),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[insertCommandStatementAdd]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the InsertCommandStatementAdd prepared statement
*/
public static class BatchInsertCommandStatementAdd extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the InsertCommandStatementAdd prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchInsertCommandStatementAdd(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,insertCommandStatementAdd,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the insertCommandStatementAdd prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param transId template parameter
*@param commandId template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj, long transId, long commandId) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, transId);
ps.setLong(argc++, commandId);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the insertCommandStatementDel prepared statement.
* <code>
* INSERT INTO {0}_ST (METADATA,NAMEDGRAPHID,SUBJ,PROP,OBJ,TE_ID,CE_ID) VALUES(?,?,?,?,?,?,?)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param transId template parameter
*@param commandId template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int insertCommandStatementDel (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, long transId, long commandId, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(insertCommandStatementDel, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, transId);
ps.setLong(argc++, commandId);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertCommandStatementDel",stmtProvider.getSqlString(insertCommandStatementDel) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj) + "," +"transId="+(transId) + "," +"commandId="+(commandId),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[insertCommandStatementDel]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the InsertCommandStatementDel prepared statement
*/
public static class BatchInsertCommandStatementDel extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the InsertCommandStatementDel prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchInsertCommandStatementDel(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,insertCommandStatementDel,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the insertCommandStatementDel prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param transId template parameter
*@param commandId template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj, long transId, long commandId) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, transId);
ps.setLong(argc++, commandId);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the updateTransactionStatementDel prepared statement.
* <code>
* UPDATE {0} SET TE_ID=?,CE_ID=? WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND TE_ID IS NULL
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param transactionId template parameter
*@param commandId template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int updateTransactionStatementDel (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, long transactionId, long commandId, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(updateTransactionStatementDel, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, transactionId);
ps.setLong(argc++, commandId);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"updateTransactionStatementDel",stmtProvider.getSqlString(updateTransactionStatementDel) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj) + "," +"transactionId="+(transactionId) + "," +"commandId="+(commandId),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[updateTransactionStatementDel]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the UpdateTransactionStatementDel prepared statement
*/
public static class BatchUpdateTransactionStatementDel extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the UpdateTransactionStatementDel prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchUpdateTransactionStatementDel(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,updateTransactionStatementDel,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the updateTransactionStatementDel prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param transactionId template parameter
*@param commandId template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj, long transactionId, long commandId) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, transactionId);
ps.setLong(argc++, commandId);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the updateTransactionStatementAdd prepared statement.
* <code>
* UPDATE {0} SET TS_ID=?,CS_ID=? WHERE METADATA=? AND NAMEDGRAPHID=? AND SUBJ=? AND PROP=? AND OBJ=? AND TS_ID IS NULL and TE_ID IS NULL AND CS_ID IS NULL AND CE_ID IS NULL
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param transactionId template parameter
*@param commandId template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int updateTransactionStatementAdd (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int metadata, long namedgraphid, long subj, long prop, long obj, long transactionId, long commandId, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(updateTransactionStatementAdd, new String[] {transactionTableName},connection); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, transactionId);
ps.setLong(argc++, commandId);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"updateTransactionStatementAdd",stmtProvider.getSqlString(updateTransactionStatementAdd) ,""+ "metadata="+(metadata) + "," +"namedgraphid="+(namedgraphid) + "," +"subj="+(subj) + "," +"prop="+(prop) + "," +"obj="+(obj) + "," +"transactionId="+(transactionId) + "," +"commandId="+(commandId),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[updateTransactionStatementAdd]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the UpdateTransactionStatementAdd prepared statement
*/
public static class BatchUpdateTransactionStatementAdd extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the UpdateTransactionStatementAdd prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchUpdateTransactionStatementAdd(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,updateTransactionStatementAdd,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the updateTransactionStatementAdd prepared statement.
*
*@param metadata template parameter
*@param namedgraphid template parameter
*@param subj template parameter
*@param prop template parameter
*@param obj template parameter
*@param transactionId template parameter
*@param commandId template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (int metadata, long namedgraphid, long subj, long prop, long obj, long transactionId, long commandId) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setInt(argc++, metadata);
ps.setLong(argc++, namedgraphid);
ps.setLong(argc++, subj);
ps.setLong(argc++, prop);
ps.setLong(argc++, obj);
ps.setLong(argc++, transactionId);
ps.setLong(argc++, commandId);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Transformer that transforms the rows in the result set for the selectAdditions prepared statement.
*/
static final org.openanzo.jdbc.utils.Transformer<SelectAdditionsResult> transformSelectAdditions = new org.openanzo.jdbc.utils.Transformer<SelectAdditionsResult>(){
public SelectAdditionsResult transform(java.sql.ResultSet rs) {
SelectAdditionsResult result = new SelectAdditionsResult();
try {
result.metadata=rs.getInt(1);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:metadata",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.ng=rs.getLong(2);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:ng",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.subj=rs.getLong(3);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:subj",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.prop=rs.getLong(4);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:prop",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.obj=rs.getLong(5);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:obj",e);
throw new org.apache.commons.collections.FunctorException(e);
}
return result;
}
};
/**
* Runs the selectAdditions prepared statement.
* <code>
* SELECT ST.METADATA,ST.NAMEDGRAPHID,ST.subj,ST.prop,ST.obj FROM {0}_ST ST where ST.ts_id =? AND ST.cs_id=?
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param transactionId template parameter
*@param commandId2 template parameter
*
*@param containerName template parameter
*@return org.openanzo.jdbc.utils.ClosableIterator
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static org.openanzo.jdbc.utils.ClosableIterator<SelectAdditionsResult> selectAdditions (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, long commandId2, String containerName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(selectAdditions, new String[] {containerName},connection); int argc = 1;
ps.setLong(argc++, transactionId);
ps.setLong(argc++, commandId2);
java.sql.ResultSet rs = null;
try{
rs = ps.executeQuery();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
rs = ps.executeQuery();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
org.openanzo.jdbc.utils.ClosableIterator<SelectAdditionsResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<SelectAdditionsResult>(rs, ps, stmtProvider, transformSelectAdditions);
return iter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectAdditions",stmtProvider.getSqlString(selectAdditions) ,""+ "transactionId="+(transactionId) + "," +"commandId2="+(commandId2),""+ "containerName="+((containerName!=null)?containerName.toString():"null"));
} finally {
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[selectAdditions]"+endtimer);
}
}
/**
*Default implementation of SelectAdditionsResult
*/
public static class SelectAdditionsResult {
/**Value for the "metadata" result value*/
private int metadata;
/**Value for the "ng" result value*/
private long ng;
/**Value for the "subj" result value*/
private long subj;
/**Value for the "prop" result value*/
private long prop;
/**Value for the "obj" result value*/
private long obj;
/**
*Get Metadata value
*@return Metadata value
*/
public int getMetadata() {
return this.metadata;
}
/**
*Get Ng value
*@return Ng value
*/
public long getNg() {
return this.ng;
}
/**
*Get Subj value
*@return Subj value
*/
public long getSubj() {
return this.subj;
}
/**
*Get Prop value
*@return Prop value
*/
public long getProp() {
return this.prop;
}
/**
*Get Obj value
*@return Obj value
*/
public long getObj() {
return this.obj;
}
}
/**
* Transformer that transforms the rows in the result set for the selectDeletions prepared statement.
*/
static final org.openanzo.jdbc.utils.Transformer<SelectDeletionsResult> transformSelectDeletions = new org.openanzo.jdbc.utils.Transformer<SelectDeletionsResult>(){
public SelectDeletionsResult transform(java.sql.ResultSet rs) {
SelectDeletionsResult result = new SelectDeletionsResult();
try {
result.metadata=rs.getInt(1);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:metadata",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.ng=rs.getLong(2);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:ng",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.subj=rs.getLong(3);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:subj",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.prop=rs.getLong(4);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:prop",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.obj=rs.getLong(5);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:obj",e);
throw new org.apache.commons.collections.FunctorException(e);
}
return result;
}
};
/**
* Runs the selectDeletions prepared statement.
* <code>
* SELECT ST.METADATA,ST.NAMEDGRAPHID,ST.subj,ST.prop,ST.obj FROM {0}_ST ST where ST.te_id =? AND ST.ce_id=?
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param transactionId template parameter
*@param commandId template parameter
*
*@param containerName template parameter
*@return org.openanzo.jdbc.utils.ClosableIterator
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static org.openanzo.jdbc.utils.ClosableIterator<SelectDeletionsResult> selectDeletions (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, long commandId, String containerName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(selectDeletions, new String[] {containerName},connection); int argc = 1;
ps.setLong(argc++, transactionId);
ps.setLong(argc++, commandId);
java.sql.ResultSet rs = null;
try{
rs = ps.executeQuery();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
rs = ps.executeQuery();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
org.openanzo.jdbc.utils.ClosableIterator<SelectDeletionsResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<SelectDeletionsResult>(rs, ps, stmtProvider, transformSelectDeletions);
return iter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectDeletions",stmtProvider.getSqlString(selectDeletions) ,""+ "transactionId="+(transactionId) + "," +"commandId="+(commandId),""+ "containerName="+((containerName!=null)?containerName.toString():"null"));
} finally {
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[selectDeletions]"+endtimer);
}
}
/**
*Default implementation of SelectDeletionsResult
*/
public static class SelectDeletionsResult {
/**Value for the "metadata" result value*/
private int metadata;
/**Value for the "ng" result value*/
private long ng;
/**Value for the "subj" result value*/
private long subj;
/**Value for the "prop" result value*/
private long prop;
/**Value for the "obj" result value*/
private long obj;
/**
*Get Metadata value
*@return Metadata value
*/
public int getMetadata() {
return this.metadata;
}
/**
*Get Ng value
*@return Ng value
*/
public long getNg() {
return this.ng;
}
/**
*Get Subj value
*@return Subj value
*/
public long getSubj() {
return this.subj;
}
/**
*Get Prop value
*@return Prop value
*/
public long getProp() {
return this.prop;
}
/**
*Get Obj value
*@return Obj value
*/
public long getObj() {
return this.obj;
}
}
/**
* Runs the udpateChangeset prepared statement.
* <code>
* UPDATE {0} SET ADDGRAPH=?,REMOVEGRAPH=? ,METAADDGRAPH=?,METAREMOVEGRAPH=? WHERE ID=?
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param addGraph template parameter
*@param removeGraph template parameter
*@param addMetaGraph template parameter
*@param removeMetaGraph template parameter
*@param id template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int udpateChangeset (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, java.sql.Clob addGraph, java.sql.Clob removeGraph, java.sql.Clob addMetaGraph, java.sql.Clob removeMetaGraph, long id, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(udpateChangeset, new String[] {transactionTableName},connection); int argc = 1;
if(addGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, addGraph);
}
if(removeGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, removeGraph);
}
if(addMetaGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, addMetaGraph);
}
if(removeMetaGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, removeMetaGraph);
}
ps.setLong(argc++, id);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"udpateChangeset",stmtProvider.getSqlString(udpateChangeset) ,""+ "addGraph="+((addGraph!=null)?addGraph.toString():"null") + "," +"removeGraph="+((removeGraph!=null)?removeGraph.toString():"null") + "," +"addMetaGraph="+((addMetaGraph!=null)?addMetaGraph.toString():"null") + "," +"removeMetaGraph="+((removeMetaGraph!=null)?removeMetaGraph.toString():"null") + "," +"id="+(id),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[udpateChangeset]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the UdpateChangeset prepared statement
*/
public static class BatchUdpateChangeset extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the UdpateChangeset prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchUdpateChangeset(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,udpateChangeset,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the udpateChangeset prepared statement.
*
*@param addGraph template parameter
*@param removeGraph template parameter
*@param addMetaGraph template parameter
*@param removeMetaGraph template parameter
*@param id template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (java.sql.Clob addGraph, java.sql.Clob removeGraph, java.sql.Clob addMetaGraph, java.sql.Clob removeMetaGraph, long id) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
if(addGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, addGraph);
}
if(removeGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, removeGraph);
}
if(addMetaGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, addMetaGraph);
}
if(removeMetaGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, removeMetaGraph);
}
ps.setLong(argc++, id);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the insertChangeset prepared statement.
* <code>
* INSERT INTO {0} (commandId, addGraph,removeGraph,metaddgraph,metaremovegraph,namedGraphUri) VALUES (?, ?, ?, ?,?,?)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param commandId template parameter
*@param addGraph template parameter
*@param removeGraph template parameter
*@param addMetaGraph template parameter
*@param removeMetaGraph template parameter
*@param uri template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int insertChangeset (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long commandId, java.sql.Clob addGraph, java.sql.Clob removeGraph, java.sql.Clob addMetaGraph, java.sql.Clob removeMetaGraph, String uri, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(insertChangeset, new String[] {transactionTableName},connection); int argc = 1;
ps.setLong(argc++, commandId);
if(addGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, addGraph);
}
if(removeGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, removeGraph);
}
if(addMetaGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, addMetaGraph);
}
if(removeMetaGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, removeMetaGraph);
}
if(uri == null) {
ps.setNull(argc++, java.sql.Types.VARCHAR);
} else {
ps.setString(argc++, uri);
}
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertChangeset",stmtProvider.getSqlString(insertChangeset) ,""+ "commandId="+(commandId) + "," +"addGraph="+((addGraph!=null)?addGraph.toString():"null") + "," +"removeGraph="+((removeGraph!=null)?removeGraph.toString():"null") + "," +"addMetaGraph="+((addMetaGraph!=null)?addMetaGraph.toString():"null") + "," +"removeMetaGraph="+((removeMetaGraph!=null)?removeMetaGraph.toString():"null") + "," +"uri="+((uri!=null)?uri.toString():"null"),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[insertChangeset]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the InsertChangeset prepared statement
*/
public static class BatchInsertChangeset extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the InsertChangeset prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchInsertChangeset(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,insertChangeset,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the insertChangeset prepared statement.
*
*@param commandId template parameter
*@param addGraph template parameter
*@param removeGraph template parameter
*@param addMetaGraph template parameter
*@param removeMetaGraph template parameter
*@param uri template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (long commandId, java.sql.Clob addGraph, java.sql.Clob removeGraph, java.sql.Clob addMetaGraph, java.sql.Clob removeMetaGraph, String uri) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setLong(argc++, commandId);
if(addGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, addGraph);
}
if(removeGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, removeGraph);
}
if(addMetaGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, addMetaGraph);
}
if(removeMetaGraph == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, removeMetaGraph);
}
if(uri == null) {
ps.setNull(argc++, java.sql.Types.VARCHAR);
} else {
ps.setString(argc++, uri);
}
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the selectMaxChangesetId prepared statement.
* <code>
* SELECT MAX(id) FROM {0}
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*
*@param transactionTableName template parameter
*@return Long
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static Long selectMaxChangesetId (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(selectMaxChangesetId, new String[] {transactionTableName},connection);
java.sql.ResultSet rs = null;
try {
try{
rs = ps.executeQuery();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
rs = ps.executeQuery();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
if(!rs.next())
return null;
Long val = rs.getLong(1);
return val;
} finally {
if(rs != null) {
try {
rs.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle);
}
}
}
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectMaxChangesetId",stmtProvider.getSqlString(selectMaxChangesetId) ,"",""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[selectMaxChangesetId]"+endtimer);
}
}
/**
* Runs the deleteChangeset prepared statement.
* <code>
* DELETE FROM {0} WHERE COMMANDID = ? AND ID = ?
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param cmdId template parameter
*@param csId template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int deleteChangeset (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long cmdId, long csId, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(deleteChangeset, new String[] {transactionTableName},connection); int argc = 1;
ps.setLong(argc++, cmdId);
ps.setLong(argc++, csId);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"deleteChangeset",stmtProvider.getSqlString(deleteChangeset) ,""+ "cmdId="+(cmdId) + "," +"csId="+(csId),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[deleteChangeset]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the DeleteChangeset prepared statement
*/
public static class BatchDeleteChangeset extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the DeleteChangeset prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchDeleteChangeset(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,deleteChangeset,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the deleteChangeset prepared statement.
*
*@param cmdId template parameter
*@param csId template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (long cmdId, long csId) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setLong(argc++, cmdId);
ps.setLong(argc++, csId);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Transformer that transforms the rows in the result set for the selectChangeset prepared statement.
*/
static final org.openanzo.jdbc.utils.Transformer<SelectChangesetResult> transformSelectChangeset = new org.openanzo.jdbc.utils.Transformer<SelectChangesetResult>(){
public SelectChangesetResult transform(java.sql.ResultSet rs) {
SelectChangesetResult result = new SelectChangesetResult();
try {
result.id=rs.getLong(1);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:id",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.addGraph=rs.getClob(2);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:addGraph",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.removeGraph=rs.getClob(3);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:removeGraph",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.metaAddGraph=rs.getClob(4);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:metaAddGraph",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.metaRemoveGraph=rs.getClob(5);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:metaRemoveGraph",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.nameGraphUri=rs.getString(6);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:nameGraphUri",e);
throw new org.apache.commons.collections.FunctorException(e);
}
return result;
}
};
/**
* Runs the selectChangeset prepared statement.
* <code>
* SELECT ID,ADDGRAPH,REMOVEGRAPH,METAADDGRAPH,METAREMOVEGRAPH,NAMEDGRAPHURI FROM {0} WHERE COMMANDID = ? ORDER BY ID
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param cmdId template parameter
*
*@param transactionTableName template parameter
*@return org.openanzo.jdbc.utils.ClosableIterator
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static org.openanzo.jdbc.utils.ClosableIterator<SelectChangesetResult> selectChangeset (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long cmdId, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(selectChangeset, new String[] {transactionTableName},connection); int argc = 1;
ps.setLong(argc++, cmdId);
java.sql.ResultSet rs = null;
try{
rs = ps.executeQuery();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
rs = ps.executeQuery();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
org.openanzo.jdbc.utils.ClosableIterator<SelectChangesetResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<SelectChangesetResult>(rs, ps, stmtProvider, transformSelectChangeset);
return iter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectChangeset",stmtProvider.getSqlString(selectChangeset) ,""+ "cmdId="+(cmdId),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[selectChangeset]"+endtimer);
}
}
/**
*Default implementation of SelectChangesetResult
*/
public static class SelectChangesetResult {
/**Value for the "id" result value*/
private long id;
/**Value for the "addGraph" result value*/
private java.sql.Clob addGraph;
/**Value for the "removeGraph" result value*/
private java.sql.Clob removeGraph;
/**Value for the "metaAddGraph" result value*/
private java.sql.Clob metaAddGraph;
/**Value for the "metaRemoveGraph" result value*/
private java.sql.Clob metaRemoveGraph;
/**Value for the "nameGraphUri" result value*/
private String nameGraphUri;
/**
*Get Id value
*@return Id value
*/
public long getId() {
return this.id;
}
/**
*Get AddGraph value
*@return AddGraph value
*/
public java.sql.Clob getAddGraph() {
return this.addGraph;
}
/**
*Get RemoveGraph value
*@return RemoveGraph value
*/
public java.sql.Clob getRemoveGraph() {
return this.removeGraph;
}
/**
*Get MetaAddGraph value
*@return MetaAddGraph value
*/
public java.sql.Clob getMetaAddGraph() {
return this.metaAddGraph;
}
/**
*Get MetaRemoveGraph value
*@return MetaRemoveGraph value
*/
public java.sql.Clob getMetaRemoveGraph() {
return this.metaRemoveGraph;
}
/**
*Get NameGraphUri value
*@return NameGraphUri value
*/
public String getNameGraphUri() {
return this.nameGraphUri;
}
}
/**
* Runs the updateCommand prepared statement.
* <code>
* UPDATE {0} set transactionId=?,commandType=?,context=?,preReq=? where id=?
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param transactionId template parameter
*@param commandType template parameter
*@param context template parameter
*@param preReq template parameter
*@param id template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int updateCommand (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, String commandType, java.sql.Clob context, java.sql.Clob preReq, long id, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(updateCommand, new String[] {transactionTableName},connection); int argc = 1;
ps.setLong(argc++, transactionId);
if(commandType == null) {
ps.setNull(argc++, java.sql.Types.VARCHAR);
} else {
ps.setString(argc++, commandType);
}
if(context == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, context);
}
if(preReq == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, preReq);
}
ps.setLong(argc++, id);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"updateCommand",stmtProvider.getSqlString(updateCommand) ,""+ "transactionId="+(transactionId) + "," +"commandType="+((commandType!=null)?commandType.toString():"null") + "," +"context="+((context!=null)?context.toString():"null") + "," +"preReq="+((preReq!=null)?preReq.toString():"null") + "," +"id="+(id),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[updateCommand]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the UpdateCommand prepared statement
*/
public static class BatchUpdateCommand extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the UpdateCommand prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchUpdateCommand(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,updateCommand,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the updateCommand prepared statement.
*
*@param transactionId template parameter
*@param commandType template parameter
*@param context template parameter
*@param preReq template parameter
*@param id template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (long transactionId, String commandType, java.sql.Clob context, java.sql.Clob preReq, long id) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setLong(argc++, transactionId);
if(commandType == null) {
ps.setNull(argc++, java.sql.Types.VARCHAR);
} else {
ps.setString(argc++, commandType);
}
if(context == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, context);
}
if(preReq == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, preReq);
}
ps.setLong(argc++, id);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the insertCommand prepared statement.
* <code>
* INSERT INTO {0} (transactionId, commandType,context,prereq) VALUES (?, ?, ?, ?)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param transactionId template parameter
*@param commandType template parameter
*@param context template parameter
*@param preReq template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int insertCommand (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, String commandType, java.sql.Clob context, java.sql.Clob preReq, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(insertCommand, new String[] {transactionTableName},connection); int argc = 1;
ps.setLong(argc++, transactionId);
if(commandType == null) {
ps.setNull(argc++, java.sql.Types.VARCHAR);
} else {
ps.setString(argc++, commandType);
}
if(context == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, context);
}
if(preReq == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, preReq);
}
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertCommand",stmtProvider.getSqlString(insertCommand) ,""+ "transactionId="+(transactionId) + "," +"commandType="+((commandType!=null)?commandType.toString():"null") + "," +"context="+((context!=null)?context.toString():"null") + "," +"preReq="+((preReq!=null)?preReq.toString():"null"),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[insertCommand]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the InsertCommand prepared statement
*/
public static class BatchInsertCommand extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the InsertCommand prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchInsertCommand(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,insertCommand,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the insertCommand prepared statement.
*
*@param transactionId template parameter
*@param commandType template parameter
*@param context template parameter
*@param preReq template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (long transactionId, String commandType, java.sql.Clob context, java.sql.Clob preReq) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setLong(argc++, transactionId);
if(commandType == null) {
ps.setNull(argc++, java.sql.Types.VARCHAR);
} else {
ps.setString(argc++, commandType);
}
if(context == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, context);
}
if(preReq == null) {
ps.setNull(argc++, java.sql.Types.CLOB);
} else {
ps.setClob(argc++, preReq);
}
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the deleteCommand prepared statement.
* <code>
* DELETE FROM {0} WHERE TRANSACTIONID = ? AND ID = ?
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param transactionId template parameter
*@param cmdId template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int deleteCommand (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, long cmdId, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(deleteCommand, new String[] {transactionTableName},connection); int argc = 1;
ps.setLong(argc++, transactionId);
ps.setLong(argc++, cmdId);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"deleteCommand",stmtProvider.getSqlString(deleteCommand) ,""+ "transactionId="+(transactionId) + "," +"cmdId="+(cmdId),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[deleteCommand]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the DeleteCommand prepared statement
*/
public static class BatchDeleteCommand extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the DeleteCommand prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchDeleteCommand(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,deleteCommand,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the deleteCommand prepared statement.
*
*@param transactionId template parameter
*@param cmdId template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (long transactionId, long cmdId) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setLong(argc++, transactionId);
ps.setLong(argc++, cmdId);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the deleteTransaction prepared statement.
* <code>
* DELETE FROM {0} WHERE ID = ?
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param transactionId template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int deleteTransaction (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(deleteTransaction, new String[] {transactionTableName},connection); int argc = 1;
ps.setLong(argc++, transactionId);
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"deleteTransaction",stmtProvider.getSqlString(deleteTransaction) ,""+ "transactionId="+(transactionId),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[deleteTransaction]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the DeleteTransaction prepared statement
*/
public static class BatchDeleteTransaction extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the DeleteTransaction prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchDeleteTransaction(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,deleteTransaction,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the deleteTransaction prepared statement.
*
*@param transactionId template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (long transactionId) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
ps.setLong(argc++, transactionId);
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Transformer that transforms the rows in the result set for the selectCommand prepared statement.
*/
static final org.openanzo.jdbc.utils.Transformer<SelectCommandResult> transformSelectCommand = new org.openanzo.jdbc.utils.Transformer<SelectCommandResult>(){
public SelectCommandResult transform(java.sql.ResultSet rs) {
SelectCommandResult result = new SelectCommandResult();
try {
result.id=rs.getLong(1);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:id",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.commandType=rs.getString(2);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:commandType",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.prereq=rs.getClob(3);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:prereq",e);
throw new org.apache.commons.collections.FunctorException(e);
}
try {
result.context=rs.getClob(4);
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:context",e);
throw new org.apache.commons.collections.FunctorException(e);
}
return result;
}
};
/**
* Runs the selectCommand prepared statement.
* <code>
* SELECT ID,COMMANDTYPE,PREREQ,CONTEXT FROM {0} WHERE TRANSACTIONID = ? ORDER BY ID
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param transactionId template parameter
*
*@param transactionTableName template parameter
*@return org.openanzo.jdbc.utils.ClosableIterator
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static org.openanzo.jdbc.utils.ClosableIterator<SelectCommandResult> selectCommand (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(selectCommand, new String[] {transactionTableName},connection); int argc = 1;
ps.setLong(argc++, transactionId);
java.sql.ResultSet rs = null;
try{
rs = ps.executeQuery();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
rs = ps.executeQuery();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
org.openanzo.jdbc.utils.ClosableIterator<SelectCommandResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<SelectCommandResult>(rs, ps, stmtProvider, transformSelectCommand);
return iter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectCommand",stmtProvider.getSqlString(selectCommand) ,""+ "transactionId="+(transactionId),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[selectCommand]"+endtimer);
}
}
/**
*Default implementation of SelectCommandResult
*/
public static class SelectCommandResult {
/**Value for the "id" result value*/
private long id;
/**Value for the "commandType" result value*/
private String commandType;
/**Value for the "prereq" result value*/
private java.sql.Clob prereq;
/**Value for the "context" result value*/
private java.sql.Clob context;
/**
*Get Id value
*@return Id value
*/
public long getId() {
return this.id;
}
/**
*Get CommandType value
*@return CommandType value
*/
public String getCommandType() {
return this.commandType;
}
/**
*Get Prereq value
*@return Prereq value
*/
public java.sql.Clob getPrereq() {
return this.prereq;
}
/**
*Get Context value
*@return Context value
*/
public java.sql.Clob getContext() {
return this.context;
}
}
/**
* Runs the insertTransaction prepared statement.
* <code>
* INSERT INTO {0} (CREATED) VALUES (?)
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*@param created template parameter
*
*@param transactionTableName template parameter
*@return int
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static int insertTransaction (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, java.sql.Timestamp created, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(insertTransaction, new String[] {transactionTableName},connection); int argc = 1;
if(created == null) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"created","insertTransaction");
} else {
ps.setTimestamp(argc++, created);
}
int counter = 0;
try{
counter=ps.executeUpdate();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
counter=ps.executeUpdate();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
return counter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertTransaction",stmtProvider.getSqlString(insertTransaction) ,""+ "created="+((created!=null)?created.toString():"null"),""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[insertTransaction]"+endtimer);
}
}
/**
*Batch operation for adding parameters to the InsertTransaction prepared statement
*/
public static class BatchInsertTransaction extends org.openanzo.jdbc.utils.PreparedStatementExecutor {
/**
* Batch operation for adding parameters to the InsertTransaction prepared statement
* @param connection Connection to execute
* @param provider Prepared statement provider
*
*@param transactionTableName template parameter
* @throws org.openanzo.jdbc.utils.RdbException
*/
public BatchInsertTransaction(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException {
super(connection,provider,insertTransaction,new String[] {transactionTableName});
}
/**
* Sets the input parameters for the insertTransaction prepared statement.
*
*@param created template parameter
*@throws org.openanzo.jdbc.utils.RdbException
*/
public void addEntry (java.sql.Timestamp created) throws org.openanzo.jdbc.utils.RdbException {
try{
ps.clearParameters(); int argc = 1;
if(created == null) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"created","insertTransaction");
} else {
ps.setTimestamp(argc++, created);
}
ps.addBatch();
}catch(java.sql.SQLException sqle){
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_PREPARING_STATEMENT, sqle);
}
}
}
/**
* Runs the maxId prepared statement.
* <code>
* SELECT MAX(ID) FROM {0}
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*
*@param transactionTableName template parameter
*@return Long
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static Long maxId (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(maxId, new String[] {transactionTableName},connection);
java.sql.ResultSet rs = null;
try {
try{
rs = ps.executeQuery();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
rs = ps.executeQuery();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
if(!rs.next())
return null;
Long val = rs.getLong(1);
return val;
} finally {
if(rs != null) {
try {
rs.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing result set",sqle);
}
}
}
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"maxId",stmtProvider.getSqlString(maxId) ,"",""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
if (ps != null) {
try {
ps.close();
} catch (java.sql.SQLException sqle) {
if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing prepared statement",sqle);
}
}
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[maxId]"+endtimer);
}
}
/**
* Transformer that transforms the rows in the result set for the selectTransactions prepared statement.
*/
static final org.openanzo.jdbc.utils.Transformer<Long> transformSelectTransactions = new org.openanzo.jdbc.utils.Transformer<Long>(){
public Long transform(java.sql.ResultSet rs) {
try {
Long val = rs.getLong(1);
return val;
} catch (java.sql.SQLException e) {
log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set value:Long",e);
throw new org.apache.commons.collections.FunctorException(e);
}
}
};
/**
* Runs the selectTransactions prepared statement.
* <code>
* SELECT ID FROM {0} ORDER BY ID
* </code>
*
*@param stmtProvider
* factory and cache of PreparedStatments
*@param connection
* connection to underlying database
*
*
*@param transactionTableName template parameter
*@return org.openanzo.jdbc.utils.ClosableIterator
*@throws org.openanzo.jdbc.utils.RdbException
*/
public static org.openanzo.jdbc.utils.ClosableIterator<Long> selectTransactions (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String transactionTableName) throws org.openanzo.jdbc.utils.RdbException{
java.sql.PreparedStatement ps = null;
//long startTimer=System.currentTimeMillis();
try {
ps = stmtProvider.getPreparedSQLStatement(selectTransactions, new String[] {transactionTableName},connection);
java.sql.ResultSet rs = null;
try{
rs = ps.executeQuery();
}catch(java.sql.SQLException sqle){
if(sqle.getErrorCode()==1205){
int retries=0;
while(retries<5){
try {
Thread.sleep(5000);
}catch(InterruptedException ie) {
throw sqle;
}
try{
rs = ps.executeQuery();
break;
}catch(java.sql.SQLException sqleInner){
if(sqleInner.getErrorCode()==1205){
retries++;
}else{
throw sqleInner;
}
}
}
if(retries>=5){
throw sqle;
}
}else{
throw sqle;
}
}
org.openanzo.jdbc.utils.ClosableIterator<Long> iter = new org.openanzo.jdbc.utils.ResultSetIterator<Long>(rs, ps, stmtProvider, transformSelectTransactions);
return iter;
} catch (java.sql.SQLException e) {
throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectTransactions",stmtProvider.getSqlString(selectTransactions) ,"",""+ "transactionTableName="+((transactionTableName!=null)?transactionTableName.toString():"null"));
} finally {
//long endtimer=(System.currentTimeMillis()-startTimer);
//if(endtimer>CUTOFF)System.out.println("[selectTransactions]"+endtimer);
}
}
}