public static void createValidationSchema(Properties props) {
		int machineid = Integer.parseInt(props.getProperty(Client.MACHINE_ID_PROPERTY,Client.MACHINE_ID_PROPERTY_DEFAULT));
		Connection conn = null;
		Statement stmt = null;
		String url = props.getProperty(VALIDATION_DBURL_PROPERTY,
				VALIDATION_DBURL_PROPERTY_DEFAULT);
		String user = props.getProperty(VALIDATION_DBUSER_PROPERTY, VALIDATION_DBUSER_PROPERTY_DEFAULT);
		String passwd = props.getProperty(VALIDATION_DBPWD_PROPERTY, VALIDATION_DBPWD_PROPERTY_DEFAULT);
		String driver = props.getProperty(VALIDATION_DBDRIVER_PROPERTY,
				VALIDATION_DBDRIVER_PROPERTY_DEFAULT);

		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, user, passwd);
		} catch (Exception e) {
			e.printStackTrace(System.out);
		}

		String tenant = props.getProperty(DB_TENANT_PROPERTY, DB_TENANT_PROPERTY_DEFAULT);
		int threadCount = Integer.parseInt(props.getProperty(Client.THREAD_CNT_PROPERTY, Client.THREAD_CNT_PROPERTY_DEFAULT));

		try {
			stmt = conn.createStatement();
			int count = 1;
			if(tenant.equalsIgnoreCase("single")) //create one read1 and one write1 table 
				count=1;
			else
				count = threadCount; //create a read and a write table per thread

			for(int i=1; i<=count; i++){
				dropSequence(stmt, "UPDATECNT"+machineid+"c"+i);
				dropTable(stmt, "TUPDATE"+machineid+"c"+i);
				stmt.executeUpdate("CREATE SEQUENCE  UPDATECNT"+machineid+"c"+i+"  MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER  NOCYCLE");
				stmt.executeUpdate("CREATE TABLE TUPDATE"+machineid+"c"+i
						+ "(	OPTYPE VARCHAR(20), UPDATEID NUMBER,SEQID NUMBER,"
						+ "THREADID NUMBER,"
						+ "RID NUMBER, STARTTIME VARCHAR2(20),"
						+ "ENDTIME VARCHAR2(20), NUMOFUPDATE NUMBER, UPDATETYPE VARCHAR2(20)"
						+ ") NOLOGGING");

				stmt.executeUpdate("ALTER TABLE TUPDATE"+machineid+"c"+i+" MODIFY (UPDATEID NOT NULL ENABLE)");
				stmt.executeUpdate("ALTER TABLE TUPDATE"+machineid+"c"+i+" MODIFY (THREADID NOT NULL ENABLE)");
				stmt.executeUpdate("ALTER TABLE TUPDATE"+machineid+"c"+i+" MODIFY (RID NOT NULL ENABLE)");


				stmt.executeUpdate("CREATE OR REPLACE TRIGGER UPDATEINC"+machineid+"c"+i+" before insert on tupdate"+machineid+"c"+i+" "
						+ "for each row "
						+ "WHEN (new.updateid is null) begin "
						+ "select updateCnt"+machineid+"c"+i+".nextval into :new.updateid from dual;"
						+ "end;");
				stmt.executeUpdate("ALTER TRIGGER UPDATEINC"+machineid+"c"+i+" ENABLE");
			}

		} catch (SQLException e) {
			e.printStackTrace(System.out);
		} finally {
			if (stmt != null){
				try {
					stmt.close();
				} catch (SQLException e) {
					e.printStackTrace(System.out);
				}
			}

			if (conn != null){
				try {
					conn.close();
				} catch (SQLException e) {
					e.printStackTrace(System.out);
				}
			}

		}
	}