From 068dadebf60870668d86ad9bc4ba85d2751582e3 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Mon, 05 May 2008 15:06:01 +0800
Subject: [PATCH] update for EOFM-72

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java |   44 ++++++++++++++++++++++++++++++--------------
 1 files changed, 30 insertions(+), 14 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java
index eb57abf..7cf0442 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java
@@ -82,17 +82,23 @@
         logger.info(jobName + " fired at " + new Date());
         extractJobConfiguration(jobDetail);
 
-        OracleConvertJobContext jobContext = (OracleConvertJobContext) prepareJobContext(_filterPath);
-        jobContext.setConnectionInfo(_oracleHost, _oraclePort, _oracleInstance);
-        jobContext.setLogin(_username, _password);
-        jobContext.setShapeData(_dataPath);
-        jobContext.setExecutionContext(context);
-
         try
         {
-            copyConnectivity(jobContext);
+            boolean bFirst = true;
             for (String orgSchema : _orgSchema)
             {
+                OracleConvertJobContext jobContext = (OracleConvertJobContext) prepareJobContext(_filterPath);
+                jobContext.setConnectionInfo(_oracleHost, _oraclePort, _oracleInstance);
+                jobContext.setLogin(_username, _password);
+                jobContext.setShapeData(_dataPath);
+                jobContext.setExecutionContext(context);
+
+                if (bFirst)
+                    copyConnectivity(jobContext);
+                else
+                    bFirst = false;
+
+                logger.info("----- start schema:" + orgSchema + " -----");
                 exetcuteConvert(jobContext, orgSchema, _dataPath);
 
                 //close all open filewriter instance
@@ -101,12 +107,12 @@
         } catch (SQLException e)
         {
             logger.warn(e.getMessage(), e);
-            throw new JobExecutionException("Database error.", e);
+            throw new JobExecutionException("Database error. " + e.getMessage(), e);
         } catch (IOException ex)
         {
-            ex.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+            logger.warn(ex.getMessage(), ex);
+            throw new JobExecutionException("IO error. " + ex.getMessage(), ex);
         }
-
     }
 
     //Connectivity�ƻs�@�Ӫ����A�b�d�߹q�y��V�ɥΨӤ��OMS��Ʈw���q���s����(Connectivity)
@@ -185,10 +191,13 @@
         PrintfFormat spf = new PrintfFormat(fetchStmtFmt);
         String fetchStmt = spf.sprintf(new Object[]{schemaSrc, tableSrc});
         Statement stmt = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
+        ResultSet rs = null;
 
         stmt.setFetchSize(FETCHSIZE);
 
-        ResultSet rs = stmt.executeQuery(fetchStmt);
+        try
+        {
+            rs = stmt.executeQuery(fetchStmt);
 
         while (rs.next())
         {
@@ -209,9 +218,16 @@
             else
                 pair.first = name;
         }
-
-        rs.close();
-        stmt.close();
+        } catch (SQLException e)
+        {
+            logger.error(e.toString(), e);
+            logger.error("stmt=" + fetchStmt);
+            throw e;
+        } finally
+        {
+            if (rs != null) rs.close();
+            stmt.close();
+        }
 
         return orderedMap;
     }

--
Gitblit v0.0.0-SNAPSHOT