| | |
| | | package com.ximple.eofms.jobs; |
| | | |
| | | import java.sql.SQLException; |
| | | import java.sql.Connection; |
| | | import java.sql.SQLException; |
| | | import java.util.Date; |
| | | |
| | | import org.apache.commons.logging.Log; |
| | |
| | | import org.quartz.JobExecutionContext; |
| | | import org.quartz.JobExecutionException; |
| | | |
| | | import oracle.jdbc.OracleConnection; |
| | | import oracle.jdbc.OracleDatabaseMetaData; |
| | | import oracle.jdbc.OracleStatement; |
| | | |
| | | import com.ximple.eofms.jobs.context.AbstractOracleJobContext; |
| | | import com.ximple.eofms.jobs.context.OracleUpgradeJobContext; |
| | | |
| | | public class OracleUpgradeBlob2UDTJob extends AbstractOracleDatabaseJob |
| | | { |
| | | public class OracleUpgradeBlob2UDTJob extends AbstractOracleDatabaseJob { |
| | | static Log logger = LogFactory.getLog(OracleUpgradeBlob2UDTJob.class); |
| | | |
| | | public void execute(JobExecutionContext context) throws JobExecutionException |
| | | { |
| | | public void execute(JobExecutionContext context) throws JobExecutionException { |
| | | // Every job has its own job detail |
| | | JobDetail jobDetail = context.getJobDetail(); |
| | | |
| | | // The name is defined in the job definition |
| | | String jobName = jobDetail.getName(); |
| | | String jobName = jobDetail.getKey().getName(); |
| | | String targetSchemaName = null; |
| | | |
| | | // Log the time the job started |
| | | logger.info(jobName + " fired at " + new Date()); |
| | | extractJobConfiguration(jobDetail); |
| | | createSourceDataStore(); |
| | | if (getSourceDataStore() == null) |
| | | { |
| | | if (getSourceDataStore() == null) { |
| | | throw new JobExecutionException("Cannot connect source oracle database."); |
| | | } |
| | | |
| | | AbstractOracleJobContext jobContext = prepareJobContext(targetSchemaName, _filterPath); |
| | | AbstractOracleJobContext jobContext = prepareJobContext(targetSchemaName, _filterPath, isProfileMode(), |
| | | isTransformed()); |
| | | jobContext.setSourceDataStore(getSourceDataStore()); |
| | | |
| | | try |
| | | { |
| | | for (String orgSchema : _orgSchema) |
| | | { |
| | | try { |
| | | for (String orgSchema : _orgSchema) { |
| | | exetcuteConvert(jobContext, orgSchema, _dataPath); |
| | | } |
| | | } catch (SQLException e) |
| | | { |
| | | } catch (SQLException e) { |
| | | throw new JobExecutionException("Database error.", e); |
| | | } |
| | | } |
| | | |
| | | public Log getLogger() |
| | | { |
| | | public Log getLogger() { |
| | | return logger; |
| | | } |
| | | |
| | | protected AbstractOracleJobContext prepareJobContext(String targetSchemaName, String filterPath) |
| | | { |
| | | return new OracleUpgradeJobContext(); |
| | | protected AbstractOracleJobContext prepareJobContext(String targetSchemaName, String filterPath, |
| | | boolean profileMode, |
| | | boolean useTransform) { |
| | | return new OracleUpgradeJobContext(profileMode, useTransform); |
| | | } |
| | | |
| | | private void exetcuteConvert(AbstractOracleJobContext jobContext, |
| | | String orgSchema, String dataPath) throws SQLException |
| | | { |
| | | String orgSchema, String dataPath) throws SQLException { |
| | | Connection connection = jobContext.getOracleConnection(); |
| | | OracleDatabaseMetaData metaData = (OracleDatabaseMetaData) connection.getMetaData(); |
| | | OracleStatement statement = (OracleStatement) connection.createStatement(); |