读取日志

web_backend_develope
chenlw 9 years ago
parent 058a232cbb
commit 9a8b55a674

@ -4,6 +4,9 @@ package com.base;
import org.apache.log4j.Logger;
import com.platform.controller.DataModelController;
import com.platform.utils.Configs;
/**
* <>
* <>
@ -16,7 +19,7 @@ import org.apache.log4j.Logger;
public class CustomException extends Exception {
/** log4j */
public static Logger log = Logger.getRootLogger();
public static Logger log = Configs.DAILY_ROLLING_LOGGER;
/** 自定义异常信息-错误信息 */
private String msg;

@ -259,9 +259,7 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
data_info
set extract_status = #{extractStatus}
<where>
regionalism_code = #{regionalismCode}
AND system_code = #{systemCode}
AND data_version = #{dataVersion}
id = #{id}
AND remove ='0'
</where>
</update>

@ -33,6 +33,7 @@ import com.platform.entities.volumeMoveForm;
import com.platform.service.DataInfoService;
import com.platform.service.ICodeService;
import com.platform.service.IGfsService;
import com.platform.service.ILogRead;
import com.platform.service.IMoveDataService;
import com.platform.service.IMySqlService;
import com.platform.service.IOracleExtractService;
@ -43,7 +44,7 @@ import com.platform.utils.UtilsHelper;
@Controller
public class DataModelController extends BaseController{
public static Logger log = Logger.getLogger(DataModelController.class);
public static Logger log = Configs.DAILY_ROLLING_LOGGER;
@Resource(name = "dataInfoService")
private DataInfoService dfs;
@ -63,6 +64,9 @@ public class DataModelController extends BaseController{
@Resource(name = "codeService")
private ICodeService codeService;
@Resource(name = "logReadService")
private ILogRead logReadService;
public void setDfsImp(DataInfoService dfs) {
this.dfs = dfs;
}
@ -267,12 +271,13 @@ public class DataModelController extends BaseController{
@RequestMapping(value = "/oracle/extract/log", method= RequestMethod.POST )
@ResponseBody
public Object getExtractLog(@RequestParam("rcName") String name, HttpServletRequest res, HttpServletResponse req){
public Object getExtractLog(@RequestParam("rcName") String name, HttpServletRequest res, HttpServletResponse req) throws Exception{
log.info("---------/oracle/extract/log-------------------");
StringBuilder sb = new StringBuilder();
sb.append("查看相应日志").append("\n").append("看到了");
Map<String, String> log = new HashMap<>();
log.put(name, sb.toString());
return log;
String result = logReadService.readLog(name);
// StringBuilder sb = new StringBuilder();
// sb.append("查看相应日志").append("\n").append("看到了");
// Map<String, String> log = new HashMap<>();
// log.put(name, sb.toString());
return result;
}
}

@ -6,6 +6,8 @@ import com.platform.utils.ConfigPropertyReader;
import com.platform.utils.Configs;
public class OracleConnectorParams {
private String dataId;
private String port;
private String ip;
private String name;
@ -43,6 +45,20 @@ public class OracleConnectorParams {
this.databaseName = properties.getProperty("collect-service-name");
}
/**
* @return the dataId
*/
public String getDataId() {
return dataId;
}
/**
* @param dataId the dataId to set
*/
public void setDataId(String dataId) {
this.dataId = dataId;
}
public String getPort() {
return port;
}

@ -26,7 +26,7 @@ public class ShowData {
* @see [##]
*/
public Map<String,String> showVolumeFiles(String volumeName){
log.info("start show the data");
// log.info("start show the data");
Map<String,String> data_type=new HashMap<String, String>();
/**
* get mount point of volumeName
@ -45,14 +45,13 @@ public class ShowData {
* @return
*/
public Map<String,String> showFolderData(String folderName){
log.info(" start get "+folderName+" data");
// log.info(" start get "+folderName+" data");
Map<String,String> data_type=new HashMap<String, String>();
String command="ls -l "+folderName;
/*
<<<<<<< HEAD
* RunCommand runCommand=new RunCommand(); List<String>
* reStrings=runCommand.runCommandWait(command);
*/
@ -86,7 +85,7 @@ public class ShowData {
data_type.put(keyValue[8], keyValue[1]);
}
log.info(" get "+folderName+" data successed");
// log.info(" get "+folderName+" data successed");
return data_type;
}
@ -98,7 +97,7 @@ public class ShowData {
* @see [##]
*/
public long getFolderSize(String folderPath) {
log.info("get " + folderPath + " Size ");
// log.info("get " + folderPath + " Size ");
String command = "du -k -d 0 "+folderPath+" | grep " + folderPath + "|awk \'{print $1}\'";
List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command);
@ -111,8 +110,6 @@ public class ShowData {
return -1;
}
long size = Long.valueOf(reStrings.get(0));
return size;
}

@ -37,7 +37,7 @@ public class VolumeInfo {
* @see [##]
*/
public List<String> showAllVolumeName() {
log.info("get volume name");
// log.info("get volume name");
List<String> volNames = new ArrayList<String>();
/*
@ -84,7 +84,7 @@ public class VolumeInfo {
* @see [##]
*/
public String getVolumeType(String volumeName) {
log.info("get volume type");
// log.info("get volume type");
String volType = "";
List<String> reStrings = Constant.ganymedSSH
@ -123,7 +123,7 @@ public class VolumeInfo {
* @see [##]
*/
public String getVolumeStatus(String volumeName) {
log.info("get volume status");
// log.info("get volume status");
String volStatus = "";
String cmd = Constant.glusterVolumeInfo + " " + volumeName + " |grep ^Status";
List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
@ -162,7 +162,7 @@ public class VolumeInfo {
* @see [##]
*/
public Long getVolumeAvailableSize(String volumeName) throws Exception{
log.info("get volume availableSize");
// log.info("get volume availableSize");
Long allSize = 0L;
String cmd = Constant.df + " | grep " + volumeName + "|awk '{print $4}'";
@ -188,7 +188,7 @@ public class VolumeInfo {
* @see [##]
*/
public Long getVolumeUseSize(String volumeName) throws Exception{
log.info("get volume used size");
// log.info("get volume used size");
Long usedSize = 0L;
if (volumeIsExists(volumeName) == false) {
log.error("1901 " + volumeName + " is not exists!");
@ -219,7 +219,7 @@ public class VolumeInfo {
* @see [##]
*/
public List<String> getVolumeBricks(String volumeName) {
log.info("get volume bricks");
// log.info("get volume bricks");
String cmd = "gluster volume info " + volumeName + " |grep ^Brick'[0-9]\\+' |awk '{print $2}'";
List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
@ -243,7 +243,7 @@ public class VolumeInfo {
* @see [##]
*/
public List<String> getVolumeMountPoint(String volumeName) {
log.info("get volume MountPoint");
// log.info("get volume MountPoint");
List<String> mountPoints = new ArrayList<>();
String cmd=Constant.df + "|grep " + volumeName + "|awk '{print $6}'";
List<String> reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd);
@ -265,7 +265,7 @@ public class VolumeInfo {
}
public String getOneVolumeMountPoint(String volumeName) {
log.info("get one volume MountPoint");
// log.info("get one volume MountPoint");
String mountPoint=null;

@ -9,6 +9,7 @@ import java.sql.Statement;
import com.base.Custom4exception;
import com.base.CustomException;
import com.platform.utils.Configs;
import com.platform.utils.FileOperateHelper;
public class OracleConnector {
static {
@ -39,16 +40,18 @@ public class OracleConnector {
return (null != ConnectionBuilder(url, user, password));
}
public synchronized static ResultSet getSQLExecResultSet(Connection conn, String sql) {
public synchronized static ResultSet getSQLExecResultSet(Connection conn, String sql, String filePath) {
ResultSet resultSet = null;
try {
Statement statement = conn
.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
resultSet = statement.executeQuery(sql);
FileOperateHelper
.fileWrite(filePath, sql+ "\r\n"+"OK \r\n");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
FileOperateHelper
.fileWrite(filePath, sql+ "\r\n"+e.getMessage()+"\r\n");
new CustomException(Custom4exception.OracleSQL_Except, e);
}
@ -56,8 +59,8 @@ public class OracleConnector {
}
public synchronized static ResultSet getSQLExecResultSet(String url, String user,
String password, String sql) {
return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql);
String password, String sql, String filePath) {
return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql, filePath);
}
/**
@ -66,15 +69,18 @@ public class OracleConnector {
* @param sql
* @return true:sql
*/
public synchronized static boolean execOracleSQL(Connection conn, String sql) {
public synchronized static boolean execOracleSQL(Connection conn, String sql, String filePath) {
boolean flag = false;
try {
Statement statement = conn.createStatement();
statement.execute(sql);
flag = true;
FileOperateHelper
.fileWrite(filePath, sql+ "\r\n"+"OK \r\n");
} catch (SQLException e) {
flag = false;
e.printStackTrace();
FileOperateHelper
.fileWrite(filePath, sql+ "\r\n"+e.getMessage()+"\r\n");
new CustomException(Custom4exception.OracleSQL_Except, e);
}
return flag;
@ -85,15 +91,20 @@ public class OracleConnector {
* @param sql
* @return true:1
*/
public synchronized static boolean execUpdateOracleSQL(Connection conn, String sql) {
public synchronized static boolean execUpdateOracleSQL(Connection conn, String sql, String filePath) {
boolean flag = false;
try {
Statement statement = conn.createStatement();
if(statement.executeUpdate(sql) > 0)
{
flag = true;
FileOperateHelper
.fileWrite(filePath, sql+ "\r\n"+"OK \r\n");
}
} catch (SQLException e) {
flag = false;
e.printStackTrace();
FileOperateHelper
.fileWrite(filePath, sql+ "\r\n"+e.getMessage()+"\r\n");
new CustomException(Custom4exception.OracleSQL_Except, e, sql);
}
return flag;

@ -0,0 +1,7 @@
package com.platform.service;
public interface ILogRead {
public String readLog(String filename) throws Exception;
}

@ -27,7 +27,7 @@ public class OracleExtractHelper {
String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK='" + linkName+"'";
ResultSet rSet = null;
try {
rSet = OracleConnector.getSQLExecResultSet(conn, sql);
rSet = OracleConnector.getSQLExecResultSet(conn, sql, null);
rSet.last();
if (rSet.getRow() > 0)
flag = true;
@ -66,10 +66,10 @@ public class OracleExtractHelper {
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
deleteSql+"\r\n");
if (OracleConnector.execOracleSQL(conn, deleteSql)) {
if (OracleConnector.execOracleSQL(conn, deleteSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName())) {
FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION
+ oc.getName(), sql+"\r\n");
OracleConnector.execOracleSQL(conn, sql);
OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName());
} else {
Configs.CONSOLE_LOGGER.error("删除已有的DBLink失败,无法创建新的DBLink!");
FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION
@ -78,7 +78,7 @@ public class OracleExtractHelper {
} else {
// 否则创建dblink
OracleConnector.execOracleSQL(conn, sql);
OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName());
FileOperateHelper.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql);
}
@ -95,7 +95,7 @@ public class OracleExtractHelper {
public boolean createTableSpace(Connection conn, GatherOracleInfo oc) {
String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '"
+ oc.getTableName() + "'";
if (OracleConnector.execUpdateOracleSQL(conn, tmpSql)) {
if (OracleConnector.execUpdateOracleSQL(conn, tmpSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName())) {
FileOperateHelper
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
@ -110,7 +110,7 @@ public class OracleExtractHelper {
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
sql+"\r\n");
return OracleConnector.execOracleSQL(conn, sql);
return OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName());
}
}
@ -127,13 +127,13 @@ public class OracleExtractHelper {
+ Configs.GATHER_TABLE_PASSWORD;
String grantSql = "grant connect, resource, dba to " + strTUser;
OracleConnector.execOracleSQL(conn, sql);
OracleConnector.execOracleSQL(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName());
FileOperateHelper
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
sql+"\r\n");
OracleConnector.execOracleSQL(conn, grantSql);
OracleConnector.execOracleSQL(conn, grantSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName());
FileOperateHelper
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
@ -158,7 +158,7 @@ public class OracleExtractHelper {
+ " 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"
+ oc.getName() + " where 'data_type'='CLOB')";
ResultSet rsSet = OracleConnector.getSQLExecResultSet(conn, sql);
ResultSet rsSet = OracleConnector.getSQLExecResultSet(conn, sql, Configs.EXTRACT_LOG_LOCALTION + oc.getName());
FileOperateHelper
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(),
@ -168,7 +168,7 @@ public class OracleExtractHelper {
try {
rsSet.getRow();
String resultSql = rsSet.getString(1);
OracleConnector.execUpdateOracleSQL(conn, resultSql);
OracleConnector.execUpdateOracleSQL(conn, resultSql, Configs.EXTRACT_LOG_LOCALTION + oc.getName());
FileOperateHelper
.fileWrite(
Configs.EXTRACT_LOG_LOCALTION + oc.getName(),

@ -0,0 +1,20 @@
package com.platform.service.impl;
import org.springframework.stereotype.Service;
import com.platform.service.ILogRead;
import com.platform.utils.Configs;
import com.platform.utils.FileOperateHelper;
@Service(value = "logReadService")
public class LogReadServiceImpl implements ILogRead {
@Override
public String readLog(String filename) throws Exception {
String result = FileOperateHelper.fileReader(Configs.EXTRACT_LOG_LOCALTION+filename+".log");
return result;
}
}

@ -53,12 +53,10 @@ public class OracleExtractServiceImpl implements IOracleExtractService {
Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + ":"
+ oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword());
for (OracleConnectorParams collectOracle : datainfos) {
String[] str = collectOracle.getName().split("-");
if(str.length == 3){
if(null != collectOracle.getDataId() && !"".equals(collectOracle.getDataId())){
DataInfoEntity data = new DataInfoEntity();
data.setRegionalismCode(str[0]);
data.setSystemCode(Integer.valueOf(str[1]));
data.setDataVersion(Integer.valueOf(str[2]));
data.setId(Integer.valueOf(collectOracle.getDataId()));
data.setExtractStatus(1);
dataInfoDao.updateExtract(data);
collectOracle.setName("J" + collectOracle.getName().replace("-", "_"));
@ -68,7 +66,7 @@ public class OracleExtractServiceImpl implements IOracleExtractService {
oracleExtract.createUser(conn, collectOracle, oracleModel);//创建用户并授权
oracleExtract.extractColleDB(conn, collectOracle);//执行抽取
// client.updateOrAddReplicasLabelById(collectOracle.getName(), "isExtract", "2"); //更新oracle汇总状态0标示为未汇总1标示汇总中2标示汇总完成
data.setExtractStatus(1);
data.setExtractStatus(2);
dataInfoDao.updateExtract(data);
}
}

@ -83,6 +83,8 @@ public class ThreadMoveData{
DataInfoEntityMoveTmp dataMove = result.get(i);
//如果拷贝进度超过20分钟未进行-- 判断为 迁移失败。
// "1" :正在上传0等待 迁移, 2成功 3失败
long srcSizeTemp = 0;
long dstSize = 0;
if ("1".equals(dataMove.getCompleteStatus())) {
long nowTime = new Date().getTime();
long timelong = nowTime - DateForm.string2DateBysecond(dataMove.getLastTime()).getTime();
@ -96,9 +98,9 @@ public class ThreadMoveData{
isNoMove = false;
}
// 查询大小:。//gfs 获取size
long srcSize = show.getFolderSize(dataMove.getDataPath());
srcSize = (long) (srcSize * 0.998);
long dstSize = show.getFolderSize(dataMove.getDstPath());
srcSizeTemp = show.getFolderSize(dataMove.getDataPath());
long srcSize = (long) (srcSizeTemp * 0.998);
dstSize = show.getFolderSize(dataMove.getDstPath());
if (srcSize < 0) {
log.error(dataMove.getDataPath() + " : 路径不存在! ");
continue;
@ -119,6 +121,8 @@ public class ThreadMoveData{
if("1".equals(dataMove.getCompleteStatus()) && dataMove.getRate() > 0){
//传输完毕:进行校验
if (realRate == 100) {
int difSize = (int) (srcSizeTemp-dstSize);
Thread.sleep(10*difSize);
//TODO 查看当前拷贝目录进程是否结束?
//TODO 进行MD5校验
int resl = check.checkoutMD5Folder(dataMove.getDataPath(), dataMove.getDstPath());

@ -25,6 +25,9 @@ public class FileOperateHelper {
*/
@SuppressWarnings("resource")
public static void fileWrite(String path, String message) {
if (null == path || "".equals(path)) {
return;
}
try {
File file = new File(path);
if (file.exists())

Loading…
Cancel
Save