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