/******************************************************************************* * 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 /** * NodeSQL provides wrappers around SQL queries and transforms ResultSets into java objects * * @author Generated Source from org.openanzo.jdbc.utils.opgen.jet */ public class NodeSQL { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(NodeSQL.class); static final long CUTOFF=5; /** *Constant "getAllLiterals" used to reference prepared statement node.getAllLiterals * * <code> * SELECT ID,MODIFIER_ID,VALUE FROM {0} {1} * </code> */ public static final String getAllLiterals = "node.getAllLiterals"; /** *Constant "findNodeID" used to reference prepared statement node.findNodeID * * <code> * SELECT ID FROM {0} WHERE (MODIFIER_ID=0 OR MODIFIER_ID=?) AND VALUE LIKE ? {1} * </code> */ public static final String findNodeID = "node.findNodeID"; /** *Constant "fetchNodeID" used to reference prepared statement node.fetchNodeID * * <code> * SELECT ID FROM {0} WHERE VALUE = ? {1} * </code> */ public static final String fetchNodeID = "node.fetchNodeID"; /** *Constant "fetchNodeValue" used to reference prepared statement node.fetchNodeValue * * <code> * SELECT VALUE FROM {0} WHERE ID = ? {1} * </code> */ public static final String fetchNodeValue = "node.fetchNodeValue"; /** *Constant "fetchLongNodeID" used to reference prepared statement node.fetchLongNodeID * * <code> * SELECT ID,VALUE FROM {0} WHERE HASH = ? * </code> */ public static final String fetchLongNodeID = "node.fetchLongNodeID"; /** *Constant "fetchLiteralNodeValue" used to reference prepared statement node.fetchLiteralNodeValue * * <code> * SELECT VALUE, MODIFIER_ID FROM {0} WHERE ID = ? {1} * </code> */ public static final String fetchLiteralNodeValue = "node.fetchLiteralNodeValue"; /** *Constant "fetchLiteralNodeID" used to reference prepared statement node.fetchLiteralNodeID * * <code> * SELECT ID FROM {0} WHERE VALUE = ? AND MODIFIER_ID = ? {1} * </code> */ public static final String fetchLiteralNodeID = "node.fetchLiteralNodeID"; /** *Constant "fetchLongLiteralNodeID" used to reference prepared statement node.fetchLongLiteralNodeID * * <code> * SELECT ID,VALUE FROM {0} WHERE HASH = ? AND MODIFIER_ID = ? * </code> */ public static final String fetchLongLiteralNodeID = "node.fetchLongLiteralNodeID"; /** *Constant "insertCommonValue" used to reference prepared statement node.insertCommonValue * * <code> * INSERT INTO {0} (ID, VALUE) VALUES(?, ?) * </code> */ public static final String insertCommonValue = "node.insertCommonValue"; /** *Constant "insertCommonValueWithIdentity" used to reference prepared statement node.insertCommonValueWithIdentity * * <code> * INSERT INTO {0} ( VALUE) VALUES( ?) * </code> */ public static final String insertCommonValueWithIdentity = "node.insertCommonValueWithIdentity"; /** *Constant "fetchCommonValueID" used to reference prepared statement node.fetchCommonValueID * * <code> * SELECT ID FROM {0} WHERE VALUE = ? {1} * </code> */ public static final String fetchCommonValueID = "node.fetchCommonValueID"; /** *Constant "fetchCommonValue" used to reference prepared statement node.fetchCommonValue * * <code> * SELECT VALUE FROM {0} WHERE ID = ? {1} * </code> */ public static final String fetchCommonValue = "node.fetchCommonValue"; /** *Constant "fetchAllCommonValues" used to reference prepared statement node.fetchAllCommonValues * * <code> * SELECT ID, VALUE FROM {0} * </code> */ public static final String fetchAllCommonValues = "node.fetchAllCommonValues"; /** *Constant "storeBulkNode" used to reference prepared statement node.storeBulkNode * * <code> * INSERT INTO {0}{1} (ID, VALUE) VALUES(?, ?) * </code> */ public static final String storeBulkNode = "node.storeBulkNode"; /** *Constant "storeBulkLongNode" used to reference prepared statement node.storeBulkLongNode * * <code> * INSERT INTO {0}{1} (ID, HASH, VALUE) VALUES(?, ?, ?) * </code> */ public static final String storeBulkLongNode = "node.storeBulkLongNode"; /** *Constant "storeBulkLiteral" used to reference prepared statement node.storeBulkLiteral * * <code> * INSERT INTO {0}{1} (ID, VALUE, MODIFIER_ID) VALUES(?, ?, ?) * </code> */ public static final String storeBulkLiteral = "node.storeBulkLiteral"; /** *Constant "storeBulkLongLiteral" used to reference prepared statement node.storeBulkLongLiteral * * <code> * INSERT INTO {0}{1} (ID, VALUE, HASH, MODIFIER_ID) VALUES(?, ?, ?, ?) * </code> */ public static final String storeBulkLongLiteral = "node.storeBulkLongLiteral"; /** *Constant "countTempTable" used to reference prepared statement node.countTempTable * * <code> * SELECT COUNT(1) FROM {0}{1} * </code> */ public static final String countTempTable = "node.countTempTable"; /** *Constant "storeResolveId" used to reference prepared statement node.storeResolveId * * <code> * INSERT INTO {0}{1} (ID) VALUES(?) * </code> */ public static final String storeResolveId = "node.storeResolveId"; /** *Constant "storeResolveNode" used to reference prepared statement node.storeResolveNode * * <code> * INSERT INTO {0}{1} (ENTRYID,VALUE) VALUES(?,?) * </code> */ public static final String storeResolveNode = "node.storeResolveNode"; /** *Constant "storeResolveNodeLong" used to reference prepared statement node.storeResolveNodeLong * * <code> * INSERT INTO {0}{1} (VALUE,HASH) VALUES(?,?) * </code> */ public static final String storeResolveNodeLong = "node.storeResolveNodeLong"; /** *Constant "storeResolveLiteral" used to reference prepared statement node.storeResolveLiteral * * <code> * INSERT INTO {0}{1} (ENTRYID,VALUE,MODIFIER_ID) VALUES(?,?,?) * </code> */ public static final String storeResolveLiteral = "node.storeResolveLiteral"; /** *Constant "storeResolveLiteralLong" used to reference prepared statement node.storeResolveLiteralLong * * <code> * INSERT INTO {0}{1} (VALUE,HASH,MODIFIER_ID) VALUES(?,?,?) * </code> */ public static final String storeResolveLiteralLong = "node.storeResolveLiteralLong"; /** *Constant "resolveNodes" used to reference prepared statement node.resolveNodes * * <code> * SELECT {2}.ID,{2}.VALUE FROM {2},{0}{1} WHERE {2}.VALUE={0}{1}.VALUE * </code> */ public static final String resolveNodes = "node.resolveNodes"; /** *Constant "resolveLiterals" used to reference prepared statement node.resolveLiterals * * <code> * SELECT {2}.ID,{2}.VALUE,{2}.MODIFIER_ID FROM {2},{0}{1} WHERE {2}.VALUE={0}{1}.VALUE AND {2}.MODIFIER_ID = {0}{1}.MODIFIER_ID * </code> */ public static final String resolveLiterals = "node.resolveLiterals"; /** *Constant "resolveIdsUri" used to reference prepared statement node.resolveIdsUri * * <code> * SELECT {2}.ID,{2}.VALUE FROM {2},{0}{1} WHERE {2}.ID={0}{1}.ID AND {0}{1}.ID>=? AND {0}{1}.ID < ? * </code> */ public static final String resolveIdsUri = "node.resolveIdsUri"; /** *Constant "resolveTransactedIdsUri" used to reference prepared statement node.resolveTransactedIdsUri * * <code> * SELECT {2}.ID,{2}.VALUE FROM {2},{0}{1} WHERE {0}{1}.TRANSACTIONID=? AND {2}.ID={0}{1}.ID AND {0}{1}.ID>=? AND {0}{1}.ID < ? * </code> */ public static final String resolveTransactedIdsUri = "node.resolveTransactedIdsUri"; /** *Constant "updateResolvedUris" used to reference prepared statement node.updateResolvedUris * * <code> * UPDATE {0}{1} AS A SET TYPE=2,ID=(SELECT {2}.ID FROM {2} WHERE {2}.VALUE=A.VALUE AND {2}.REF=0) WHERE EXISTS (SELECT {2}.ID FROM {2} WHERE {2}.VALUE=A.VALUE AND {2}.REF=0) * </code> */ public static final String updateResolvedUris = "node.updateResolvedUris"; /** *Constant "resolveExistingUris" used to reference prepared statement node.resolveExistingUris * * <code> * INSERT INTO {0}{2} (ENTRYID,ID,TYPE) SELECT T.ENTRYID,N.ID,2 FROM {0}{1} T,{3} N WHERE N.VALUE=T.VALUE AND N.REF=0 * </code> */ public static final String resolveExistingUris = "node.resolveExistingUris"; /** *Constant "updateExistingUrisReferenceCount" used to reference prepared statement node.updateExistingUrisReferenceCount * * <code> * UPDATE {2} SET REF=REF+1 WHERE REF>0 AND VALUE IN (SELECT {0}{1}.VALUE FROM {0}{1}) * </code> */ public static final String updateExistingUrisReferenceCount = "node.updateExistingUrisReferenceCount"; /** *Constant "resolveExistingUncommittedUris" used to reference prepared statement node.resolveExistingUncommittedUris * * <code> * INSERT INTO {0}{2} (ENTRYID,ID,TYPE) SELECT T.ENTRYID,N.ID,3 FROM {0}{1} T,{3} N WHERE N.VALUE=T.VALUE AND N.REF>0 * </code> */ public static final String resolveExistingUncommittedUris = "node.resolveExistingUncommittedUris"; /** *Constant "purgeResolvedUris" used to reference prepared statement node.purgeResolvedUris * * <code> * DELETE FROM {0}{1} WHERE ENTRYID IN (SELECT {0}{2}.ENTRYID FROM {0}{2}) * </code> */ public static final String purgeResolvedUris = "node.purgeResolvedUris"; /** *Constant "insertUnresolvedUris" used to reference prepared statement node.insertUnresolvedUris * * <code> * * </code> */ public static final String insertUnresolvedUris = "node.insertUnresolvedUris"; /** *Constant "resolveExistingLiterals" used to reference prepared statement node.resolveExistingLiterals * * <code> * INSERT INTO {0}{2} (ENTRYID,ID,TYPE) SELECT T.ENTRYID,N.ID,2 FROM {0}{1} T,{3} N WHERE N.VALUE=T.VALUE AND N.MODIFIER_ID=T.MODIFIER_ID AND N.REF=0 * </code> */ public static final String resolveExistingLiterals = "node.resolveExistingLiterals"; /** *Constant "updateExistingLiteralsReferenceCount" used to reference prepared statement node.updateExistingLiteralsReferenceCount * * <code> * UPDATE {2} SET REF=REF+1 WHERE REF>0 AND EXISTS (SELECT {0}{1}.VALUE FROM {0}{1} WHERE {0}{1}.VALUE={2}.VALUE AND {0}{1}.MODIFIER_ID={2}.MODIFIER_ID) * </code> */ public static final String updateExistingLiteralsReferenceCount = "node.updateExistingLiteralsReferenceCount"; /** *Constant "resolveExistingUncommittedLiterals" used to reference prepared statement node.resolveExistingUncommittedLiterals * * <code> * INSERT INTO {0}{2} (ENTRYID,ID,TYPE) SELECT T.ENTRYID,N.ID,3 FROM {0}{1} T,{3} N WHERE N.VALUE=T.VALUE AND N.MODIFIER_ID=T.MODIFIER_ID AND N.REF>0 * </code> */ public static final String resolveExistingUncommittedLiterals = "node.resolveExistingUncommittedLiterals"; /** *Constant "purgeResolvedLiterals" used to reference prepared statement node.purgeResolvedLiterals * * <code> * DELETE FROM {0}{1} WHERE ENTRYID IN (SELECT {0}{2}.ENTRYID FROM {0}{2}) * </code> */ public static final String purgeResolvedLiterals = "node.purgeResolvedLiterals"; /** *Constant "insertUnresolvedLiterals" used to reference prepared statement node.insertUnresolvedLiterals * * <code> * * </code> */ public static final String insertUnresolvedLiterals = "node.insertUnresolvedLiterals"; /** *Constant "insertUncommittedReferences" used to reference prepared statement node.insertUncommittedReferences * * <code> * INSERT INTO {2} (ID,TRANSACTIONID) SELECT {0}{1}.ID,{3} FROM {0}{1} WHERE {0}{1}.TYPE IN (1,3) * </code> */ public static final String insertUncommittedReferences = "node.insertUncommittedReferences"; /** *Constant "insertLockedId" used to reference prepared statement node.insertLockedId * * <code> * INSERT INTO {0} (ID,TRANSACTIONID) VALUES(?,?) * </code> */ public static final String insertLockedId = "node.insertLockedId"; /** *Constant "commitUncommittedReferences" used to reference prepared statement node.commitUncommittedReferences * * <code> * UPDATE {1} SET REF=0 WHERE EXISTS (SELECT {0}.ID FROM {0} WHERE {0}.TRANSACTIONID=? AND {1}.ID={0}.ID) AND REF>0 * </code> */ public static final String commitUncommittedReferences = "node.commitUncommittedReferences"; /** *Constant "deleteUncommittedReferences" used to reference prepared statement node.deleteUncommittedReferences * * <code> * DELETE FROM {1} WHERE REF=1 AND EXISTS (SELECT {0}.ID FROM {0} WHERE {0}.TRANSACTIONID=? AND {1}.ID={0}.ID) * </code> */ public static final String deleteUncommittedReferences = "node.deleteUncommittedReferences"; /** *Constant "decrementUncommittedReferences" used to reference prepared statement node.decrementUncommittedReferences * * <code> * UPDATE {1} SET REF=REF-1 WHERE REF>1 AND EXISTS (SELECT {0}.ID FROM {0} WHERE {0}.TRANSACTIONID=? AND {1}.ID={0}.ID) * </code> */ public static final String decrementUncommittedReferences = "node.decrementUncommittedReferences"; /** *Constant "selectAllResolvedIds" used to reference prepared statement node.selectAllResolvedIds * * <code> * SELECT {0}{1}.ENTRYID,{0}{1}.ID FROM {0}{1} * </code> */ public static final String selectAllResolvedIds = "node.selectAllResolvedIds"; /** *Constant "purge" used to reference prepared statement node.purge * * <code> * DELETE FROM {0} WHERE TRANSACTIONID=? * </code> */ public static final String purge = "node.purge"; /** *Constant "resolveIdsLiteral" used to reference prepared statement node.resolveIdsLiteral * * <code> * SELECT {2}.ID,{2}.VALUE,{2}.MODIFIER_ID FROM {2},{0}{1} WHERE {2}.ID ={0}{1}.ID AND {0}{1}.ID>=? AND {0}{1}.ID < ? * </code> */ public static final String resolveIdsLiteral = "node.resolveIdsLiteral"; /** *Constant "resolveTransactedIdsLiteral" used to reference prepared statement node.resolveTransactedIdsLiteral * * <code> * SELECT {2}.ID,{2}.VALUE,{2}.MODIFIER_ID FROM {2},{0}{1} WHERE {0}{1}.TRANSACTIONID=? AND {2}.ID ={0}{1}.ID AND {0}{1}.ID>=? AND {0}{1}.ID < ? * </code> */ public static final String resolveTransactedIdsLiteral = "node.resolveTransactedIdsLiteral"; /** * Transformer that transforms the rows in the result set for the getAllLiterals prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<GetAllLiteralsResult> transformGetAllLiterals = new org.openanzo.jdbc.utils.Transformer<GetAllLiteralsResult>(){ public GetAllLiteralsResult transform(java.sql.ResultSet rs) { GetAllLiteralsResult result = new GetAllLiteralsResult(); 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.modifierId=rs.getLong(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:modifierId",e); throw new org.apache.commons.collections.FunctorException(e); } try { result.value=rs.getString(3); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the getAllLiterals prepared statement. * <code> * SELECT ID,MODIFIER_ID,VALUE FROM {0} {1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param nodeTableName template parameter *@param optimization template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<GetAllLiteralsResult> getAllLiterals (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String nodeTableName, String optimization) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(getAllLiterals, new String[] {nodeTableName, optimization},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<GetAllLiteralsResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<GetAllLiteralsResult>(rs, ps, stmtProvider, transformGetAllLiterals); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"getAllLiterals",stmtProvider.getSqlString(getAllLiterals) ,"",""+ "nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null") + "," +"optimization="+((optimization!=null)?optimization.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[getAllLiterals]"+endtimer); } } /** *Default implementation of GetAllLiteralsResult */ public static class GetAllLiteralsResult { /**Value for the "id" result value*/ private Long id; /**Value for the "modifierId" result value*/ private Long modifierId; /**Value for the "value" result value*/ private String value; /** *Get Id value *@return Id value */ public Long getId() { return this.id; } /** *Get ModifierId value *@return ModifierId value */ public Long getModifierId() { return this.modifierId; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } } /** * Transformer that transforms the rows in the result set for the findNodeID prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<Long> transformFindNodeID = 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 findNodeID prepared statement. * <code> * SELECT ID FROM {0} WHERE (MODIFIER_ID=0 OR MODIFIER_ID=?) AND VALUE LIKE ? {1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param modifierId template parameter *@param value template parameter * *@param nodeTableName template parameter *@param optimization template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<Long> findNodeID (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long modifierId, String value, String nodeTableName, String optimization) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(findNodeID, new String[] {nodeTableName, optimization},connection); int argc = 1; ps.setLong(argc++, modifierId); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","findNodeID"); } else { ps.setString(argc++, value); } 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, transformFindNodeID); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"findNodeID",stmtProvider.getSqlString(findNodeID) ,""+ "modifierId="+(modifierId) + "," +"value="+((value!=null)?value.toString():"null"),""+ "nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null") + "," +"optimization="+((optimization!=null)?optimization.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[findNodeID]"+endtimer); } } /** * Runs the fetchNodeID prepared statement. * <code> * SELECT ID FROM {0} WHERE VALUE = ? {1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param value template parameter * *@param nodeTableName template parameter *@param optimization template parameter *@return Long *@throws org.openanzo.jdbc.utils.RdbException */ public static Long fetchNodeID (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String value, String nodeTableName, String optimization) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(fetchNodeID, new String[] {nodeTableName, optimization},connection); int argc = 1; if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","fetchNodeID"); } else { ps.setString(argc++, value); } 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,"fetchNodeID",stmtProvider.getSqlString(fetchNodeID) ,""+ "value="+((value!=null)?value.toString():"null"),""+ "nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null") + "," +"optimization="+((optimization!=null)?optimization.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("[fetchNodeID]"+endtimer); } } /** * Runs the fetchNodeValue prepared statement. * <code> * SELECT VALUE FROM {0} WHERE ID = ? {1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter * *@param nodeTableName template parameter *@param optimization template parameter *@return String *@throws org.openanzo.jdbc.utils.RdbException */ public static String fetchNodeValue (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String nodeTableName, String optimization) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(fetchNodeValue, new String[] {nodeTableName, optimization},connection); int argc = 1; ps.setLong(argc++, id); 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; String val = rs.getString(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,"fetchNodeValue",stmtProvider.getSqlString(fetchNodeValue) ,""+ "id="+(id),""+ "nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null") + "," +"optimization="+((optimization!=null)?optimization.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("[fetchNodeValue]"+endtimer); } } /** * Transformer that transforms the rows in the result set for the fetchLongNodeID prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<FetchLongNodeIDResult> transformFetchLongNodeID = new org.openanzo.jdbc.utils.Transformer<FetchLongNodeIDResult>(){ public FetchLongNodeIDResult transform(java.sql.ResultSet rs) { FetchLongNodeIDResult result = new FetchLongNodeIDResult(); 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.value=rs.getString(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the fetchLongNodeID prepared statement. * <code> * SELECT ID,VALUE FROM {0} WHERE HASH = ? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param hash template parameter * *@param nodeTableName template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<FetchLongNodeIDResult> fetchLongNodeID (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long hash, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(fetchLongNodeID, new String[] {nodeTableName},connection); int argc = 1; ps.setLong(argc++, hash); 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<FetchLongNodeIDResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<FetchLongNodeIDResult>(rs, ps, stmtProvider, transformFetchLongNodeID); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"fetchLongNodeID",stmtProvider.getSqlString(fetchLongNodeID) ,""+ "hash="+(hash),""+ "nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[fetchLongNodeID]"+endtimer); } } /** *Default implementation of FetchLongNodeIDResult */ public static class FetchLongNodeIDResult { /**Value for the "id" result value*/ private Long id; /**Value for the "value" result value*/ private String value; /** *Get Id value *@return Id value */ public Long getId() { return this.id; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } } /** * Runs the fetchLiteralNodeValue prepared statement. * <code> * SELECT VALUE, MODIFIER_ID FROM {0} WHERE ID = ? {1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter * *@param literalNodeTableName template parameter *@param optimization template parameter *@return FetchLiteralNodeValueResult *@throws org.openanzo.jdbc.utils.RdbException */ public static FetchLiteralNodeValueResult fetchLiteralNodeValue (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String literalNodeTableName, String optimization) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(fetchLiteralNodeValue, new String[] {literalNodeTableName, optimization},connection); int argc = 1; ps.setLong(argc++, id); 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; FetchLiteralNodeValueResult result=new FetchLiteralNodeValueResult(); result.value=rs.getString(1); result.modifier_id=rs.getLong(2); return result; } 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,"fetchLiteralNodeValue",stmtProvider.getSqlString(fetchLiteralNodeValue) ,""+ "id="+(id),""+ "literalNodeTableName="+((literalNodeTableName!=null)?literalNodeTableName.toString():"null") + "," +"optimization="+((optimization!=null)?optimization.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("[fetchLiteralNodeValue]"+endtimer); } } /** *Default implementation of FetchLiteralNodeValueResult */ public static class FetchLiteralNodeValueResult { /**Value for the "value" result value*/ private String value; /**Value for the "modifier_id" result value*/ private Long modifier_id; /** *Get Value value *@return Value value */ public String getValue() { return this.value; } /** *Get Modifier_id value *@return Modifier_id value */ public Long getModifier_id() { return this.modifier_id; } } /** * Runs the fetchLiteralNodeID prepared statement. * <code> * SELECT ID FROM {0} WHERE VALUE = ? AND MODIFIER_ID = ? {1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param value template parameter *@param modifier_id template parameter * *@param literalNodeTableName template parameter *@param optimization template parameter *@return Long *@throws org.openanzo.jdbc.utils.RdbException */ public static Long fetchLiteralNodeID (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String value, long modifier_id, String literalNodeTableName, String optimization) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(fetchLiteralNodeID, new String[] {literalNodeTableName, optimization},connection); int argc = 1; if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","fetchLiteralNodeID"); } else { ps.setString(argc++, value); } ps.setLong(argc++, modifier_id); 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,"fetchLiteralNodeID",stmtProvider.getSqlString(fetchLiteralNodeID) ,""+ "value="+((value!=null)?value.toString():"null") + "," +"modifier_id="+(modifier_id),""+ "literalNodeTableName="+((literalNodeTableName!=null)?literalNodeTableName.toString():"null") + "," +"optimization="+((optimization!=null)?optimization.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("[fetchLiteralNodeID]"+endtimer); } } /** * Transformer that transforms the rows in the result set for the fetchLongLiteralNodeID prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<FetchLongLiteralNodeIDResult> transformFetchLongLiteralNodeID = new org.openanzo.jdbc.utils.Transformer<FetchLongLiteralNodeIDResult>(){ public FetchLongLiteralNodeIDResult transform(java.sql.ResultSet rs) { FetchLongLiteralNodeIDResult result = new FetchLongLiteralNodeIDResult(); 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.value=rs.getString(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the fetchLongLiteralNodeID prepared statement. * <code> * SELECT ID,VALUE FROM {0} WHERE HASH = ? AND MODIFIER_ID = ? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param hash template parameter *@param modifier_id template parameter * *@param longLiteralNodeTableName template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<FetchLongLiteralNodeIDResult> fetchLongLiteralNodeID (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long hash, long modifier_id, String longLiteralNodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(fetchLongLiteralNodeID, new String[] {longLiteralNodeTableName},connection); int argc = 1; ps.setLong(argc++, hash); ps.setLong(argc++, modifier_id); 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<FetchLongLiteralNodeIDResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<FetchLongLiteralNodeIDResult>(rs, ps, stmtProvider, transformFetchLongLiteralNodeID); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"fetchLongLiteralNodeID",stmtProvider.getSqlString(fetchLongLiteralNodeID) ,""+ "hash="+(hash) + "," +"modifier_id="+(modifier_id),""+ "longLiteralNodeTableName="+((longLiteralNodeTableName!=null)?longLiteralNodeTableName.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[fetchLongLiteralNodeID]"+endtimer); } } /** *Default implementation of FetchLongLiteralNodeIDResult */ public static class FetchLongLiteralNodeIDResult { /**Value for the "id" result value*/ private Long id; /**Value for the "value" result value*/ private String value; /** *Get Id value *@return Id value */ public Long getId() { return this.id; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } } /** * Runs the insertCommonValue prepared statement. * <code> * INSERT INTO {0} (ID, VALUE) VALUES(?, ?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter *@param value template parameter * *@param commonValuesTable template parameter * *@throws org.openanzo.jdbc.utils.RdbException */ public static void insertCommonValue (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String value, String commonValuesTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertCommonValue, new String[] {commonValuesTable},connection); int argc = 1; ps.setLong(argc++, id); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","insertCommonValue"); } else { ps.setString(argc++, value); } try{ ps.execute(); }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{ ps.execute(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"insertCommonValue",stmtProvider.getSqlString(insertCommonValue) ,""+ "id="+(id) + "," +"value="+((value!=null)?value.toString():"null"),""+ "commonValuesTable="+((commonValuesTable!=null)?commonValuesTable.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("[insertCommonValue]"+endtimer); } } /** *Batch operation for adding parameters to the InsertCommonValue prepared statement */ public static class BatchInsertCommonValue extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertCommonValue prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param commonValuesTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertCommonValue(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String commonValuesTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertCommonValue,new String[] {commonValuesTable}); } /** * Sets the input parameters for the insertCommonValue prepared statement. * *@param id template parameter *@param value template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long id, String value) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, id); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","insertCommonValue"); } else { ps.setString(argc++, value); } 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 insertCommonValueWithIdentity prepared statement. * <code> * INSERT INTO {0} ( VALUE) VALUES( ?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param value template parameter * *@param commonValuesTable template parameter *@return Long *@throws org.openanzo.jdbc.utils.RdbException */ public static Long insertCommonValueWithIdentity (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String value, String commonValuesTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatementWithGeneratedIDS(insertCommonValueWithIdentity, new String[] {commonValuesTable},connection); int argc = 1; if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","insertCommonValueWithIdentity"); } else { ps.setString(argc++, value); } java.sql.ResultSet rs=null; try { if (ps.execute()) { rs = ps.getResultSet(); } else { rs = ps.getGeneratedKeys(); } if (rs != null && rs.next()) { return rs.getLong(1); } else { return null; } } 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,"insertCommonValueWithIdentity",stmtProvider.getSqlString(insertCommonValueWithIdentity) ,""+ "value="+((value!=null)?value.toString():"null"),""+ "commonValuesTable="+((commonValuesTable!=null)?commonValuesTable.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("[insertCommonValueWithIdentity]"+endtimer); } } /** *Batch operation for adding parameters to the InsertCommonValueWithIdentity prepared statement */ public static class BatchInsertCommonValueWithIdentity extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertCommonValueWithIdentity prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param commonValuesTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertCommonValueWithIdentity(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String commonValuesTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertCommonValueWithIdentity,new String[] {commonValuesTable}); } /** * Sets the input parameters for the insertCommonValueWithIdentity prepared statement. * *@param value template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (String value) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","insertCommonValueWithIdentity"); } else { ps.setString(argc++, value); } 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 fetchCommonValueID prepared statement. * <code> * SELECT ID FROM {0} WHERE VALUE = ? {1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param value template parameter * *@param commonValuesTable template parameter *@param optimization template parameter *@return Long *@throws org.openanzo.jdbc.utils.RdbException */ public static Long fetchCommonValueID (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String value, String commonValuesTable, String optimization) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(fetchCommonValueID, new String[] {commonValuesTable, optimization},connection); int argc = 1; if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","fetchCommonValueID"); } else { ps.setString(argc++, value); } 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,"fetchCommonValueID",stmtProvider.getSqlString(fetchCommonValueID) ,""+ "value="+((value!=null)?value.toString():"null"),""+ "commonValuesTable="+((commonValuesTable!=null)?commonValuesTable.toString():"null") + "," +"optimization="+((optimization!=null)?optimization.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("[fetchCommonValueID]"+endtimer); } } /** * Runs the fetchCommonValue prepared statement. * <code> * SELECT VALUE FROM {0} WHERE ID = ? {1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter * *@param commonValuesTable template parameter *@param optimization template parameter *@return String *@throws org.openanzo.jdbc.utils.RdbException */ public static String fetchCommonValue (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String commonValuesTable, String optimization) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(fetchCommonValue, new String[] {commonValuesTable, optimization},connection); int argc = 1; ps.setLong(argc++, id); 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; String val = rs.getString(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,"fetchCommonValue",stmtProvider.getSqlString(fetchCommonValue) ,""+ "id="+(id),""+ "commonValuesTable="+((commonValuesTable!=null)?commonValuesTable.toString():"null") + "," +"optimization="+((optimization!=null)?optimization.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("[fetchCommonValue]"+endtimer); } } /** * Transformer that transforms the rows in the result set for the fetchAllCommonValues prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<FetchAllCommonValuesResult> transformFetchAllCommonValues = new org.openanzo.jdbc.utils.Transformer<FetchAllCommonValuesResult>(){ public FetchAllCommonValuesResult transform(java.sql.ResultSet rs) { FetchAllCommonValuesResult result = new FetchAllCommonValuesResult(); 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.value=rs.getString(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the fetchAllCommonValues prepared statement. * <code> * SELECT ID, VALUE FROM {0} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param commonValuesTable template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<FetchAllCommonValuesResult> fetchAllCommonValues (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String commonValuesTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(fetchAllCommonValues, new String[] {commonValuesTable},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<FetchAllCommonValuesResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<FetchAllCommonValuesResult>(rs, ps, stmtProvider, transformFetchAllCommonValues); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"fetchAllCommonValues",stmtProvider.getSqlString(fetchAllCommonValues) ,"",""+ "commonValuesTable="+((commonValuesTable!=null)?commonValuesTable.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[fetchAllCommonValues]"+endtimer); } } /** *Default implementation of FetchAllCommonValuesResult */ public static class FetchAllCommonValuesResult { /**Value for the "id" result value*/ private Long id; /**Value for the "value" result value*/ private String value; /** *Get Id value *@return Id value */ public Long getId() { return this.id; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } } /** * Runs the storeBulkNode prepared statement. * <code> * INSERT INTO {0}{1} (ID, VALUE) VALUES(?, ?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter *@param value template parameter * *@param sessionPrefix template parameter *@param bulkNodeTableName template parameter * *@throws org.openanzo.jdbc.utils.RdbException */ public static void storeBulkNode (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String value, String sessionPrefix, String bulkNodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(storeBulkNode, new String[] {sessionPrefix, bulkNodeTableName},connection); int argc = 1; ps.setLong(argc++, id); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeBulkNode"); } else { ps.setString(argc++, value); } try{ ps.execute(); }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{ ps.execute(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"storeBulkNode",stmtProvider.getSqlString(storeBulkNode) ,""+ "id="+(id) + "," +"value="+((value!=null)?value.toString():"null"),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkNodeTableName="+((bulkNodeTableName!=null)?bulkNodeTableName.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("[storeBulkNode]"+endtimer); } } /** *Batch operation for adding parameters to the StoreBulkNode prepared statement */ public static class BatchStoreBulkNode extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the StoreBulkNode prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkNodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchStoreBulkNode(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkNodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,storeBulkNode,new String[] {sessionPrefix, bulkNodeTableName}); } /** * Sets the input parameters for the storeBulkNode prepared statement. * *@param id template parameter *@param value template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long id, String value) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, id); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeBulkNode"); } else { ps.setString(argc++, value); } 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 storeBulkLongNode prepared statement. * <code> * INSERT INTO {0}{1} (ID, HASH, VALUE) VALUES(?, ?, ?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter *@param hash template parameter *@param value template parameter * *@param sessionPrefix template parameter *@param bulkNodeTableName template parameter * *@throws org.openanzo.jdbc.utils.RdbException */ public static void storeBulkLongNode (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, long hash, String value, String sessionPrefix, String bulkNodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(storeBulkLongNode, new String[] {sessionPrefix, bulkNodeTableName},connection); int argc = 1; ps.setLong(argc++, id); ps.setLong(argc++, hash); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeBulkLongNode"); } else { ps.setString(argc++, value); } try{ ps.execute(); }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{ ps.execute(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"storeBulkLongNode",stmtProvider.getSqlString(storeBulkLongNode) ,""+ "id="+(id) + "," +"hash="+(hash) + "," +"value="+((value!=null)?value.toString():"null"),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkNodeTableName="+((bulkNodeTableName!=null)?bulkNodeTableName.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("[storeBulkLongNode]"+endtimer); } } /** *Batch operation for adding parameters to the StoreBulkLongNode prepared statement */ public static class BatchStoreBulkLongNode extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the StoreBulkLongNode prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkNodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchStoreBulkLongNode(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkNodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,storeBulkLongNode,new String[] {sessionPrefix, bulkNodeTableName}); } /** * Sets the input parameters for the storeBulkLongNode prepared statement. * *@param id template parameter *@param hash template parameter *@param value template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long id, long hash, String value) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, id); ps.setLong(argc++, hash); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeBulkLongNode"); } else { ps.setString(argc++, value); } 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 storeBulkLiteral prepared statement. * <code> * INSERT INTO {0}{1} (ID, VALUE, MODIFIER_ID) VALUES(?, ?, ?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter *@param value template parameter *@param modifier_id template parameter * *@param sessionPrefix template parameter *@param bulkLiteralTableName template parameter * *@throws org.openanzo.jdbc.utils.RdbException */ public static void storeBulkLiteral (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String value, long modifier_id, String sessionPrefix, String bulkLiteralTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(storeBulkLiteral, new String[] {sessionPrefix, bulkLiteralTableName},connection); int argc = 1; ps.setLong(argc++, id); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeBulkLiteral"); } else { ps.setString(argc++, value); } ps.setLong(argc++, modifier_id); try{ ps.execute(); }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{ ps.execute(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"storeBulkLiteral",stmtProvider.getSqlString(storeBulkLiteral) ,""+ "id="+(id) + "," +"value="+((value!=null)?value.toString():"null") + "," +"modifier_id="+(modifier_id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkLiteralTableName="+((bulkLiteralTableName!=null)?bulkLiteralTableName.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("[storeBulkLiteral]"+endtimer); } } /** *Batch operation for adding parameters to the StoreBulkLiteral prepared statement */ public static class BatchStoreBulkLiteral extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the StoreBulkLiteral prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkLiteralTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchStoreBulkLiteral(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkLiteralTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,storeBulkLiteral,new String[] {sessionPrefix, bulkLiteralTableName}); } /** * Sets the input parameters for the storeBulkLiteral prepared statement. * *@param id template parameter *@param value template parameter *@param modifier_id template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long id, String value, long modifier_id) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, id); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeBulkLiteral"); } else { ps.setString(argc++, value); } ps.setLong(argc++, modifier_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 storeBulkLongLiteral prepared statement. * <code> * INSERT INTO {0}{1} (ID, VALUE, HASH, MODIFIER_ID) VALUES(?, ?, ?, ?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter *@param value template parameter *@param hash template parameter *@param modifier_id template parameter * *@param sessionPrefix template parameter *@param bulkLiteralTableName template parameter * *@throws org.openanzo.jdbc.utils.RdbException */ public static void storeBulkLongLiteral (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String value, long hash, long modifier_id, String sessionPrefix, String bulkLiteralTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(storeBulkLongLiteral, new String[] {sessionPrefix, bulkLiteralTableName},connection); int argc = 1; ps.setLong(argc++, id); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeBulkLongLiteral"); } else { ps.setString(argc++, value); } ps.setLong(argc++, hash); ps.setLong(argc++, modifier_id); try{ ps.execute(); }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{ ps.execute(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"storeBulkLongLiteral",stmtProvider.getSqlString(storeBulkLongLiteral) ,""+ "id="+(id) + "," +"value="+((value!=null)?value.toString():"null") + "," +"hash="+(hash) + "," +"modifier_id="+(modifier_id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkLiteralTableName="+((bulkLiteralTableName!=null)?bulkLiteralTableName.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("[storeBulkLongLiteral]"+endtimer); } } /** *Batch operation for adding parameters to the StoreBulkLongLiteral prepared statement */ public static class BatchStoreBulkLongLiteral extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the StoreBulkLongLiteral prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkLiteralTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchStoreBulkLongLiteral(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkLiteralTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,storeBulkLongLiteral,new String[] {sessionPrefix, bulkLiteralTableName}); } /** * Sets the input parameters for the storeBulkLongLiteral prepared statement. * *@param id template parameter *@param value template parameter *@param hash template parameter *@param modifier_id template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long id, String value, long hash, long modifier_id) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, id); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeBulkLongLiteral"); } else { ps.setString(argc++, value); } ps.setLong(argc++, hash); ps.setLong(argc++, modifier_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 countTempTable prepared statement. * <code> * SELECT COUNT(1) FROM {0}{1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkLiteralTableName template parameter *@return long *@throws org.openanzo.jdbc.utils.RdbException */ public static long countTempTable (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkLiteralTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(countTempTable, new String[] {sessionPrefix, bulkLiteralTableName},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 0; 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,"countTempTable",stmtProvider.getSqlString(countTempTable) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkLiteralTableName="+((bulkLiteralTableName!=null)?bulkLiteralTableName.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("[countTempTable]"+endtimer); } } /** * Runs the storeResolveId prepared statement. * <code> * INSERT INTO {0}{1} (ID) VALUES(?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter * *@throws org.openanzo.jdbc.utils.RdbException */ public static void storeResolveId (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(storeResolveId, new String[] {sessionPrefix, bulkResolutionTableName},connection); int argc = 1; ps.setLong(argc++, id); try{ ps.execute(); }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{ ps.execute(); break; }catch(java.sql.SQLException sqleInner){ if(sqleInner.getErrorCode()==1205){ retries++; }else{ throw sqleInner; } } } if(retries>=5){ throw sqle; } }else{ throw sqle; } } } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"storeResolveId",stmtProvider.getSqlString(storeResolveId) ,""+ "id="+(id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.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("[storeResolveId]"+endtimer); } } /** *Batch operation for adding parameters to the StoreResolveId prepared statement */ public static class BatchStoreResolveId extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the StoreResolveId prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchStoreResolveId(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,storeResolveId,new String[] {sessionPrefix, bulkResolutionTableName}); } /** * Sets the input parameters for the storeResolveId prepared statement. * *@param id template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long id) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; 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 storeResolveNode prepared statement. * <code> * INSERT INTO {0}{1} (ENTRYID,VALUE) VALUES(?,?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param rowId template parameter *@param value template parameter * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int storeResolveNode (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int rowId, String value, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(storeResolveNode, new String[] {sessionPrefix, bulkResolutionTableName},connection); int argc = 1; ps.setInt(argc++, rowId); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeResolveNode"); } else { ps.setString(argc++, value); } 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,"storeResolveNode",stmtProvider.getSqlString(storeResolveNode) ,""+ "rowId="+(rowId) + "," +"value="+((value!=null)?value.toString():"null"),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.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("[storeResolveNode]"+endtimer); } } /** *Batch operation for adding parameters to the StoreResolveNode prepared statement */ public static class BatchStoreResolveNode extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the StoreResolveNode prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchStoreResolveNode(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,storeResolveNode,new String[] {sessionPrefix, bulkResolutionTableName}); } /** * Sets the input parameters for the storeResolveNode prepared statement. * *@param rowId template parameter *@param value template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (int rowId, String value) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setInt(argc++, rowId); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeResolveNode"); } else { ps.setString(argc++, value); } 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 storeResolveNodeLong prepared statement. * <code> * INSERT INTO {0}{1} (VALUE,HASH) VALUES(?,?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param value template parameter *@param hash template parameter * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int storeResolveNodeLong (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String value, long hash, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(storeResolveNodeLong, new String[] {sessionPrefix, bulkResolutionTableName},connection); int argc = 1; if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeResolveNodeLong"); } else { ps.setString(argc++, value); } ps.setLong(argc++, hash); 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,"storeResolveNodeLong",stmtProvider.getSqlString(storeResolveNodeLong) ,""+ "value="+((value!=null)?value.toString():"null") + "," +"hash="+(hash),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.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("[storeResolveNodeLong]"+endtimer); } } /** *Batch operation for adding parameters to the StoreResolveNodeLong prepared statement */ public static class BatchStoreResolveNodeLong extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the StoreResolveNodeLong prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchStoreResolveNodeLong(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,storeResolveNodeLong,new String[] {sessionPrefix, bulkResolutionTableName}); } /** * Sets the input parameters for the storeResolveNodeLong prepared statement. * *@param value template parameter *@param hash template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (String value, long hash) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeResolveNodeLong"); } else { ps.setString(argc++, value); } ps.setLong(argc++, hash); 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 storeResolveLiteral prepared statement. * <code> * INSERT INTO {0}{1} (ENTRYID,VALUE,MODIFIER_ID) VALUES(?,?,?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param rowId template parameter *@param value template parameter *@param modifier_id template parameter * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int storeResolveLiteral (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, int rowId, String value, long modifier_id, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(storeResolveLiteral, new String[] {sessionPrefix, bulkResolutionTableName},connection); int argc = 1; ps.setInt(argc++, rowId); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeResolveLiteral"); } else { ps.setString(argc++, value); } ps.setLong(argc++, modifier_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,"storeResolveLiteral",stmtProvider.getSqlString(storeResolveLiteral) ,""+ "rowId="+(rowId) + "," +"value="+((value!=null)?value.toString():"null") + "," +"modifier_id="+(modifier_id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.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("[storeResolveLiteral]"+endtimer); } } /** *Batch operation for adding parameters to the StoreResolveLiteral prepared statement */ public static class BatchStoreResolveLiteral extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the StoreResolveLiteral prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchStoreResolveLiteral(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,storeResolveLiteral,new String[] {sessionPrefix, bulkResolutionTableName}); } /** * Sets the input parameters for the storeResolveLiteral prepared statement. * *@param rowId template parameter *@param value template parameter *@param modifier_id template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (int rowId, String value, long modifier_id) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setInt(argc++, rowId); if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeResolveLiteral"); } else { ps.setString(argc++, value); } ps.setLong(argc++, modifier_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 storeResolveLiteralLong prepared statement. * <code> * INSERT INTO {0}{1} (VALUE,HASH,MODIFIER_ID) VALUES(?,?,?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param value template parameter *@param hash template parameter *@param modifier_id template parameter * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int storeResolveLiteralLong (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String value, long hash, long modifier_id, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(storeResolveLiteralLong, new String[] {sessionPrefix, bulkResolutionTableName},connection); int argc = 1; if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeResolveLiteralLong"); } else { ps.setString(argc++, value); } ps.setLong(argc++, hash); ps.setLong(argc++, modifier_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,"storeResolveLiteralLong",stmtProvider.getSqlString(storeResolveLiteralLong) ,""+ "value="+((value!=null)?value.toString():"null") + "," +"hash="+(hash) + "," +"modifier_id="+(modifier_id),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.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("[storeResolveLiteralLong]"+endtimer); } } /** *Batch operation for adding parameters to the StoreResolveLiteralLong prepared statement */ public static class BatchStoreResolveLiteralLong extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the StoreResolveLiteralLong prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchStoreResolveLiteralLong(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,storeResolveLiteralLong,new String[] {sessionPrefix, bulkResolutionTableName}); } /** * Sets the input parameters for the storeResolveLiteralLong prepared statement. * *@param value template parameter *@param hash template parameter *@param modifier_id template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (String value, long hash, long modifier_id) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; if(value == null) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.NULL_PARAMETER,"value","storeResolveLiteralLong"); } else { ps.setString(argc++, value); } ps.setLong(argc++, hash); ps.setLong(argc++, modifier_id); 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 resolveNodes prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<ResolveNodesResult> transformResolveNodes = new org.openanzo.jdbc.utils.Transformer<ResolveNodesResult>(){ public ResolveNodesResult transform(java.sql.ResultSet rs) { ResolveNodesResult result = new ResolveNodesResult(); try { result.node_id=rs.getLong(1); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:node_id",e); throw new org.apache.commons.collections.FunctorException(e); } try { result.value=rs.getString(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the resolveNodes prepared statement. * <code> * SELECT {2}.ID,{2}.VALUE FROM {2},{0}{1} WHERE {2}.VALUE={0}{1}.VALUE * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<ResolveNodesResult> resolveNodes (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveNodes, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName},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<ResolveNodesResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<ResolveNodesResult>(rs, ps, stmtProvider, transformResolveNodes); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"resolveNodes",stmtProvider.getSqlString(resolveNodes) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[resolveNodes]"+endtimer); } } /** *Default implementation of ResolveNodesResult */ public static class ResolveNodesResult { /**Value for the "node_id" result value*/ private Long node_id; /**Value for the "value" result value*/ private String value; /** *Get Node_id value *@return Node_id value */ public Long getNode_id() { return this.node_id; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } } /** * Transformer that transforms the rows in the result set for the resolveLiterals prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<ResolveLiteralsResult> transformResolveLiterals = new org.openanzo.jdbc.utils.Transformer<ResolveLiteralsResult>(){ public ResolveLiteralsResult transform(java.sql.ResultSet rs) { ResolveLiteralsResult result = new ResolveLiteralsResult(); try { result.node_id=rs.getLong(1); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:node_id",e); throw new org.apache.commons.collections.FunctorException(e); } try { result.value=rs.getString(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } try { result.modifier_id=rs.getLong(3); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:modifier_id",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the resolveLiterals prepared statement. * <code> * SELECT {2}.ID,{2}.VALUE,{2}.MODIFIER_ID FROM {2},{0}{1} WHERE {2}.VALUE={0}{1}.VALUE AND {2}.MODIFIER_ID = {0}{1}.MODIFIER_ID * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<ResolveLiteralsResult> resolveLiterals (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveLiterals, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName},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<ResolveLiteralsResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<ResolveLiteralsResult>(rs, ps, stmtProvider, transformResolveLiterals); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"resolveLiterals",stmtProvider.getSqlString(resolveLiterals) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[resolveLiterals]"+endtimer); } } /** *Default implementation of ResolveLiteralsResult */ public static class ResolveLiteralsResult { /**Value for the "node_id" result value*/ private Long node_id; /**Value for the "value" result value*/ private String value; /**Value for the "modifier_id" result value*/ private Long modifier_id; /** *Get Node_id value *@return Node_id value */ public Long getNode_id() { return this.node_id; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } /** *Get Modifier_id value *@return Modifier_id value */ public Long getModifier_id() { return this.modifier_id; } } /** * Transformer that transforms the rows in the result set for the resolveIdsUri prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<ResolveIdsUriResult> transformResolveIdsUri = new org.openanzo.jdbc.utils.Transformer<ResolveIdsUriResult>(){ public ResolveIdsUriResult transform(java.sql.ResultSet rs) { ResolveIdsUriResult result = new ResolveIdsUriResult(); 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.value=rs.getString(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the resolveIdsUri prepared statement. * <code> * SELECT {2}.ID,{2}.VALUE FROM {2},{0}{1} WHERE {2}.ID={0}{1}.ID AND {0}{1}.ID>=? AND {0}{1}.ID < ? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param startId template parameter *@param endId template parameter * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<ResolveIdsUriResult> resolveIdsUri (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long startId, long endId, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveIdsUri, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName},connection); int argc = 1; ps.setLong(argc++, startId); ps.setLong(argc++, endId); 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<ResolveIdsUriResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<ResolveIdsUriResult>(rs, ps, stmtProvider, transformResolveIdsUri); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"resolveIdsUri",stmtProvider.getSqlString(resolveIdsUri) ,""+ "startId="+(startId) + "," +"endId="+(endId),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[resolveIdsUri]"+endtimer); } } /** *Default implementation of ResolveIdsUriResult */ public static class ResolveIdsUriResult { /**Value for the "id" result value*/ private Long id; /**Value for the "value" result value*/ private String value; /** *Get Id value *@return Id value */ public Long getId() { return this.id; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } } /** * Transformer that transforms the rows in the result set for the resolveTransactedIdsUri prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<ResolveTransactedIdsUriResult> transformResolveTransactedIdsUri = new org.openanzo.jdbc.utils.Transformer<ResolveTransactedIdsUriResult>(){ public ResolveTransactedIdsUriResult transform(java.sql.ResultSet rs) { ResolveTransactedIdsUriResult result = new ResolveTransactedIdsUriResult(); 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.value=rs.getString(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the resolveTransactedIdsUri prepared statement. * <code> * SELECT {2}.ID,{2}.VALUE FROM {2},{0}{1} WHERE {0}{1}.TRANSACTIONID=? AND {2}.ID={0}{1}.ID AND {0}{1}.ID>=? AND {0}{1}.ID < ? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param transactionId template parameter *@param startId template parameter *@param endId template parameter * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<ResolveTransactedIdsUriResult> resolveTransactedIdsUri (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, long startId, long endId, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveTransactedIdsUri, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName},connection); int argc = 1; ps.setLong(argc++, transactionId); ps.setLong(argc++, startId); ps.setLong(argc++, endId); 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<ResolveTransactedIdsUriResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<ResolveTransactedIdsUriResult>(rs, ps, stmtProvider, transformResolveTransactedIdsUri); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"resolveTransactedIdsUri",stmtProvider.getSqlString(resolveTransactedIdsUri) ,""+ "transactionId="+(transactionId) + "," +"startId="+(startId) + "," +"endId="+(endId),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[resolveTransactedIdsUri]"+endtimer); } } /** *Default implementation of ResolveTransactedIdsUriResult */ public static class ResolveTransactedIdsUriResult { /**Value for the "id" result value*/ private Long id; /**Value for the "value" result value*/ private String value; /** *Get Id value *@return Id value */ public Long getId() { return this.id; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } } /** * Runs the updateResolvedUris prepared statement. * <code> * UPDATE {0}{1} AS A SET TYPE=2,ID=(SELECT {2}.ID FROM {2} WHERE {2}.VALUE=A.VALUE AND {2}.REF=0) WHERE EXISTS (SELECT {2}.ID FROM {2} WHERE {2}.VALUE=A.VALUE AND {2}.REF=0) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int updateResolvedUris (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(updateResolvedUris, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName},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,"updateResolvedUris",stmtProvider.getSqlString(updateResolvedUris) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[updateResolvedUris]"+endtimer); } } /** *Batch operation for adding parameters to the UpdateResolvedUris prepared statement */ public static class BatchUpdateResolvedUris extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the UpdateResolvedUris prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchUpdateResolvedUris(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,updateResolvedUris,new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName}); } /** * Sets the input parameters for the updateResolvedUris 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 resolveExistingUris prepared statement. * <code> * INSERT INTO {0}{2} (ENTRYID,ID,TYPE) SELECT T.ENTRYID,N.ID,2 FROM {0}{1} T,{3} N WHERE N.VALUE=T.VALUE AND N.REF=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int resolveExistingUris (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveExistingUris, new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName, nodeTableName},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,"resolveExistingUris",stmtProvider.getSqlString(resolveExistingUris) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"resolvedTableName="+((resolvedTableName!=null)?resolvedTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[resolveExistingUris]"+endtimer); } } /** *Batch operation for adding parameters to the ResolveExistingUris prepared statement */ public static class BatchResolveExistingUris extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the ResolveExistingUris prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchResolveExistingUris(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,resolveExistingUris,new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName, nodeTableName}); } /** * Sets the input parameters for the resolveExistingUris 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 updateExistingUrisReferenceCount prepared statement. * <code> * UPDATE {2} SET REF=REF+1 WHERE REF>0 AND VALUE IN (SELECT {0}{1}.VALUE FROM {0}{1}) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int updateExistingUrisReferenceCount (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(updateExistingUrisReferenceCount, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName},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,"updateExistingUrisReferenceCount",stmtProvider.getSqlString(updateExistingUrisReferenceCount) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[updateExistingUrisReferenceCount]"+endtimer); } } /** *Batch operation for adding parameters to the UpdateExistingUrisReferenceCount prepared statement */ public static class BatchUpdateExistingUrisReferenceCount extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the UpdateExistingUrisReferenceCount prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchUpdateExistingUrisReferenceCount(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,updateExistingUrisReferenceCount,new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName}); } /** * Sets the input parameters for the updateExistingUrisReferenceCount 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 resolveExistingUncommittedUris prepared statement. * <code> * INSERT INTO {0}{2} (ENTRYID,ID,TYPE) SELECT T.ENTRYID,N.ID,3 FROM {0}{1} T,{3} N WHERE N.VALUE=T.VALUE AND N.REF>0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int resolveExistingUncommittedUris (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveExistingUncommittedUris, new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName, nodeTableName},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,"resolveExistingUncommittedUris",stmtProvider.getSqlString(resolveExistingUncommittedUris) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"resolvedTableName="+((resolvedTableName!=null)?resolvedTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[resolveExistingUncommittedUris]"+endtimer); } } /** *Batch operation for adding parameters to the ResolveExistingUncommittedUris prepared statement */ public static class BatchResolveExistingUncommittedUris extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the ResolveExistingUncommittedUris prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchResolveExistingUncommittedUris(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,resolveExistingUncommittedUris,new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName, nodeTableName}); } /** * Sets the input parameters for the resolveExistingUncommittedUris 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 purgeResolvedUris prepared statement. * <code> * DELETE FROM {0}{1} WHERE ENTRYID IN (SELECT {0}{2}.ENTRYID FROM {0}{2}) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int purgeResolvedUris (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(purgeResolvedUris, new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName},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,"purgeResolvedUris",stmtProvider.getSqlString(purgeResolvedUris) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"resolvedTableName="+((resolvedTableName!=null)?resolvedTableName.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("[purgeResolvedUris]"+endtimer); } } /** *Batch operation for adding parameters to the PurgeResolvedUris prepared statement */ public static class BatchPurgeResolvedUris extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the PurgeResolvedUris prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchPurgeResolvedUris(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,purgeResolvedUris,new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName}); } /** * Sets the input parameters for the purgeResolvedUris 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 insertUnresolvedUris prepared statement. * <code> * * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@param sequenceName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertUnresolvedUris (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String nodeTableName, String sequenceName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertUnresolvedUris, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName, sequenceName},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,"insertUnresolvedUris",stmtProvider.getSqlString(insertUnresolvedUris) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null") + "," +"sequenceName="+((sequenceName!=null)?sequenceName.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("[insertUnresolvedUris]"+endtimer); } } /** *Batch operation for adding parameters to the InsertUnresolvedUris prepared statement */ public static class BatchInsertUnresolvedUris extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertUnresolvedUris prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@param sequenceName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertUnresolvedUris(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String nodeTableName, String sequenceName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertUnresolvedUris,new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName, sequenceName}); } /** * Sets the input parameters for the insertUnresolvedUris 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 resolveExistingLiterals prepared statement. * <code> * INSERT INTO {0}{2} (ENTRYID,ID,TYPE) SELECT T.ENTRYID,N.ID,2 FROM {0}{1} T,{3} N WHERE N.VALUE=T.VALUE AND N.MODIFIER_ID=T.MODIFIER_ID AND N.REF=0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int resolveExistingLiterals (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveExistingLiterals, new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName, nodeTableName},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,"resolveExistingLiterals",stmtProvider.getSqlString(resolveExistingLiterals) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"resolvedTableName="+((resolvedTableName!=null)?resolvedTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[resolveExistingLiterals]"+endtimer); } } /** *Batch operation for adding parameters to the ResolveExistingLiterals prepared statement */ public static class BatchResolveExistingLiterals extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the ResolveExistingLiterals prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchResolveExistingLiterals(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,resolveExistingLiterals,new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName, nodeTableName}); } /** * Sets the input parameters for the resolveExistingLiterals 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 updateExistingLiteralsReferenceCount prepared statement. * <code> * UPDATE {2} SET REF=REF+1 WHERE REF>0 AND EXISTS (SELECT {0}{1}.VALUE FROM {0}{1} WHERE {0}{1}.VALUE={2}.VALUE AND {0}{1}.MODIFIER_ID={2}.MODIFIER_ID) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int updateExistingLiteralsReferenceCount (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(updateExistingLiteralsReferenceCount, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName},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,"updateExistingLiteralsReferenceCount",stmtProvider.getSqlString(updateExistingLiteralsReferenceCount) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[updateExistingLiteralsReferenceCount]"+endtimer); } } /** *Batch operation for adding parameters to the UpdateExistingLiteralsReferenceCount prepared statement */ public static class BatchUpdateExistingLiteralsReferenceCount extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the UpdateExistingLiteralsReferenceCount prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchUpdateExistingLiteralsReferenceCount(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,updateExistingLiteralsReferenceCount,new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName}); } /** * Sets the input parameters for the updateExistingLiteralsReferenceCount 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 resolveExistingUncommittedLiterals prepared statement. * <code> * INSERT INTO {0}{2} (ENTRYID,ID,TYPE) SELECT T.ENTRYID,N.ID,3 FROM {0}{1} T,{3} N WHERE N.VALUE=T.VALUE AND N.MODIFIER_ID=T.MODIFIER_ID AND N.REF>0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int resolveExistingUncommittedLiterals (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveExistingUncommittedLiterals, new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName, nodeTableName},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,"resolveExistingUncommittedLiterals",stmtProvider.getSqlString(resolveExistingUncommittedLiterals) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"resolvedTableName="+((resolvedTableName!=null)?resolvedTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[resolveExistingUncommittedLiterals]"+endtimer); } } /** *Batch operation for adding parameters to the ResolveExistingUncommittedLiterals prepared statement */ public static class BatchResolveExistingUncommittedLiterals extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the ResolveExistingUncommittedLiterals prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchResolveExistingUncommittedLiterals(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,resolveExistingUncommittedLiterals,new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName, nodeTableName}); } /** * Sets the input parameters for the resolveExistingUncommittedLiterals 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 purgeResolvedLiterals prepared statement. * <code> * DELETE FROM {0}{1} WHERE ENTRYID IN (SELECT {0}{2}.ENTRYID FROM {0}{2}) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int purgeResolvedLiterals (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(purgeResolvedLiterals, new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName},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,"purgeResolvedLiterals",stmtProvider.getSqlString(purgeResolvedLiterals) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"resolvedTableName="+((resolvedTableName!=null)?resolvedTableName.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("[purgeResolvedLiterals]"+endtimer); } } /** *Batch operation for adding parameters to the PurgeResolvedLiterals prepared statement */ public static class BatchPurgeResolvedLiterals extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the PurgeResolvedLiterals prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param resolvedTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchPurgeResolvedLiterals(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String resolvedTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,purgeResolvedLiterals,new String[] {sessionPrefix, bulkResolutionTableName, resolvedTableName}); } /** * Sets the input parameters for the purgeResolvedLiterals 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 insertUnresolvedLiterals prepared statement. * <code> * * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@param sequenceName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertUnresolvedLiterals (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String nodeTableName, String sequenceName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertUnresolvedLiterals, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName, sequenceName},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,"insertUnresolvedLiterals",stmtProvider.getSqlString(insertUnresolvedLiterals) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null") + "," +"sequenceName="+((sequenceName!=null)?sequenceName.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("[insertUnresolvedLiterals]"+endtimer); } } /** *Batch operation for adding parameters to the InsertUnresolvedLiterals prepared statement */ public static class BatchInsertUnresolvedLiterals extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertUnresolvedLiterals prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@param sequenceName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertUnresolvedLiterals(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String nodeTableName, String sequenceName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertUnresolvedLiterals,new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName, sequenceName}); } /** * Sets the input parameters for the insertUnresolvedLiterals 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 insertUncommittedReferences prepared statement. * <code> * INSERT INTO {2} (ID,TRANSACTIONID) SELECT {0}{1}.ID,{3} FROM {0}{1} WHERE {0}{1}.TYPE IN (1,3) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param lockedIdsTable template parameter *@param transactionId template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertUncommittedReferences (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName, String lockedIdsTable, String transactionId) throws org.openanzo.jdbc.utils.RdbException{ java.sql.Statement stmt = null; //long startTimer=System.currentTimeMillis(); try { String sql= stmtProvider.getSQL(insertUncommittedReferences, new String[] {sessionPrefix, bulkResolutionTableName, lockedIdsTable, transactionId}); stmt=connection.createStatement(); int counter = 0; try{ counter=stmt.executeUpdate(sql); }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=stmt.executeUpdate(sql); 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,"insertUncommittedReferences",stmtProvider.getSqlString(insertUncommittedReferences) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"lockedIdsTable="+((lockedIdsTable!=null)?lockedIdsTable.toString():"null") + "," +"transactionId="+((transactionId!=null)?transactionId.toString():"null")); } finally { if (stmt != null) { try { stmt.close(); } catch (java.sql.SQLException sqle) { if(log.isDebugEnabled())log.debug(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error closing statement",sqle); } } //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[insertUncommittedReferences]"+endtimer); } } /** *Batch operation for adding parameters to the InsertUncommittedReferences prepared statement */ public static class BatchInsertUncommittedReferences extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertUncommittedReferences prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param lockedIdsTable template parameter *@param transactionId template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertUncommittedReferences(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String sessionPrefix, String bulkResolutionTableName, String lockedIdsTable, String transactionId) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertUncommittedReferences,new String[] {sessionPrefix, bulkResolutionTableName, lockedIdsTable, transactionId}); } /** * Sets the input parameters for the insertUncommittedReferences 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 insertLockedId prepared statement. * <code> * INSERT INTO {0} (ID,TRANSACTIONID) VALUES(?,?) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param id template parameter *@param transactionId template parameter * *@param lockedIdsTable template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int insertLockedId (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long id, long transactionId, String lockedIdsTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(insertLockedId, new String[] {lockedIdsTable},connection); int argc = 1; ps.setLong(argc++, id); 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,"insertLockedId",stmtProvider.getSqlString(insertLockedId) ,""+ "id="+(id) + "," +"transactionId="+(transactionId),""+ "lockedIdsTable="+((lockedIdsTable!=null)?lockedIdsTable.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("[insertLockedId]"+endtimer); } } /** *Batch operation for adding parameters to the InsertLockedId prepared statement */ public static class BatchInsertLockedId extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the InsertLockedId prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param lockedIdsTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchInsertLockedId(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String lockedIdsTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,insertLockedId,new String[] {lockedIdsTable}); } /** * Sets the input parameters for the insertLockedId prepared statement. * *@param id template parameter *@param transactionId template parameter *@throws org.openanzo.jdbc.utils.RdbException */ public void addEntry (long id, long transactionId) throws org.openanzo.jdbc.utils.RdbException { try{ ps.clearParameters(); int argc = 1; ps.setLong(argc++, id); 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); } } } /** * Runs the commitUncommittedReferences prepared statement. * <code> * UPDATE {1} SET REF=0 WHERE EXISTS (SELECT {0}.ID FROM {0} WHERE {0}.TRANSACTIONID=? AND {1}.ID={0}.ID) AND REF>0 * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param transactionId template parameter * *@param lockedIdsTable template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int commitUncommittedReferences (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, String lockedIdsTable, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(commitUncommittedReferences, new String[] {lockedIdsTable, nodeTableName},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,"commitUncommittedReferences",stmtProvider.getSqlString(commitUncommittedReferences) ,""+ "transactionId="+(transactionId),""+ "lockedIdsTable="+((lockedIdsTable!=null)?lockedIdsTable.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[commitUncommittedReferences]"+endtimer); } } /** *Batch operation for adding parameters to the CommitUncommittedReferences prepared statement */ public static class BatchCommitUncommittedReferences extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the CommitUncommittedReferences prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param lockedIdsTable template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchCommitUncommittedReferences(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String lockedIdsTable, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,commitUncommittedReferences,new String[] {lockedIdsTable, nodeTableName}); } /** * Sets the input parameters for the commitUncommittedReferences 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); } } } /** * Runs the deleteUncommittedReferences prepared statement. * <code> * DELETE FROM {1} WHERE REF=1 AND EXISTS (SELECT {0}.ID FROM {0} WHERE {0}.TRANSACTIONID=? AND {1}.ID={0}.ID) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param transactionId template parameter * *@param lockedIdsTable template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int deleteUncommittedReferences (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, String lockedIdsTable, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(deleteUncommittedReferences, new String[] {lockedIdsTable, nodeTableName},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,"deleteUncommittedReferences",stmtProvider.getSqlString(deleteUncommittedReferences) ,""+ "transactionId="+(transactionId),""+ "lockedIdsTable="+((lockedIdsTable!=null)?lockedIdsTable.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[deleteUncommittedReferences]"+endtimer); } } /** *Batch operation for adding parameters to the DeleteUncommittedReferences prepared statement */ public static class BatchDeleteUncommittedReferences extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the DeleteUncommittedReferences prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param lockedIdsTable template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchDeleteUncommittedReferences(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String lockedIdsTable, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,deleteUncommittedReferences,new String[] {lockedIdsTable, nodeTableName}); } /** * Sets the input parameters for the deleteUncommittedReferences 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); } } } /** * Runs the decrementUncommittedReferences prepared statement. * <code> * UPDATE {1} SET REF=REF-1 WHERE REF>1 AND EXISTS (SELECT {0}.ID FROM {0} WHERE {0}.TRANSACTIONID=? AND {1}.ID={0}.ID) * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param transactionId template parameter * *@param lockedIdsTable template parameter *@param nodeTableName template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int decrementUncommittedReferences (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, String lockedIdsTable, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(decrementUncommittedReferences, new String[] {lockedIdsTable, nodeTableName},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,"decrementUncommittedReferences",stmtProvider.getSqlString(decrementUncommittedReferences) ,""+ "transactionId="+(transactionId),""+ "lockedIdsTable="+((lockedIdsTable!=null)?lockedIdsTable.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.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("[decrementUncommittedReferences]"+endtimer); } } /** *Batch operation for adding parameters to the DecrementUncommittedReferences prepared statement */ public static class BatchDecrementUncommittedReferences extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the DecrementUncommittedReferences prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param lockedIdsTable template parameter *@param nodeTableName template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchDecrementUncommittedReferences(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String lockedIdsTable, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,decrementUncommittedReferences,new String[] {lockedIdsTable, nodeTableName}); } /** * Sets the input parameters for the decrementUncommittedReferences 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 selectAllResolvedIds prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<SelectAllResolvedIdsResult> transformSelectAllResolvedIds = new org.openanzo.jdbc.utils.Transformer<SelectAllResolvedIdsResult>(){ public SelectAllResolvedIdsResult transform(java.sql.ResultSet rs) { SelectAllResolvedIdsResult result = new SelectAllResolvedIdsResult(); try { result.rowid=rs.getInt(1); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:rowid",e); throw new org.apache.commons.collections.FunctorException(e); } try { result.id=rs.getLong(2); } 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); } return result; } }; /** * Runs the selectAllResolvedIds prepared statement. * <code> * SELECT {0}{1}.ENTRYID,{0}{1}.ID FROM {0}{1} * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<SelectAllResolvedIdsResult> selectAllResolvedIds (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, String sessionPrefix, String bulkResolutionTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(selectAllResolvedIds, new String[] {sessionPrefix, bulkResolutionTableName},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<SelectAllResolvedIdsResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<SelectAllResolvedIdsResult>(rs, ps, stmtProvider, transformSelectAllResolvedIds); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"selectAllResolvedIds",stmtProvider.getSqlString(selectAllResolvedIds) ,"",""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[selectAllResolvedIds]"+endtimer); } } /** *Default implementation of SelectAllResolvedIdsResult */ public static class SelectAllResolvedIdsResult { /**Value for the "rowid" result value*/ private Integer rowid; /**Value for the "id" result value*/ private Long id; /** *Get Rowid value *@return Rowid value */ public Integer getRowid() { return this.rowid; } /** *Get Id value *@return Id value */ public Long getId() { return this.id; } } /** * Runs the purge prepared statement. * <code> * DELETE FROM {0} WHERE TRANSACTIONID=? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param transactionId template parameter * *@param lockIdTable template parameter *@return int *@throws org.openanzo.jdbc.utils.RdbException */ public static int purge (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, String lockIdTable) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(purge, new String[] {lockIdTable},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,"purge",stmtProvider.getSqlString(purge) ,""+ "transactionId="+(transactionId),""+ "lockIdTable="+((lockIdTable!=null)?lockIdTable.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("[purge]"+endtimer); } } /** *Batch operation for adding parameters to the Purge prepared statement */ public static class BatchPurge extends org.openanzo.jdbc.utils.PreparedStatementExecutor { /** * Batch operation for adding parameters to the Purge prepared statement * @param connection Connection to execute * @param provider Prepared statement provider * *@param lockIdTable template parameter * @throws org.openanzo.jdbc.utils.RdbException */ public BatchPurge(java.sql.Connection connection, org.openanzo.jdbc.utils.PreparedStatementProvider provider, String lockIdTable) throws org.openanzo.jdbc.utils.RdbException { super(connection,provider,purge,new String[] {lockIdTable}); } /** * Sets the input parameters for the purge 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 resolveIdsLiteral prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<ResolveIdsLiteralResult> transformResolveIdsLiteral = new org.openanzo.jdbc.utils.Transformer<ResolveIdsLiteralResult>(){ public ResolveIdsLiteralResult transform(java.sql.ResultSet rs) { ResolveIdsLiteralResult result = new ResolveIdsLiteralResult(); 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.value=rs.getString(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } try { result.modifierId=rs.getLong(3); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:modifierId",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the resolveIdsLiteral prepared statement. * <code> * SELECT {2}.ID,{2}.VALUE,{2}.MODIFIER_ID FROM {2},{0}{1} WHERE {2}.ID ={0}{1}.ID AND {0}{1}.ID>=? AND {0}{1}.ID < ? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param startId template parameter *@param endId template parameter * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<ResolveIdsLiteralResult> resolveIdsLiteral (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long startId, long endId, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveIdsLiteral, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName},connection); int argc = 1; ps.setLong(argc++, startId); ps.setLong(argc++, endId); 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<ResolveIdsLiteralResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<ResolveIdsLiteralResult>(rs, ps, stmtProvider, transformResolveIdsLiteral); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"resolveIdsLiteral",stmtProvider.getSqlString(resolveIdsLiteral) ,""+ "startId="+(startId) + "," +"endId="+(endId),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[resolveIdsLiteral]"+endtimer); } } /** *Default implementation of ResolveIdsLiteralResult */ public static class ResolveIdsLiteralResult { /**Value for the "id" result value*/ private Long id; /**Value for the "value" result value*/ private String value; /**Value for the "modifierId" result value*/ private long modifierId; /** *Get Id value *@return Id value */ public Long getId() { return this.id; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } /** *Get ModifierId value *@return ModifierId value */ public long getModifierId() { return this.modifierId; } } /** * Transformer that transforms the rows in the result set for the resolveTransactedIdsLiteral prepared statement. */ static final org.openanzo.jdbc.utils.Transformer<ResolveTransactedIdsLiteralResult> transformResolveTransactedIdsLiteral = new org.openanzo.jdbc.utils.Transformer<ResolveTransactedIdsLiteralResult>(){ public ResolveTransactedIdsLiteralResult transform(java.sql.ResultSet rs) { ResolveTransactedIdsLiteralResult result = new ResolveTransactedIdsLiteralResult(); 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.value=rs.getString(2); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:value",e); throw new org.apache.commons.collections.FunctorException(e); } try { result.modifierId=rs.getLong(3); } catch (java.sql.SQLException e) { log.error(org.openanzo.exceptions.LogUtils.RDB_MARKER,"Error transforming result set param:modifierId",e); throw new org.apache.commons.collections.FunctorException(e); } return result; } }; /** * Runs the resolveTransactedIdsLiteral prepared statement. * <code> * SELECT {2}.ID,{2}.VALUE,{2}.MODIFIER_ID FROM {2},{0}{1} WHERE {0}{1}.TRANSACTIONID=? AND {2}.ID ={0}{1}.ID AND {0}{1}.ID>=? AND {0}{1}.ID < ? * </code> * *@param stmtProvider * factory and cache of PreparedStatments *@param connection * connection to underlying database * *@param transactionId template parameter *@param startId template parameter *@param endId template parameter * *@param sessionPrefix template parameter *@param bulkResolutionTableName template parameter *@param nodeTableName template parameter *@return org.openanzo.jdbc.utils.ClosableIterator *@throws org.openanzo.jdbc.utils.RdbException */ public static org.openanzo.jdbc.utils.ClosableIterator<ResolveTransactedIdsLiteralResult> resolveTransactedIdsLiteral (final org.openanzo.jdbc.utils.PreparedStatementProvider stmtProvider,final java.sql.Connection connection, long transactionId, long startId, long endId, String sessionPrefix, String bulkResolutionTableName, String nodeTableName) throws org.openanzo.jdbc.utils.RdbException{ java.sql.PreparedStatement ps = null; //long startTimer=System.currentTimeMillis(); try { ps = stmtProvider.getPreparedSQLStatement(resolveTransactedIdsLiteral, new String[] {sessionPrefix, bulkResolutionTableName, nodeTableName},connection); int argc = 1; ps.setLong(argc++, transactionId); ps.setLong(argc++, startId); ps.setLong(argc++, endId); 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<ResolveTransactedIdsLiteralResult> iter = new org.openanzo.jdbc.utils.ResultSetIterator<ResolveTransactedIdsLiteralResult>(rs, ps, stmtProvider, transformResolveTransactedIdsLiteral); return iter; } catch (java.sql.SQLException e) { throw new org.openanzo.jdbc.utils.RdbException(org.openanzo.exceptions.ExceptionConstants.RDB.FAILED_EXECUTING_SQL,e,"resolveTransactedIdsLiteral",stmtProvider.getSqlString(resolveTransactedIdsLiteral) ,""+ "transactionId="+(transactionId) + "," +"startId="+(startId) + "," +"endId="+(endId),""+ "sessionPrefix="+((sessionPrefix!=null)?sessionPrefix.toString():"null") + "," +"bulkResolutionTableName="+((bulkResolutionTableName!=null)?bulkResolutionTableName.toString():"null") + "," +"nodeTableName="+((nodeTableName!=null)?nodeTableName.toString():"null")); } finally { //long endtimer=(System.currentTimeMillis()-startTimer); //if(endtimer>CUTOFF)System.out.println("[resolveTransactedIdsLiteral]"+endtimer); } } /** *Default implementation of ResolveTransactedIdsLiteralResult */ public static class ResolveTransactedIdsLiteralResult { /**Value for the "id" result value*/ private Long id; /**Value for the "value" result value*/ private String value; /**Value for the "modifierId" result value*/ private Long modifierId; /** *Get Id value *@return Id value */ public Long getId() { return this.id; } /** *Get Value value *@return Value value */ public String getValue() { return this.value; } /** *Get ModifierId value *@return ModifierId value */ public Long getModifierId() { return this.modifierId; } } }