From 7c489a7b30ed09100ad58fedb7e40281f823e91d Mon Sep 17 00:00:00 2001 From: Dennis Kao <ulysseskao@gmail.com> Date: Thu, 26 Sep 2013 18:51:16 +0800 Subject: [PATCH] update for dist id --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java | 92 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 85 insertions(+), 7 deletions(-) diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java index d063e1c..3e1839e 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java @@ -5,16 +5,21 @@ import java.io.InputStream; import java.nio.BufferOverflowException; import java.nio.ByteBuffer; +import java.sql.Connection; +import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Statement; import java.util.ArrayList; import java.util.Map; import java.util.StringTokenizer; import java.util.TreeMap; +import com.vividsolutions.jts.util.Assert; +import com.ximple.eofms.jobs.context.AbstractOracleJobContext; import com.ximple.eofms.util.FeatureTypeBuilderUtil; +import oracle.sql.BLOB; import org.apache.commons.logging.Log; import org.geotools.data.DataStore; -import org.geotools.data.DataStoreFinder; import org.geotools.data.oracle.OracleNGDataStoreFactory; import org.geotools.jdbc.JDBCDataStore; import org.quartz.Job; @@ -22,12 +27,6 @@ import org.quartz.JobDetail; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; - -import com.vividsolutions.jts.util.Assert; - -import oracle.sql.BLOB; - -import com.ximple.eofms.jobs.context.AbstractOracleJobContext; public abstract class AbstractOracleDatabaseJob implements Job { /** @@ -443,4 +442,83 @@ public final void resetUpdateTime() { _updateTime = 0; } + + /** + * Connectivity (Connectivity) + * + * @param jobContext job context + * @throws java.sql.SQLException sql exception + */ + protected void copyConnectivity(AbstractOracleJobContext jobContext) throws SQLException { + Connection connection = jobContext.getOracleConnection(); + ResultSet rsMeta = connection.getMetaData().getTables(null, "BASEDB", + AbstractOracleJobContext.CONNECTIVITY_WEBCHECK_NAME + "%", + new String[]{"TABLE"}); + + boolean found = false; + try { + while (rsMeta.next()) { + String tablename = rsMeta.getString(3); + if (AbstractOracleJobContext.CONNECTIVITY_WEBCHECK_NAME.equalsIgnoreCase(tablename)) { + found = true; + break; + } + } + // } catch (SQLException e) + } finally { + if (rsMeta != null) { + rsMeta.close(); + rsMeta = null; + } + } + Statement stmt = connection.createStatement(); + if (found) { + stmt.execute(AbstractOracleJobContext.TRUNCATE_CONNECTIVITY_WEBCHECK); + } else { + getLogger().info("Create CONNECTIVITY_WEBCHECK table."); + stmt.execute(AbstractOracleJobContext.CREATE_CONNECTIVITY_WEBCHECK); + stmt.execute(AbstractOracleJobContext.CREATE_CONNECTIVITY_WEBCHECK_INDEX_1); + stmt.execute(AbstractOracleJobContext.CREATE_CONNECTIVITY_WEBCHECK_INDEX_2); + stmt.execute(AbstractOracleJobContext.CREATE_CONNECTIVITY_WEBCHECK_INDEX_3); + stmt.execute(AbstractOracleJobContext.CREATE_CONNECTIVITY_WEBCHECK_INDEX_4); + stmt.execute(AbstractOracleJobContext.CREATE_CONNECTIVITY_WEBCHECK_INDEX_5); + stmt.execute(AbstractOracleJobContext.CREATE_CONNECTIVITY_WEBCHECK_INDEX_6); + stmt.execute(AbstractOracleJobContext.ALTER_CONNECTIVITY_WEBCHECK_1); + stmt.execute(AbstractOracleJobContext.ALTER_CONNECTIVITY_WEBCHECK_2); + } + + stmt.execute(AbstractOracleJobContext.COPY_CONNECTIVITY_TO_WEBCHECK); + stmt.close(); + } + + protected void fetchTPData(AbstractOracleJobContext jobContext) { + Connection connection = jobContext.getOracleConnection(); + + try { + Statement stmt = connection.createStatement(); + ResultSet rs = stmt.executeQuery(AbstractOracleJobContext.FETCH_TPDATA); + short disId = rs.getShort(1); + jobContext.setDistId(disId); + + String distName = rs.getString(2); + jobContext.setDistName(distName); + + rs.close(); + stmt.close(); + } catch (SQLException e) { + getLogger().warn("HIBERNATE_SEQUENCE is already exist."); + } + } + + protected void createHibernateSequence(AbstractOracleJobContext jobContext) throws SQLException { + Connection connection = jobContext.getOracleConnection(); + + try { + Statement stmt = connection.createStatement(); + stmt.execute(AbstractOracleJobContext.CREATE_HIBERNATE_SEQUENCE); + stmt.close(); + } catch (SQLException e) { + getLogger().warn("HIBERNATE_SEQUENCE is already exist."); + } + } } -- Gitblit v0.0.0-SNAPSHOT