1、删除多余的数据源和数据源拦截器,将行为日志迁到MySql上,并在日志查询接口上添加Blob类型转换工具;

2、修改DNS响应策略配置 reqStrateId验证条件;
3、修改maat.xml,存储结构结尾无\n的都加上。
This commit is contained in:
zhangdongxu
2018-06-26 10:14:52 +08:00
parent 00aa2ea8d9
commit d2fc307d02
10 changed files with 154 additions and 241 deletions

View File

@@ -19,21 +19,21 @@ public class DataSourceCInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
searchActiveSys=request.getParameter("searchActiveSys");
if(searchActiveSys == null
|| !(Constants.ACTIVESYS_A.equals(searchActiveSys)
|| Constants.ACTIVESYS_C.equals(searchActiveSys))
) searchActiveSys=Constants.ACTIVESYS_B;
if(Constants.ACTIVESYS_A.equals(searchActiveSys)){
logger.info("开启数据源日志A操作库---"+System.currentTimeMillis());
CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_F);//开启数据源F
}else if(Constants.ACTIVESYS_C.equals(searchActiveSys)){
logger.info("开启数据源日志C操作库---"+System.currentTimeMillis());
CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_G);//开启数据源F
}else{
logger.info("开启数据源日志B操作库---"+System.currentTimeMillis());
// searchActiveSys=request.getParameter("searchActiveSys");
// if(searchActiveSys == null
// || !(Constants.ACTIVESYS_A.equals(searchActiveSys)
// || Constants.ACTIVESYS_C.equals(searchActiveSys))
// ) searchActiveSys=Constants.ACTIVESYS_B;
// if(Constants.ACTIVESYS_A.equals(searchActiveSys)){
// logger.info("开启数据源日志A操作库---"+System.currentTimeMillis());
// CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_F);//开启数据源F
// }else if(Constants.ACTIVESYS_C.equals(searchActiveSys)){
// logger.info("开启数据源日志C操作库---"+System.currentTimeMillis());
// CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_G);//开启数据源F
// }else{
logger.info("开启数据源日志操作库---"+System.currentTimeMillis());
CustomerContextHolder.setCustomerType(CustomerContextHolder.DATA_SOURCE_C);//开启数据源C
}
// }
logger.info("日志数据源开启成功---"+System.currentTimeMillis());
return true;
}

View File

@@ -127,7 +127,7 @@ public class SQLHelper {
} else if (dataSource.equals(CustomerContextHolder.DATA_SOURCE_B)) {
return "oracle";
} else if (dataSource.equals(CustomerContextHolder.DATA_SOURCE_C)) {
return "oracle";
return "mysql";
} else if (dataSource.equals(CustomerContextHolder.DATA_SOURCE_D)) {
return "oracle";
} else if (dataSource.equals(CustomerContextHolder.DATA_SOURCE_F)) {

View File

@@ -0,0 +1,111 @@
/**
*
*/
package com.nis.util;
import java.io.ByteArrayInputStream;
import java.io.UnsupportedEncodingException;
import java.sql.Blob;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
/**
* @ClassName:BlobTypeHandler
* @Description:TODO(这里用一句话描述这个类的作用)
* @author (zdx)
* @date 2018年6月25日 下午2:11:03
* @version V1.0
*/
public class BlobTypeHandler extends BaseTypeHandler<String> {
// ###指定字符集
private static final String DEFAULT_CHARSET = "utf-8";
/*
* (non-Javadoc)
*
* @see org.apache.ibatis.type.BaseTypeHandler#setNonNullParameter(java.sql.
* PreparedStatement, int, java.lang.Object,
* org.apache.ibatis.type.JdbcType)
*/
@Override
public void setNonNullParameter(PreparedStatement ps, int i,
String parameter, JdbcType jdbcType) throws SQLException {
// TODO Auto-generated method stub
ByteArrayInputStream bis;
try {
// / ###把String转化成byte流
bis = new ByteArrayInputStream(parameter.getBytes(DEFAULT_CHARSET));
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Blob Encoding Error!");
}
ps.setBinaryStream(i, bis, parameter.length());
}
/*
* (non-Javadoc)
*
* @see
* org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql.ResultSet
* , java.lang.String)
*/
@Override
public String getNullableResult(ResultSet rs, String columnName)
throws SQLException {
// TODO Auto-generated method stub
Blob blob = rs.getBlob(columnName);
byte[] returnValue = null;
if (null != blob) {
returnValue = blob.getBytes(1, (int) blob.length());
}
try {
// ###把byte转化成string
return new String(returnValue, DEFAULT_CHARSET);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Blob Encoding Error!");
}
}
/*
* (non-Javadoc)
*
* @see
* org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql.ResultSet
* , int)
*/
@Override
public String getNullableResult(ResultSet rs, int columnIndex)
throws SQLException {
// TODO Auto-generated method stub
return null;
}
/*
* (non-Javadoc)
*
* @see org.apache.ibatis.type.BaseTypeHandler#getNullableResult(java.sql.
* CallableStatement, int)
*/
@Override
public String getNullableResult(CallableStatement cs, int columnIndex)
throws SQLException {
// TODO Auto-generated method stub
Blob blob = cs.getBlob(columnIndex);
byte[] returnValue = null;
if (null != blob) {
returnValue = blob.getBytes(1, (int) blob.length());
}
try {
return new String(returnValue, DEFAULT_CHARSET);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("Blob Encoding Error!");
}
}
}

View File

@@ -7,12 +7,12 @@
<result column="VERSION" jdbcType="VARCHAR" property="version" />
<result column="OPACTION" jdbcType="INTEGER" property="opAction" />
<result column="OPTIME" jdbcType="TIMESTAMP" property="opTime" />
<result column="REQUEST_CONTENT" jdbcType="CLOB" property="requestContent" />
<result column="REQUEST_CONTENT" jdbcType="BLOB" property="requestContent" typeHandler="com.nis.util.BlobTypeHandler"/>
<result column="REQUEST_TIME" jdbcType="TIMESTAMP" property="requestTime" />
<result column="CONSUMER_TIME" jdbcType="BIGINT" property="consumerTime" />
<result column="REQUEST_IP" jdbcType="VARCHAR" property="requestIp" />
<result column="BUSINESS_CODE" jdbcType="INTEGER" property="businessCode" />
<result column="EXCEPTION_INFO" jdbcType="VARCHAR" property="exceptionInfo" />
<result column="EXCEPTION_INFO" jdbcType="BLOB" property="exceptionInfo" typeHandler="com.nis.util.BlobTypeHandler"/>
<result column="SERVER_IP" jdbcType="VARCHAR" property="serverIp" />
<result column="TRACE_CODE" jdbcType="VARCHAR" property="traceCode" />
</resultMap>
@@ -90,7 +90,7 @@
<insert id="insert" parameterType="com.nis.domain.ServicesRequestLog">
insert into SERVICES_REQUEST_LOG
<trim prefix="(" suffix=")" suffixOverrides=",">
ID,
<if test="operator != null">
OPERATOR,
</if>
@@ -129,7 +129,7 @@
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
SEQ_SERVICES_REQUEST_LOG.Nextval,
<if test="operator != null">
#{operator,jdbcType=VARCHAR},
</if>

View File

@@ -123,7 +123,7 @@ public class SaveRequestLogThread implements Runnable {
try {
reader=request.getReader();
while((line=reader.readLine())!=null){
bulider.append(line);
bulider.append(new String(line.getBytes(),"utf-8"));
bulider.append("\n");
}
} catch (IOException e) {