package net.sf.tpox.databaseoperations; import java.io.FileWriter; import java.sql.Connection; import java.util.Arrays; import java.util.Hashtable; import java.util.Random; import java.util.Vector; import org.slf4j.Logger; import org.slf4j.LoggerFactory; //import com.bagri.xdm.cache.CoherenceDataManager; import net.sf.tpox.databaseoperations.GenericDatabaseOperations; import net.sf.tpox.workload.core.WorkloadProcessor; import net.sf.tpox.workload.util.WorkloadEnvironment; public class DatabaseOperations implements GenericDatabaseOperations { private static final transient Logger logger = LoggerFactory.getLogger(DatabaseOperations.class); private static int numOfTrans; public static final ThreadLocal<int[]> errors = new ThreadLocal<int[]>() { @Override protected int[] initialValue() { int[] ea = new int[numOfTrans]; Arrays.fill(ea, 0); return ea; } }; public DatabaseOperations(WorkloadProcessor workloadProcessor, WorkloadEnvironment workloadEnvironment, String databaseSystem, String databaseName, String schema, String host, String port, String userID, String password, int verbosityLevel, int numOfTransactions, FileWriter userFileWriter, Random randomNumGenerator) { logger.debug("<init>. WP: {}; WE: {}; DBS: {}; dbName: {}; schema: {}; host: {}; port: {}; user: {}; pwd: {}; level: {}; numTrans: {}", workloadProcessor, workloadEnvironment, databaseSystem, databaseName, schema, host, port, userID, "*****", verbosityLevel, numOfTransactions); numOfTrans = numOfTransactions; errors.get(); if (host != null) { System.setProperty("tangosol.coherence.proxy.address", host); } if (port != null) { System.setProperty("tangosol.coherence.proxy.port", port); } if (schema != null) { System.setProperty("tangosol.coherence.cacheconfig", schema); } //this.connection = null; //this.workloadEnvironment = workloadEnvironment; //this.workloadProcessor = workloadProcessor; //this.userFileWriter = userFileWriter; //this.databaseSystem = databaseSystem; //this.databaseName = databaseName; //this.schema = schema; // FR # 1737929 //this.host = host; //this.port = port; //this.userID = userID; //this.password = password; //this.verbosityLevel = verbosityLevel; //this.deadlocksPerTransaction = new int[numOfTransactions]; //this.randomNumGenerator = randomNumGenerator; } public static void initAdminConnection(String dbName, String host, String port, String userID, String pwd) { logger.debug("initAdminConnection. dbName: {}; host: {}; port: {}; userId: {}; pwd: {}, skipping", dbName, host, port, userID, "*****"); // pwd //throw new UnsupportedOperationException("Not implemented in Bagri DB."); } public static Hashtable<String, String> getInstInfo() { return new Hashtable<>(0); //throw new UnsupportedOperationException("Not implemented in Bagri DB."); } @Override public void closeConnection() { //logger.trace("closeConnection"); } @Override public void closePreparedStatements() { //logger.trace("closePreparedStatements"); } @Override public void commitChanges() { //logger.trace("commitChanges"); } @Override public void establishConnection() { //logger.trace("establishConnection"); } @Override public int executeTransaction(Vector<String> transactionStatements, int transNum) { //logger.trace("executeTransaction.enter; stmts: {}; transNo: {}", transactionStatements, transNum); return 0; } @Override public Connection getConnection() { //logger.trace("getConnection.enter"); return null; } @Override public int getDeadlocksForTransaction(int transNum) { //logger.trace("getDeadlocksForTransaction.enter; transNum: {}", transNum); return errors.get()[transNum]; } @Override public Vector<Integer>[] getParameterMarkerCounts() { //logger.trace("getParameterMarkerCounts"); return null; } @Override public String getTextForDisplayingLastActualValues() { //logger.trace("getTextForDisplayingLastActualValues"); return null; } @Override public void prepareStatements() { //logger.trace("prepareStatements"); } }