合并--9.22

web_backend_develope
wu ming 9 years ago
commit 983a2ce749

@ -17,6 +17,7 @@ jdbc.mysql.password=root
gather-user-name=system gather-user-name=system
# 密码 # 密码
gather-user-password=oracle gather-user-password=oracle
# #
gather-port=1521 gather-port=1521
# #
@ -40,10 +41,10 @@ jdbc.minEvictableIdleTimeMillis=300000
# #
#============================================================================================================== #==============================================================================================================
table-suffix=_20152016 table-suffix=_20152016
extract-log-localtion=/home/log/ extract-log-localtion=D:\\log\\
gather-tablespace-name=TS_TTSSS gather-tablespace-name=TS_TTSSS
gather-tablespace-path= gather-tablespace-path=/opt/oracle/app/oradata/orcl/
gather-table-user-password= gather-table-user-password=1
kubeMasterUrl=http://192.168.0.110:8080/ kubeMasterUrl=http://192.168.0.110:8080/
collect-user-name=system collect-user-name=system
collect-password=oracle collect-password=oracle

@ -45,6 +45,7 @@ public class BaseController {
System.out.println("URI"+request.getRequestURI()); System.out.println("URI"+request.getRequestURI());
request.setAttribute("ex", ex); request.setAttribute("ex", ex);
System.err.println("BaseController --exp " + ex); System.err.println("BaseController --exp " + ex);
new CustomException("base_code_", ex);
// 根据不同错误转向不同页面 // 根据不同错误转向不同页面
if(ex instanceof CustomException) { if(ex instanceof CustomException) {
CustomException cuse = (CustomException) ex; CustomException cuse = (CustomException) ex;

@ -27,8 +27,11 @@ public class Custom4exception {
public final static String threadVolume_Thread_Except = "3001001002"; public final static String threadVolume_Thread_Except = "3001001002";
/** /**
* * ---
*/ */
public final static String threadVolume_Oracle_Except = "3002001002"; public final static String threadVolume_Oracle_Except = "3002001002";
/** * SQL执行错误 */
public final static String OracleSQL_Except = "3002001002";
} }

@ -44,7 +44,6 @@ public class CustomException extends Exception {
public CustomException(String code,Exception e,Object... obj) { public CustomException(String code,Exception e,Object... obj) {
super(code); super(code);
StringBuffer sbuf= new StringBuffer(); StringBuffer sbuf= new StringBuffer();
sbuf.append(msg);
this.code = code; this.code = code;
sbuf.append(code); sbuf.append(code);
sbuf.append("\r\n"); sbuf.append("\r\n");
@ -56,6 +55,8 @@ public class CustomException extends Exception {
} }
// 记录原始的异常 // 记录原始的异常
if (null != e) { if (null != e) {
sbuf.append(e.getMessage());
sbuf.append("\r\n");
StackTraceElement[] array = e.getStackTrace(); StackTraceElement[] array = e.getStackTrace();
cause = e.getCause(); cause = e.getCause();
for (StackTraceElement stackTraceElement : array) { for (StackTraceElement stackTraceElement : array) {
@ -68,6 +69,7 @@ public class CustomException extends Exception {
Object[] array = obj; Object[] array = obj;
sbuf.append("Object[] size : "); sbuf.append("Object[] size : ");
sbuf.append(array.length); sbuf.append(array.length);
sbuf.append("\r\n");
int forSize = 0; int forSize = 0;
if (Constant.CustomException_log_object_size < array.length) { if (Constant.CustomException_log_object_size < array.length) {
forSize = Constant.CustomException_log_object_size; forSize = Constant.CustomException_log_object_size;

@ -0,0 +1,4 @@
3001001001=ThreadVolume\u7C7B\u67E5\u8BE2 volume\u5F02\u5E38
3001001002=ThreadVolume\u7C7B\u7EBF\u7A0B\u4F11\u7720\u5F02\u5E38
3002001002= \u62BD\u53D6\u6C47\u603B--\u7684-\u83B7\u53D6\u62BD\u53D6\u52A8\u4F5C\u5F02\u5E38
3002001002=SQL\u6267\u884C\u9519\u8BEF

@ -100,6 +100,14 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
</if> </if>
</select> </select>
<!-- 获取数据符合筛选条件的全部记录信息 -->
<select id="findAll" resultMap="getEntityByText">
SELECT
id,regionalism_code,city_name,district_name,system_code,system_name,data_type,data_version,submitted_batch,data_path,data_charset,collection_time,collector_name,collector_contacts,extract_status,data_year,start_year,end_year,volume_ip,volume_path
FROM data_details
ORDER BY data_details.id
</select>
<!-- 获取数据符合筛选条件的总记录条数 --> <!-- 获取数据符合筛选条件的总记录条数 -->
<select id="getLimitedDataCount" resultType="java.lang.Integer" <select id="getLimitedDataCount" resultType="java.lang.Integer"
parameterType="com.platform.entities.PagerOptions"> parameterType="com.platform.entities.PagerOptions">
@ -246,4 +254,16 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
and remove ='0' and remove ='0'
</update> </update>
<update id="updateExtract" parameterType="com.platform.entities.DataInfoEntity">
UPDATE
data_info
set extract_status = #{extractStatus}
<where>
regionalism_code = #{regionalismCode}
AND system_code = #{systemCode}
AND data_version = #{dataVersion}
AND remove ='0'
</where>
</update>
</mapper> </mapper>

@ -11,8 +11,6 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -27,7 +25,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
import com.base.BaseController; import com.base.BaseController;
import com.platform.entities.DataInfoEntity; import com.platform.entities.DataInfoEntity;
import com.platform.entities.DataInfoEntityMoveTmp; import com.platform.entities.DataInfoEntityMoveTmp;
import com.platform.entities.FolderNode;
import com.platform.entities.GatherOracleInfo; import com.platform.entities.GatherOracleInfo;
import com.platform.entities.PagerOptions; import com.platform.entities.PagerOptions;
import com.platform.entities.VolumeEntity; import com.platform.entities.VolumeEntity;
@ -40,7 +37,6 @@ import com.platform.service.IMoveDataService;
import com.platform.service.IMySqlService; import com.platform.service.IMySqlService;
import com.platform.service.IOracleExtractService; import com.platform.service.IOracleExtractService;
import com.platform.service.OracleStatusService; import com.platform.service.OracleStatusService;
import com.platform.utils.Bean2MapUtils;
import com.platform.utils.Configs; import com.platform.utils.Configs;
import com.platform.utils.UtilsHelper; import com.platform.utils.UtilsHelper;
@ -113,7 +109,7 @@ public class DataModelController extends BaseController{
String[] oraclesName = paramMap.get("oracleName"); String[] oraclesName = paramMap.get("oracleName");
if (oraclesName != null) if (oraclesName != null)
for (String rcName : oraclesName) { for (String rcName : oraclesName) {
Configs.CONSOLE_LOGGER.info("执行连接\t" + rcName); Configs.CONSOLE_LOGGER.info("连接成功\t" + rcName);
new OracleStatusService().connectToOracle(rcName); new OracleStatusService().connectToOracle(rcName);
} }
req.setStatus(200); req.setStatus(200);
@ -138,6 +134,7 @@ public class DataModelController extends BaseController{
@RequestMapping(value="/oracle/{name}/extract", method= RequestMethod.POST) @RequestMapping(value="/oracle/{name}/extract", method= RequestMethod.POST)
public void oracleExtract(HttpServletRequest res, public void oracleExtract(HttpServletRequest res,
HttpServletResponse req,@RequestBody oracleForm form) throws Exception { HttpServletResponse req,@RequestBody oracleForm form) throws Exception {
Configs.CONSOLE_LOGGER.error("/oracle/{name}/extract");
res.setCharacterEncoding("UTF-8"); res.setCharacterEncoding("UTF-8");
if (null != form.getInneed() && form.getInneed().size() > 0) { if (null != form.getInneed() && form.getInneed().size() > 0) {
OracleExtract.extractOracle(form.getName(), form.getInneed(), form.getTarget()); OracleExtract.extractOracle(form.getName(), form.getInneed(), form.getTarget());
@ -182,31 +179,7 @@ public class DataModelController extends BaseController{
@RequestMapping(value = "/volume/{name}/move", method= RequestMethod.POST) @RequestMapping(value = "/volume/{name}/move", method= RequestMethod.POST)
@ResponseBody @ResponseBody
public void volumeMove(HttpServletRequest res, HttpServletResponse req,@RequestBody volumeMoveForm form) throws Exception { public void volumeMove(HttpServletRequest res, HttpServletResponse req,@RequestBody volumeMoveForm form) throws Exception {
// res.setCharacterEncoding("UTF-8");
// System.out.println("get Request");
// Map<String, String[]> paramMap = res.getParameterMap();
//// System.out.println(paramMap);
// String[] nodes = paramMap.get("selectNode");
// Map map = null;
// for (String string : nodes) {
// System.out.println(string);
// JSONObject jsonobject = JSONObject.fromObject(string);
// map = jsonobject;
// }
// String dstVolume = (String) map.get("volume");
// List<String> listItemPath = new ArrayList<String>();
// String[] items = paramMap.get("selectItems");
// System.out.println("selectItems");
List<DataInfoEntity> datas = new ArrayList<DataInfoEntity>(); List<DataInfoEntity> datas = new ArrayList<DataInfoEntity>();
// List<String> srcVolumes = new ArrayList<String>();
// for (String string : items) {
// System.out.println(string);
// JSONObject jsobj = JSONObject.fromObject(string);
// Map itemmap = jsobj;
// DataInfoEntity data = (DataInfoEntity) Bean2MapUtils.convertMap(DataInfoEntity.class, itemmap);
// datas.add(data);
// }
List<DataInfoEntity> selectItems = form.getSelectItems(); List<DataInfoEntity> selectItems = form.getSelectItems();
if (null == selectItems) { if (null == selectItems) {
req.setStatus(200); req.setStatus(200);
@ -220,28 +193,6 @@ public class DataModelController extends BaseController{
} }
req.setStatus(200); req.setStatus(200);
} }
// public Object volumeMove(HttpServletRequest res, HttpServletResponse req, String name,
// @RequestBody FolderNode selectNode, @RequestBody List<DataInfoEntity> selectItems) throws Exception {
// log.debug("-----/volume/{name}/move------");
//// Map<String, String[]> paramMap = res.getParameterMap();
//// System.out.println(paramMap);
// Map<String, String[]> paramMap = res.getParameterMap();
// log.debug(paramMap);
// //汇总库 对象信息--带有tableName-
// String[] nodes = (String[]) paramMap.get("selectNode");
// Map map = null;
// JSONObject jsonobject = JSONObject.fromObject(string);
// map = jsonobject;
//
//
// log.debug(selectItems);
// log.debug(selectNode);
// boolean result = false ;
// if (selectItems.size() >0) {
// result = moveDataService.moveData(selectItems, selectNode.getPath());
// }
// return result;
// }
@RequestMapping(value="/oracle/list", method= RequestMethod.POST) @RequestMapping(value="/oracle/list", method= RequestMethod.POST)
@ResponseBody @ResponseBody

@ -20,8 +20,12 @@ public interface DataInfoDao {
List<String> getIdIsExist(List<Integer> list)throws Exception; List<String> getIdIsExist(List<Integer> list)throws Exception;
List<DataInfoEntity> findAll()throws Exception;
int removes(List<Integer> list)throws Exception; int removes(List<Integer> list)throws Exception;
int save(DataInfoEntity data) throws Exception; int save(DataInfoEntity data) throws Exception;
int updateExtract(DataInfoEntity data) throws Exception;
} }

@ -1,9 +1,8 @@
package com.platform.entities; package com.platform.entities;
import java.util.List;
public class PagerOptions { public class PagerOptions {
private Integer currentPageNum; //当前页码 private Integer currentPageNum = 1; //当前页码
private String dataType; //数据类型 private String dataType; //数据类型

@ -10,26 +10,44 @@ public class oracleForm {
private String name; private String name;
/**
* @return the totalOracle
*/
public GatherOracleInfo getTarget() { public GatherOracleInfo getTarget() {
return target; return target;
} }
/**
* @param totalOracle the totalOracle to set
*/
public void setTarget(GatherOracleInfo target) { public void setTarget(GatherOracleInfo target) {
this.target = target; this.target = target;
} }
/**
* @return the collOracle
*/
public List<OracleConnectorParams> getInneed() { public List<OracleConnectorParams> getInneed() {
return inneed; return inneed;
} }
/**
* @param collOracle the collOracle to set
*/
public void setInneed(List<OracleConnectorParams> inneed) { public void setInneed(List<OracleConnectorParams> inneed) {
this.inneed = inneed; this.inneed = inneed;
} }
/**
* @return the totalOracleName
*/
public String getName() { public String getName() {
return name; return name;
} }
/**
* @param totalOracleName the totalOracleName to set
*/
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }

@ -6,6 +6,8 @@ import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Statement; import java.sql.Statement;
import com.base.Custom4exception;
import com.base.CustomException;
import com.platform.utils.Configs; import com.platform.utils.Configs;
public class OracleConnector { public class OracleConnector {
@ -15,27 +17,27 @@ public class OracleConnector {
Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功"); Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功");
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
Configs.CONSOLE_LOGGER.error(e.getMessage()); new CustomException(Custom4exception.OracleSQL_Except, e);
} }
} }
public static Connection ConnectionBuilder(String url, String user, public synchronized static Connection ConnectionBuilder(String url, String user,
String password) { String password) {
Connection conn = null; Connection conn = null;
try { try {
conn = DriverManager.getConnection(url, user, password); conn = DriverManager.getConnection(url, user, password);
} catch (SQLException e) { } catch (SQLException e) {
Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage() new CustomException(Custom4exception.OracleSQL_Except, e);
+ "]"); Configs.CONSOLE_LOGGER.info("创建oracle连接失败: [" + e.getMessage() + "]");
} }
return conn; return conn;
} }
public static boolean canConnect(String url, String user, String password) { public synchronized static boolean canConnect(String url, String user, String password) {
return (null != ConnectionBuilder(url, user, password)); return (null != ConnectionBuilder(url, user, password));
} }
public static ResultSet getSQLExecResultSet(Connection conn, String sql) { public synchronized static ResultSet getSQLExecResultSet(Connection conn, String sql) {
ResultSet resultSet = null; ResultSet resultSet = null;
try { try {
Statement statement = conn Statement statement = conn
@ -43,12 +45,12 @@ public class OracleConnector {
ResultSet.CONCUR_UPDATABLE); ResultSet.CONCUR_UPDATABLE);
resultSet = statement.executeQuery(sql); resultSet = statement.executeQuery(sql);
} catch (SQLException e) { } catch (SQLException e) {
Configs.CONSOLE_LOGGER.error(e.getMessage()); new CustomException(Custom4exception.OracleSQL_Except, e);
} }
return resultSet; return resultSet;
} }
public static ResultSet getSQLExecResultSet(String url, String user, public synchronized static ResultSet getSQLExecResultSet(String url, String user,
String password, String sql) { String password, String sql) {
return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql); return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql);
} }
@ -60,30 +62,28 @@ public class OracleConnector {
* @param sql * @param sql
* @return * @return
*/ */
public static boolean execOracleSQL(Connection conn, String sql) { public synchronized static boolean execOracleSQL(Connection conn, String sql) {
boolean flag = false; boolean flag = false;
try { try {
Statement statement = conn.createStatement(); Statement statement = conn.createStatement();
//ResultSet set = statement.execute(sql); statement.execute(sql);
flag = true; flag = true;
} catch (SQLException e) { } catch (SQLException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
Configs.CONSOLE_LOGGER.error(e.getMessage()); new CustomException(Custom4exception.OracleSQL_Except, e);
flag = false;
} }
return flag; return flag;
} }
public static boolean execUpdateOracleSQL(Connection conn, String sql) { public synchronized static boolean execUpdateOracleSQL(Connection conn, String sql) {
boolean flag = false; boolean flag = false;
try { try {
Statement statement = conn.createStatement(); Statement statement = conn.createStatement();
statement.execute(sql); if(statement.executeUpdate(sql) > 0)
flag = true; flag = true;
} catch (SQLException e) { } catch (SQLException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
Configs.CONSOLE_LOGGER.error(e.getMessage()); new CustomException(Custom4exception.OracleSQL_Except, e, sql);
flag = false;
} }
return flag; return flag;
} }

@ -13,6 +13,7 @@ import com.platform.utils.Configs;
import com.platform.utils.FileOperateHelper; import com.platform.utils.FileOperateHelper;
public class OracleExtractHelper { public class OracleExtractHelper {
/** /**
* dblink * dblink
* *
@ -23,15 +24,17 @@ public class OracleExtractHelper {
*/ */
private boolean hasSameNameDBLink(Connection conn, String linkName) { private boolean hasSameNameDBLink(Connection conn, String linkName) {
boolean flag = false; boolean flag = false;
String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK='" + linkName +"'"; String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK='" + linkName+"'";
ResultSet rSet = OracleConnector.getSQLExecResultSet(conn, sql); ResultSet rSet = null;
try { try {
rSet = OracleConnector.getSQLExecResultSet(conn, sql);
rSet.last(); rSet.last();
if (rSet.getRow() > 0) if (rSet.getRow() > 0)
flag = true; flag = true;
} catch (Exception e) { } catch (Exception e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
Configs.CONSOLE_LOGGER.info(e.getMessage()); e.printStackTrace();
new CustomException(Custom4exception.threadVolume_Oracle_Except, e, rSet);
} }
return flag; return flag;
} }
@ -44,7 +47,7 @@ public class OracleExtractHelper {
* dblink * dblink
*/ */
public void createDBLink(Connection conn, OracleConnectorParams oc) { public void createDBLink(Connection conn, OracleConnectorParams oc) {
String linkName = "LinkTo" + oc.getName(); String linkName = "LINKTO" + oc.getName();
String sql = "CREATE PUBLIC DATABASE LINK " String sql = "CREATE PUBLIC DATABASE LINK "
+ linkName + linkName
+ " CONNECT TO " + " CONNECT TO "
@ -75,9 +78,7 @@ public class OracleExtractHelper {
} else { } else {
// 否则创建dblink // 否则创建dblink
System.out.println("dblin不存在");
OracleConnector.execOracleSQL(conn, sql); OracleConnector.execOracleSQL(conn, sql);
Configs.CONSOLE_LOGGER.error("创建DBLink!");
FileOperateHelper.fileWrite( FileOperateHelper.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql); Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql);
} }
@ -93,17 +94,17 @@ public class OracleExtractHelper {
*/ */
public boolean createTableSpace(Connection conn, GatherOracleInfo oc) { public boolean createTableSpace(Connection conn, GatherOracleInfo oc) {
String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '" String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '"
+ Configs.GATHER_TABLESPACE_NAME + "'"; + oc.getTableName() + "'";
if (OracleConnector.execOracleSQL(conn, tmpSql)) { if (OracleConnector.execUpdateOracleSQL(conn, tmpSql)) {
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
tmpSql+"\r\n"); tmpSql+"\r\n");
return true; return true;
} else { } else {
String sql = "create tablespace " + Configs.GATHER_TABLESPACE_NAME String sql = "create tablespace " + oc.getTableName()
+ " datafile '" + Configs.GATHER_TABLESPACE_PATH + " datafile '" + Configs.GATHER_TABLESPACE_PATH
+ Configs.GATHER_TABLESPACE_NAME + ".dbf" + oc.getTableName() + ".dbf"
+ "' size 512M autoextend on next 512M maxsize unlimited"; + "' size 512M autoextend on next 512M maxsize unlimited";
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
@ -119,10 +120,10 @@ public class OracleExtractHelper {
* @param conn * @param conn
* @param oc * @param oc
*/ */
public void createUser(Connection conn, GatherOracleInfo oc) { public void createUser(Connection conn, OracleConnectorParams oc, GatherOracleInfo totalOracle) {
String strTUser = oc.getName() + Configs.TABLE_SUFFIX; String strTUser = oc.getName() + totalOracle.getSuffix();
String sql = "Create user " + strTUser + " default tablespace " String sql = "Create user " + strTUser + " default tablespace "
+ Configs.GATHER_TABLESPACE_NAME + " identified by " + totalOracle.getTableName() + " identified by "
+ Configs.GATHER_TABLE_PASSWORD; + Configs.GATHER_TABLE_PASSWORD;
String grantSql = "grant connect, resource, dba to " + strTUser; String grantSql = "grant connect, resource, dba to " + strTUser;
@ -150,12 +151,12 @@ public class OracleExtractHelper {
String sql = "SELECT 'create table " String sql = "SELECT 'create table "
+ strTUser + strTUser
+ ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||" + ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||"
+ "'@linkTo" + "'@LINKTO"
+ oc.getName() + oc.getName()
+ ";' FROM dba_tables@linkTo" + ";' FROM dba_tables@LINKTO"
+ oc.getName() + oc.getName()
+ " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')" + " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')"
+ " and t.owner||t.table_name not in (select owner||table_name from dba_tables@linkTo" + " and t.owner||t.table_name not in (select owner||table_name from dba_tables@LINKTO"
+ oc.getName() + " where 'data_type'='CLOB')"; + oc.getName() + " where 'data_type'='CLOB')";
ResultSet rsSet = OracleConnector.getSQLExecResultSet(conn, sql); ResultSet rsSet = OracleConnector.getSQLExecResultSet(conn, sql);
FileOperateHelper FileOperateHelper
@ -164,15 +165,22 @@ public class OracleExtractHelper {
sql+"\r\n"); sql+"\r\n");
try { try {
while (rsSet.next()) { while (rsSet.next()) {
String resultSql = rsSet.getString(0); try {
OracleConnector.execOracleSQL(conn, resultSql); rsSet.getRow();
String resultSql = rsSet.getString(1);
OracleConnector.execUpdateOracleSQL(conn, resultSql);
FileOperateHelper FileOperateHelper
.fileWrite( .fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
resultSql+"\r\n"); resultSql+"\r\n");
} catch (SQLException e) {
new CustomException(Custom4exception.threadVolume_Oracle_Except, e, rsSet.getString(1));
}
} }
} catch (SQLException e) { } catch (SQLException e) {
new CustomException(Custom4exception.threadVolume_Oracle_Except, e); // TODO Auto-generated catch block
e.printStackTrace();
} }
} }

@ -1,24 +1,29 @@
package com.platform.service.impl; package com.platform.service.impl;
import java.sql.Connection; import java.sql.Connection;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.base.Custom4exception;
import com.base.CustomException;
import com.platform.dao.DataInfoDao;
import com.platform.entities.DataInfoEntity;
import com.platform.entities.GatherOracleInfo; import com.platform.entities.GatherOracleInfo;
import com.platform.entities.OracleConnectorParams; import com.platform.entities.OracleConnectorParams;
import com.platform.kubernetes.SimpleKubeClient; import com.platform.kubernetes.SimpleKubeClient;
import com.platform.oracle.OracleConnector; import com.platform.oracle.OracleConnector;
import com.platform.service.IOracleExtractService; import com.platform.service.IOracleExtractService;
import com.platform.service.OracleExtractHelper; import com.platform.service.OracleExtractHelper;
import com.platform.utils.Bean2MapUtils;
import com.platform.utils.Configs;
import com.platform.utils.Constant; import com.platform.utils.Constant;
@Service(value = "OracleExtract") @Service(value = "OracleExtract")
public class OracleExtractServiceImpl implements IOracleExtractService { public class OracleExtractServiceImpl implements IOracleExtractService {
@Resource(name = "dataInfoDao")
private DataInfoDao dataInfoDao;
/** /**
* kubernetes client * kubernetes client
*/ */
@ -34,82 +39,92 @@ public class OracleExtractServiceImpl implements IOracleExtractService {
private OracleConnector connect = new OracleConnector(); private OracleConnector connect = new OracleConnector();
@Override @Override
public boolean extractOracle(String name, List<OracleConnectorParams> dataInfolist, public boolean extractOracle(String name,
List<OracleConnectorParams> dataInfolist,
GatherOracleInfo oracleConnect) throws Exception { GatherOracleInfo oracleConnect) throws Exception {
boolean isSuccess = false; boolean isSuccess = false;
try{ try {
//map转 bean(汇总库信息-带tableName的) // map转 bean(汇总库信息-带tableName的)
GatherOracleInfo oracleModel = oracleConnect; GatherOracleInfo oracleModel = oracleConnect;
//采集库连接参数 // 采集库连接参数
List<OracleConnectorParams> datainfos = dataInfolist; List<OracleConnectorParams> datainfos = dataInfolist;
Connection conn = OracleConnector.ConnectionBuilder(
Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + ":" "jdbc:oracle:thin:@" + oracleModel.getIp() + ":"
+ oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword()); + oracleModel.getPort() + ":"
+ oracleModel.getDatabaseName(),
oracleModel.getUser(), oracleModel.getPassword());
for (OracleConnectorParams collectOracle : datainfos) { for (OracleConnectorParams collectOracle : datainfos) {
/** String[] str = collectOracle.getName().split("-");
* oracle if (str.length == 3) {
*/ DataInfoEntity data = new DataInfoEntity();
//client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "1"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成 data.setRegionalismCode(str[0]);
String cmd = "kubectl label --overwrite rc " + collectOracle.getName() + " isExtract=1"; data.setSystemCode(Integer.valueOf(str[1]));
data.setDataVersion(Integer.valueOf(str[2]));
data.setExtractStatus(1);
dataInfoDao.updateExtract(data);
collectOracle.setName("J"
+ collectOracle.getName().replace("-", "_"));
// client.updateOrAddReplicasLabelById(collectOracle.getName(),
// "isExtract", "1"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成
String cmd = "kubectl label --overwrite rc "
+ collectOracle.getName() + " isExtract=1";
Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
/** oracleExtract.createDBLink(conn, collectOracle); // 创建dblink
* data-infoextract1; oracleExtract.createTableSpace(conn, oracleModel); // 创建表空间
*/ oracleExtract.createUser(conn, collectOracle, oracleModel);// 创建用户并授权
System.out.println("标签更新成功"); oracleExtract.extractColleDB(conn, collectOracle);// 执行抽取
collectOracle.setName(collectOracle.getName().replace("-", "_")); // client.updateOrAddReplicasLabelById(collectOracle.getName(),
oracleExtract.createDBLink(conn, collectOracle); //创建dblink // "isExtract", "1"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成
System.out.println("创建dblink成功"); cmd = "kubectl label --overwrite rc "
oracleExtract.createTableSpace(conn, oracleModel); //创建表空间 + collectOracle.getName() + " isExtract=1";
System.out.println("创建表空间成功");
oracleExtract.createUser(conn, oracleModel);//创建用户并授权
System.out.println("用户授权成功");
oracleExtract.extractColleDB(conn, collectOracle);//执行抽取
System.out.println("执行抽取成功");
//client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "1"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成
cmd = "kubectl label --overwrite rc " + collectOracle.getName() + " isExtract=1";
Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
/** data.setExtractStatus(2);
* data-infoextract2; dataInfoDao.updateExtract(data);
*/ }
} }
isSuccess = true; isSuccess = true;
}catch(Exception e){ } catch (Exception e) {
Configs.CONSOLE_LOGGER.error(e.getMessage()); new CustomException(Custom4exception.OracleSQL_Except, e);
} }
return false; return isSuccess;
} }
// @Override // @Override
// public boolean extractOracle(String name, List<OracleConnectorParams> dataInfos, GatherOracleInfo oracleConnect) throws Exception { // public boolean extractOracle(String name, List<OracleConnectorParams>
// boolean isSuccess = false; // dataInfos, GatherOracleInfo oracleConnect) throws Exception {
// try{ // boolean isSuccess = false;
// //map转 bean(汇总库信息-带tableName的) // try{
//// GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect); // //map转 bean(汇总库信息-带tableName的)
// // // GatherOracleInfo oracleModel = (GatherOracleInfo)
// //采集库连接参数 // Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect);
//// List<OracleConnectorParams> datainfos = new ArrayList<OracleConnectorParams>(); //
//// for (Map<String, String> map : dataInfoMap) { // //采集库连接参数
//// OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect); // // List<OracleConnectorParams> datainfos = new
//// datainfos.add(dataInfoEntity); // ArrayList<OracleConnectorParams>();
//// } // // for (Map<String, String> map : dataInfoMap) {
// // // OracleConnectorParams dataInfoEntity = (OracleConnectorParams)
// Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleConnect.getIp() + ":" + oracleConnect.getPort() + "/" // Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect);
// + oracleConnect.getDatabaseName(), oracleConnect.getUser(), oracleConnect.getPassword()); // // datainfos.add(dataInfoEntity);
// // // }
// for (OracleConnectorParams collectOracle : dataInfos) { //
// // Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@"
// oracleExtract.createDBLink(conn, collectOracle); // + oracleConnect.getIp() + ":" + oracleConnect.getPort() + "/"
// oracleExtract.createTableSpace(conn, oracleConnect); // + oracleConnect.getDatabaseName(), oracleConnect.getUser(),
// oracleExtract.createUser(conn, oracleConnect); // oracleConnect.getPassword());
// oracleExtract.extractColleDB(conn, collectOracle); //
// } // for (OracleConnectorParams collectOracle : dataInfos) {
// isSuccess = true; //
// }catch(Exception e){ // oracleExtract.createDBLink(conn, collectOracle);
// // oracleExtract.createTableSpace(conn, oracleConnect);
// } // oracleExtract.createUser(conn, oracleConnect);
// return false; // oracleExtract.extractColleDB(conn, collectOracle);
// } // }
// isSuccess = true;
// }catch(Exception e){
//
// }
// return false;
// }
} }

@ -48,5 +48,5 @@ public class Configs {
public static String GATHER_TABLESPACE_PATH=""; //表空间路径 public static String GATHER_TABLESPACE_PATH=""; //表空间路径
public static String GATHER_TABLE_PASSWORD=""; //登入密码 public static String GATHER_TABLE_PASSWORD="1"; //登入密码
} }

@ -0,0 +1,16 @@
package com.platform.test;
import com.platform.utils.Configs;
import com.platform.utils.FileOperateHelper;
public class TestWriteFile {
public static void main(String[] args) {
FileOperateHelper
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION +"\\test.log",
"Hello! \r\n");
System.out.println("Hello!");
}
}
Loading…
Cancel
Save