--修复抽取bug

web_backend_develope
wu ming 10 years ago
parent bf3fcb267f
commit f08b57e3d7

@ -83,30 +83,30 @@ oracle-psw=oracle
# windows path
#=============================================================================================================
#extract-log-localtion=D:\\test\\log\\
#extract-standard-log-localtion=D:\\test\\log2\\
#
#file_upload_path=D:\\test\\
#file_download_path=D:\\test\\export.xlsx
#
#package_download_path=D:\\test\\
#package_name=sql_script_standard
#
#sql_script_path_last=D:\\test\\sql_script_last\\
#sql_script_path_standard=D:\\test\\sql_script_standard\\
extract-log-localtion=D:\\test\\log\\
extract-standard-log-localtion=D:\\test\\log2\\
#=============================================================================================================
# linux path
#=============================================================================================================
file_upload_path=D:\\test\\
file_download_path=D:\\test\\export.xlsx
extract-log-localtion=/home/web_manage/log/
extract-standard-log-localtion=/home/web_manage/log2/
package_download_path=D:\\test\\
package_name=sql_script_standard
file_upload_path=/excel_import_dir/
file_download_path=/excel_export_dir/export.xlsx
sql_script_path_last=D:\\test\\sql_script_last\\
sql_script_path_standard=D:\\test\\sql_script_standard\\
package_download_path=/
package_name=DefaultDescription
#=============================================================================================================
# linux path
#=============================================================================================================
sql_script_path_last=/DefaultDescription_last/
sql_script_path_standard=/DefaultDescription/
#extract-log-localtion=/home/web_manage/log/
#extract-standard-log-localtion=/home/web_manage/log2/
#
#file_upload_path=/excel_import_dir/
#file_download_path=/excel_export_dir/export.xlsx
#
#package_download_path=/
#package_name=DefaultDescription
#
#sql_script_path_last=/DefaultDescription_last/
#sql_script_path_standard=/DefaultDescription/

File diff suppressed because it is too large Load Diff

@ -0,0 +1,32 @@
package com.platform.entities;
public abstract class AbstractOracleExtractTask implements BasedTask {
private String name;
private int status; // 任务的执行状态,0未执行1执行中2完成3失败
public AbstractOracleExtractTask() {
}
public AbstractOracleExtractTask(String name) {
this.name = name;
}
public abstract void handler();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}

@ -0,0 +1,5 @@
package com.platform.entities;
public interface BasedTask {
public void handler();
}

@ -0,0 +1,15 @@
package com.platform.entities;
public class OracleExtractExecuter implements Runnable {
private BasedTask task;
public OracleExtractExecuter(BasedTask task) {
this.task = task;
}
@Override
public void run() {
if (null != task)
task.handler();
}
}

@ -14,13 +14,14 @@ import com.platform.entities.OracleConnectorParams;
import com.platform.utils.Configs;
import com.platform.utils.FileOperateHelper;
public class OracleConnector {
public static Logger log = Configs.DAILY_ROLLING_LOGGER.getLogger(OracleConnector.class);
public class OracleConnector {
public static Logger log = Configs.DAILY_ROLLING_LOGGER
.getLogger(OracleConnector.class);
public OracleConnector() {
}
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
@ -28,26 +29,29 @@ public class OracleConnector {
} catch (ClassNotFoundException e) {
log.error(Custom4exception.OracleSQL_Except, e);
}
}
}
public synchronized static Connection connectionBuilder(String url, String user,
String password, OracleConnectorParams oc) throws CustomException {
Connection conn=null;
public synchronized static Connection connectionBuilder(String url,
String user, String password, OracleConnectorParams oc)
throws CustomException {
Connection conn = null;
try {
conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage() + "]");
} catch (SQLException e) {
Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage()
+ "]");
if (null != oc) {
FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION
+ oc.getName()+".log", "创建oracle连接失败: [" + e.getMessage() + "]\r\n");
FileOperateHelper.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName() + ".log",
"创建oracle连接失败: [" + e.getMessage() + "]\r\n");
}
throw new CustomException(Custom4exception.OracleSQL_Except, e);
}
return conn;
}
public synchronized static boolean canConnect(String url, String user, String password) {
public synchronized static boolean canConnect(String url, String user,
String password) {
Connection result = null;
try {
result = connectionBuilder(url, user, password, null);
@ -57,25 +61,27 @@ public class OracleConnector {
return (null != result);
}
public synchronized static ResultSet getSQLExecResultSet(Connection conn, String sql, String filePath) {
public synchronized static ResultSet getSQLExecResultSet(Connection conn,
String sql, String filePath) {
ResultSet resultSet = null;
if (null != filePath) {
filePath = filePath.replace(".log", "");
}
Statement statement = null;
try {
statement = conn
.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
resultSet = statement.executeQuery(sql);
FileOperateHelper
.fileWrite(filePath+".log", sql+ "\r\n"+"OK \r\n");
/*
* if(resultSet.next()){ System.out.println(resultSet.getInt(1)); }
*/
FileOperateHelper.fileWrite(filePath + ".log", sql + "\r\n"
+ "OK \r\n");
} catch (SQLException e) {
FileOperateHelper
.fileWrite(filePath+".log", sql+ "\r\n"+e.getMessage()+"\r\n");
FileOperateHelper.fileWrite(filePath + ".log",
sql + "\r\n" + e.getMessage() + "\r\n");
log.error(Custom4exception.OracleSQL_Except, e);
}
finally{
} finally {
if (null != statement) {
try {
statement.close();
@ -88,11 +94,12 @@ public class OracleConnector {
return resultSet;
}
public synchronized static ResultSet getSQLExecResultSet(String url, String user,
String password, String sql, String filePath) {
ResultSet result = null;
public synchronized static ResultSet getSQLExecResultSet(String url,
String user, String password, String sql, String filePath) {
ResultSet result = null;
try {
result = getSQLExecResultSet(connectionBuilder(url, user, password, null), sql, filePath);
result = getSQLExecResultSet(
connectionBuilder(url, user, password, null), sql, filePath);
} catch (CustomException e) {
log.error(Custom4exception.OracleSQL_Except, e);
}
@ -101,11 +108,13 @@ public class OracleConnector {
/**
* oracle
*
* @param conn
* @param sql
* @return true:sql
* @return true:sql
*/
public synchronized static boolean execOracleSQL(Connection conn, String sql, String filePath) {
public synchronized static boolean execOracleSQL(Connection conn,
String sql, String filePath) {
if (null != filePath) {
filePath = filePath.replace(".log", "");
}
@ -113,16 +122,16 @@ public class OracleConnector {
Statement statement = null;
try {
statement = conn.createStatement();
flag =statement.execute(sql);
FileOperateHelper
.fileWrite(filePath+".log", sql+ "\r\n"+ flag +" \r\n");
statement.executeUpdate(sql);
flag = true;
FileOperateHelper.fileWrite(filePath + ".log", sql + "\r\n" + flag
+ " \r\n");
} catch (SQLException e) {
flag = false;
FileOperateHelper
.fileWrite(filePath+".log", sql+ "\r\n"+e.getMessage()+"\r\n");
FileOperateHelper.fileWrite(filePath + ".log",
sql + "\r\n" + e.getMessage() + "\r\n");
log.error(Custom4exception.OracleSQL_Except, e);
}
finally{
} finally {
if (null != statement) {
try {
statement.close();
@ -132,15 +141,18 @@ public class OracleConnector {
}
}
return flag;
return flag ;
}
/**
* oraclesql
*
* @param conn
* @param sql
* @return true:1
* @return true:1
*/
public synchronized static boolean execUpdateOracleSQL(Connection conn, String sql, String filePath) {
public synchronized static boolean execUpdateOracleSQL(Connection conn,
String sql, String filePath) {
if (null != filePath) {
filePath = filePath.replace(".log", "");
}
@ -148,19 +160,17 @@ public class OracleConnector {
Statement statement = null;
try {
statement = conn.createStatement();
if(statement.executeUpdate(sql) > 0)
{
flag = true;
FileOperateHelper
.fileWrite(filePath+".log", sql+ "\r\n"+"OK \r\n");
}
statement.executeUpdate(sql);
flag = true;
FileOperateHelper.fileWrite(filePath + ".log", sql + "\r\n"
+ "OK \r\n");
} catch (SQLException e) {
flag = false;
FileOperateHelper
.fileWrite(filePath+".log", sql+ "\r\n"+e.getMessage()+"\r\n");
FileOperateHelper.fileWrite(filePath + ".log",
sql + "\r\n" + e.getMessage() + "\r\n");
log.error(Custom4exception.OracleSQL_Except, e);
}
finally{
} finally {
if (null != statement) {
try {
statement.close();

@ -32,5 +32,11 @@ public interface IOracleExtractService {
*/
boolean extractStandardTable(String name, List<OracleConnectorParams> dataInfolist,
GatherOracleInfo oracleConnect) throws Exception;
/**
*
* @param ocp
*/
public void updateDataExtractStatus(OracleConnectorParams ocp, int status);
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,107 @@
package com.platform.service;
import java.sql.Connection;
import java.util.Date;
import java.util.List;
import org.apache.log4j.Logger;
import com.base.Custom4exception;
import com.platform.entities.AbstractOracleExtractTask;
import com.platform.entities.GatherOracleInfo;
import com.platform.entities.OracleConnectorParams;
import com.platform.oracle.OracleConnector;
import com.platform.utils.Configs;
import com.platform.utils.Constant;
import com.platform.utils.DateForm;
import com.platform.utils.FileOperateHelper;
public class OracleExtractTask extends AbstractOracleExtractTask {
public static Logger log = Logger.getLogger(OracleExtractTask.class);
private GatherOracleInfo gatherOracleInfo;
private OracleConnectorParams oc;
private IOracleExtractService OracleExtract;
public OracleExtractTask(String name, GatherOracleInfo gatherOracleInfo,
OracleConnectorParams oc, IOracleExtractService OracleExtract) {
super(name);
this.gatherOracleInfo = gatherOracleInfo;
this.oc = oc;
this.OracleExtract = OracleExtract;
}
public OracleExtractTask(GatherOracleInfo gatherOracleInfo,
OracleConnectorParams oc, IOracleExtractService OracleExtract) {
this.gatherOracleInfo = gatherOracleInfo;
this.oc = oc;
this.OracleExtract = OracleExtract;
}
private OracleExtractHelper oracleExtract = new OracleExtractHelper();
@Override
public void handler() {
// TODO Auto-generated method stub
try {
Connection conn = OracleConnector.connectionBuilder(
createConnectUrl(), gatherOracleInfo.getUser(),
gatherOracleInfo.getPassword(), oc);
if (null != conn) {
String cmd = "kubectl label --overwrite rc " + oc.getName()
+ " isExtract=1";
OracleExtract.updateDataExtractStatus(oc, 1); // 更新数据库的状态
FileOperateHelper
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName()
+ ".log",
"["
+ DateForm
.date2StringBysecond(new Date())
+ "]>>>>>>>>>>>>>>>>开始汇总 >>>>>>>>>>>>>>>>>>\r\n");
List<String> rList = Constant.ganymedSSH
.execCmdWaitAcquiescent(cmd);
StringBuffer sb = new StringBuffer();
for (String string : rList)
sb.append(string).append("\n");
Configs.CONSOLE_LOGGER.info(sb.toString());
oracleExtract.createDBLink(conn, oc); // 创建dblink
oracleExtract.createTableSpace(conn, oc, gatherOracleInfo); // 创建表空间
oracleExtract.createUser(conn, oc, gatherOracleInfo);// 创建用户并授权
oracleExtract.extractColleDB(conn, oc, gatherOracleInfo);// 执行抽取
cmd = "kubectl label --overwrite rc " + oc.getName()
+ " isExtract=2";
rList = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
sb = new StringBuffer();
for (String string : rList)
sb.append(string).append("\n");
Configs.CONSOLE_LOGGER.info(sb.toString());
FileOperateHelper
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName()
+ ".log",
"["
+ DateForm
.date2StringBysecond(new Date())
+ "]>>>>>>>>>>>>>>>>汇总结束 >>>>>>>>>>>>>>>>>>\r\n\r\n");
OracleExtract.updateDataExtractStatus(oc, 2); // 更新数据库的状态
}
} catch (Exception e) {
log.error(Custom4exception.OracleSQL_Except, e);
}
}
private String createConnectUrl() {
String answer = "";
if (null != gatherOracleInfo) {
answer = "jdbc:oracle:thin:@" + gatherOracleInfo.getIp() + ":"
+ gatherOracleInfo.getPort() + ":"
+ gatherOracleInfo.getDatabaseName();
}
return answer;
}
}

@ -12,7 +12,7 @@ public class LogReadServiceImpl implements ILogRead {
@Override
public String readLog(String filename) throws Exception {
String result = FileOperateHelper.fileReader(Configs.EXTRACT_LOG_LOCALTION + "J" + filename.replace("-", "_")+".log");
String result = FileOperateHelper.fileReader(Configs.EXTRACT_LOG_LOCALTION + filename+".log");
return result;
}

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save