Authored by 王凤

贵州国税综合监控升级需求

Showing 77 changed files with 4728 additions and 0 deletions
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="config"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="libs/classes111.jar"/>
<classpathentry kind="lib" path="libs/commons-collections-3.1.jar"/>
<classpathentry kind="lib" path="libs/commons-httpclient-3.0.1.jar"/>
<classpathentry kind="lib" path="libs/commons-logging-1.1.jar"/>
<classpathentry kind="lib" path="libs/commons-net-3.1.jar"/>
<classpathentry kind="lib" path="libs/ibatis-common-2.jar"/>
<classpathentry kind="lib" path="libs/ibatis-dao-2.jar"/>
<classpathentry kind="lib" path="libs/ibatis-sqlmap-2.jar"/>
<classpathentry kind="lib" path="libs/jackson-core-asl-1.6.0.jar"/>
<classpathentry kind="lib" path="libs/jackson-jaxrs-1.6.0.jar"/>
<classpathentry kind="lib" path="libs/jackson-mapper-asl-1.6.0.jar"/>
<classpathentry kind="lib" path="libs/jsch-0.1.42.jar"/>
<classpathentry kind="lib" path="libs/json-lib-2.1-jdk15.jar"/>
<classpathentry kind="lib" path="libs/log4j-1.2.13.jar"/>
<classpathentry kind="lib" path="libs/messageObject.jar"/>
<classpathentry kind="lib" path="libs/quartz-1.6.4.jar"/>
<classpathentry kind="lib" path="libs/xfire-all-1.2.6.jar"/>
<classpathentry kind="lib" path="libs/activemq-all-5.5.1.jar"/>
<classpathentry kind="lib" path="libs/ActiveMQUtil.jar"/>
<classpathentry kind="lib" path="libs/slf4j-log4j12-1.6.1.jar"/>
<classpathentry kind="lib" path="libs/slf4j-api-1.6.1.jar"/>
<classpathentry kind="lib" path="libs/bsh-1.3.0.jar"/>
<classpathentry kind="lib" path="libs/commons-beanutils-1.8.3.jar"/>
<classpathentry kind="lib" path="libs/commons-lang-2.5.jar"/>
<classpathentry kind="lib" path="libs/ezmorph-1.0.3.jar"/>
<classpathentry kind="output" path="classes"/>
</classpath>
... ...
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>BMCServer</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
... ...
#
# This script is used to kill the process.
#
if [ $# != 2 ]
then
echo Parameter error!
echo Useage example: killer UserName ProcessName
exit
fi
ps -fu$1 | grep $2 | grep -v killer | grep -v grep | cut -b 9-17 | while read line
do
kill -9 $line
echo "Process $line was killed!"
done
\ No newline at end of file
... ...
export JAVA_HOME=/opt/jdk1.6.0_17
export PATH=$JAVA_HOME/bin:$PATH
export LIBS_HOME=$APP_HOME/libs
export LANG=zh_CN.gb18030
export CLASSPATH=$APP_HOME/config:$LIBS_HOME/*
... ...
#! /usr/bin/ksh
PRG="$0"
PRGDIR=`dirname "$PRG"`
APP_HOME=`cd "$PRGDIR/.." ; pwd`
. $APP_HOME/bin/setenv.sh
PRO_KEY=BomcManagerCenter
MAIN_CLASS="com.sitech.ibnms.BMCServerMain"
pro_count=`ps -ef | grep ${PRO_KEY} | grep -v grep | wc -l`
if [ $pro_count -lt 1 ]
then
nohup java -D${PRO_KEY} ${MAIN_CLASS} 1>/dev/null 2>../logs/error.log &
echo "BomcManagerCenter startup "
else
echo "there is already ${pro_count} process with key ${PRO_KEY} exists"
fi
... ...
#! /usr/bin/ksh
PRG="$0"
PRGDIR=`dirname "$PRG"`
APP_HOME=`cd "$PRGDIR/.." ; pwd`
. $APP_HOME/bin/setenv.sh
PRO_KEY=BomcManagerCenter
$APP_HOME/bin/killer ${LOGNAME} ${PRO_KEY}
echo "BomcManagerCenter shutdown"
... ...
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/config" type="java-resource" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="libs" level="project" />
</component>
</module>
\ No newline at end of file
... ...
build.dir=F:/BmcServer
appserver.dir=${build.dir}/BmcServer
src.dir=src
lib.dir=libs
config.dir=config
bin.dir=bin
jar.filename=bmc-server.jar
tar.filename=BmcServer.tar
version=1.0.0
sub.version=129472
groupware-name=AppServer
vendor-name=SI-TECH Information Technology Ltd. BASD
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<project name="SMCServer" default="dist" basedir=".">
<property file="build.properties" />
<path id="classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
</path>
<target name="clean" description="clean the build dir">
<delete dir="${build.dir}" />
</target>
<target name="init" description="create the working directory">
<mkdir dir="${appserver.dir}" />
<mkdir dir="${appserver.dir}/classes" />
<mkdir dir="${appserver.dir}/libs" />
<mkdir dir="${appserver.dir}/bin" />
<mkdir dir="${appserver.dir}/config" />
<mkdir dir="${appserver.dir}/logs" />
</target>
<target name="compile" depends="clean,init" description="compile the java code and copy the config files">
<javac srcdir="${src.dir}" destdir="${appserver.dir}/classes">
<compilerarg line="-encoding UTF-8 " />
<compilerarg value="-Xlint:unchecked" />
<compilerarg value="-Xlint:deprecation" />
<classpath refid="classpath" />
</javac>
<copy todir="${appserver.dir}/classes">
<fileset dir="${src.dir}">
<include name="**/*.xml" />
</fileset>
<fileset dir="${config.dir}">
<include name="**/*.xml" />
</fileset>
</copy>
<copy todir="${appserver.dir}/config">
<fileset dir="${config.dir}">
<include name="**/*.properties" />
<include name="**/*.xml" />
</fileset>
</copy>
<copy todir="${appserver.dir}/bin">
<fileset dir="${bin.dir}">
<include name="**/*" />
</fileset>
</copy>
</target>
<target name="create-manifest" description="create the MANIFEST.MF file">
<tstamp />
<manifest file="${build.dir}/MANIFEST.MF">
<attribute name="Build-By" value="${user.name}" />
<attribute name="Build-On" value="${DSTAMP}${TSTAMP}" />
<attribute name="Create-By" value="${ant.version}" />
<attribute name="Specification-Title" value="${groupware-name}" />
<attribute name="Specification-Version" value="${version}" />
<attribute name="Specification-Vendor" value="${vendor-name}" />
<attribute name="Implementation-Title" value="${groupware-name}" />
<attribute name="Implementation-Version" value="${sub.version}" />
<attribute name="Implementation-Vendor" value="${vendor-name}" />
</manifest>
</target>
<target name="create-jarfile" depends="compile,create-manifest" description="create BomcManagerCenter.jar file">
<jar destfile="${appserver.dir}/libs/${jar.filename}" index="true" manifest="${build.dir}/MANIFEST.MF">
<fileset dir="${appserver.dir}/classes" />
</jar>
<delete file="${build.dir}/MANIFEST.MF" />
<delete dir="${appserver.dir}/classes" />
<copy todir="${appserver.dir}/libs">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
</copy>
</target>
<target name="create-tarfile" depends="create-jarfile" description="create BomcManagerCenter.tar file">
<mkdir dir="${build.dir}/temp/BmcServer" />
<move todir="${build.dir}/temp/BmcServer">
<fileset dir="${appserver.dir}" />
</move>
<move file="${build.dir}/temp" tofile="${appserver.dir}" />
<tar destfile="${build.dir}/${tar.filename}" basedir="${appserver.dir}" />
<delete dir="${appserver.dir}" />
</target>
<target name="dist" depends="create-tarfile" description="clean the temporary files">
</target>
</project>
\ No newline at end of file
... ...
#ORACLE CONFIG
SERVERDriver=oracle.jdbc.driver.OracleDriver
#SERVERConnectionURL=jdbc:oracle:thin:@89.12.88.21:1521:vmdb
SERVERConnectionURL=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=89.12.88.20)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=89.12.88.21)(PORT=1521))\
(LOAD_BLANCE=yes)(FAILOVER=ON)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=vmdb)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETIRES=20)(DELAY=15))))
SERVERUsername=zviewmonitor
SERVERPassword=edffe676fdab34a15c7454f4a182ae735d79b6cfadb230e7
\ No newline at end of file
... ...
BMCServerType=1
\ No newline at end of file
... ...
log4j.rootLogger=INFO
log4j.logger.LOGGER=DEBUG,LOGER,STDOUT
log4j.logger.ERROR=DEBUG,LOGER,ERROR,STDOUT
log4j.logger.org.apache=ERROR,LOGER,STDOUT
log4j.logger.com.sitech=ERROR,LOGER,STDOUT
log4j.logger.java.sql=DEBUG,LOGER,STDOUT
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%-4r [%t] [%-5p] %c{2} %d{yyyy-MM-dd HH:mm:ss,SSS} method: %l%n%m%n
log4j.appender.LOGER=org.apache.log4j.RollingFileAppender
log4j.appender.LOGER.File=../logs/loger.log
log4j.appender.LOGER.MaxFileSize=10000KB
log4j.appender.LOGER.MaxBackupIndex=10
log4j.appender.LOGER.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGER.layout.ConversionPattern=%-4r [%t] [%-5p] %c{2} %d{yyyy-MM-dd HH:mm:ss,SSS} method: %m%n
log4j.appender.ERROR=org.apache.log4j.RollingFileAppender
log4j.appender.ERROR.File=../logs/error.log
log4j.appender.ERROR.MaxFileSize=10000KB
log4j.appender.ERROR.MaxBackupIndex=10
log4j.appender.ERROR.layout=org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern=%-4r [%t] [%-5p] %c{2} %d{yyyy-MM-dd HH:mm:ss,SSS} method: %m%n
... ...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32" maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property value="${SERVERDriver}" name="JDBC.Driver" />
<property value="${SERVERConnectionURL}" name="JDBC.ConnectionURL" />
<property value="${SERVERUsername}" name="JDBC.Username" />
<property value="${SERVERPassword}" name="JDBC.Password" />
<property name="Pool.MaximumActiveConnections" value="10" />
<property name="Pool.MaximumIdleConnections" value="5" />
<property name="Pool.MaximumCheckoutTime" value="120000" />
<property name="Pool.TimeToWait" value="500" />
<property name="Pool.PingQuery" value="select 1 from ACCOUNT" />
<property name="Pool.PingEnabled" value="false" />
<property name="Pool.PingConnectionsOlderThan" value="1" />
<property name="Pool.PingConnectionsNotUsedFor" value="1" />
</dataSource>
</transactionManager>
<sqlMap resource="com/sitech/ibnms/config/sync/db/maps/AgentCfgSyncMap.xml" />
<sqlMap resource="com/sitech/ibnms/config/sync/db/maps/TbTuopuDiscoMap.xml" />
<sqlMap resource="com/sitech/ibnms/config/sync/db/maps/TbSelfmonHeartbeatMap.xml" />
<sqlMap resource="com/sitech/ibnms/config/sync/db/maps/TbVerModuleInfoMap.xml" />
<sqlMap resource="com/sitech/ibnms/config/sync/db/maps/CronScheduleLogMap.xml" />
</sqlMapConfig>
... ...
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
自身管理中心
-- 处理Agent全量同步请求
\ No newline at end of file
... ...
package com.sitech.ibnms;
import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;
import org.apache.log4j.Logger;
import com.sitech.ibnms.config.sync.BmcProperties;
import com.sitech.ibnms.config.sync.adaptor.AgentSyncAdaptorManager;
import com.sitech.ibnms.config.sync.adaptor.CronScheduleLogManager;
import com.sitech.ibnms.config.sync.service.AgentSyncService;
import com.sitech.ibnms.util.Formater;
import com.sitech.ibnms.util.SystemUtil;
public class BMCServerMain implements Runnable {
private static Logger logger = Logger.getLogger("LOGGER");
@Override
public void run() {
// sendModuleVersionInfo();
new Thread(new AgentSyncAdaptorManager(), "AgentSyncAdaptorManager").start();
new Thread(new CronScheduleLogManager(), "CronScheduleLogManager").start();
}
public static void main(String[] args) {
logger.info("******************************************************");
logger.info("* WELCOME ");
logger.info("*");
logger.info("* OS_VERSION: ".concat(SystemUtil.SYS_OS_VERSION));
logger.info("* OS_NAME: ".concat(SystemUtil.SYS_OS_NAME));
logger.info("*");
logger.info("* JAVA_VERSION: ".concat(SystemUtil.SYS_JAVA_VERSION));
logger.info("* JAVA_HOME: ".concat(SystemUtil.SYS_JAVA_HOME));
logger.info("******************************************************");
logger.info("******************* BMCServer start....**********************");
new Thread(new BMCServerMain(), "BMCServer").start();
}
private void sendModuleVersionInfo(){
Map<String, String> map = readAppJarPackage();
new AgentSyncService().uploadModuleVerInfo(map);
logger.info("Upload BmcServer info:MODULE_ID["+map.get("MODULE_ID")+"]," +
"MODULE_VERSION["+map.get("MODULE_VERSION")+"]," +
"BUILD_TIME["+map.get("BUILD_TIME")+"] successfully!");
}
private Map<String,String> readAppJarPackage(){
Map<String,String> appInfo = new HashMap<String, String>();
try{
File file = new File(BmcProperties.APP_SERVER_HOME+"/libs/bmc-server.jar");
JarFile jarFile = new JarFile(file);
Manifest mf = jarFile.getManifest();
Attributes attr = mf.getMainAttributes();
String buildTime = attr.getValue("Build-On");
if(null==buildTime || "".equals(buildTime.trim())){
buildTime = "999912312359";
}
String version = attr.getValue("Implementation-Version");
Date startDate = new Date();
String startTime = Formater.datetimeToString(startDate,"yyyy-MM-dd HH:mm");
appInfo.put("MODULE_ID",BmcProperties.APP_SERVER_ID);
appInfo.put("MODULE_TYPE",BmcProperties.APP_SERVER_TYPE);
appInfo.put("BUILD_TIME",buildTime);
appInfo.put("MODULE_VERSION",version);
appInfo.put("START_TIME",startTime);
}catch (Exception e){
logger.error("Exception while read bmc-server.jar",e);
}
return appInfo;
}
}
... ...
package com.sitech.ibnms.config.sync;
import java.util.ResourceBundle;
public class BmcProperties {
public static final String APP_SERVER_ID;
public static final String APP_SERVER_HOME;
public static final String APP_SERVER_TYPE = "7";
static{
ResourceBundle rb = ResourceBundle.getBundle("config");
APP_SERVER_ID = rb.getString("APP_SERVER_ID");
APP_SERVER_HOME = rb.getString("APP_SERVER_HOME");
}
}
... ...
package com.sitech.ibnms.config.sync;
import com.sitech.ibnms.config.sync.db.dao.AgentSyncDao;
/**
* 同步方式
*/
public class SyncType {
public static final int SYNC_ALL = 0;
public static final int ADD = 1;
public static final int UPDATE = 2;
public static final int DELETE = 3;
public static final String CAN_SYNC_LINKCOLL;
// 操作类型
public static final String OPERATE_TYPE_CHECK = "1";// 脚本验证或执行
public static final String OPERATE_TYPE_MODIFY = "2";// 脚本的增删改
public static final String OPERATE_TYPE_UPLOAD = "3";// 脚本下发
public static final String OPERATE_TYPE_ATTACH = "4";// 附件下发
public static final String OPERATE_TYPE_ATTACH_CHECK = "5";// 附件目录和文件校验
static{
AgentSyncDao dao = new AgentSyncDao();
String tempSync = dao.getActProvince();
if(null==tempSync || "".equals(tempSync.trim())){
CAN_SYNC_LINKCOLL = "N";
}else{
CAN_SYNC_LINKCOLL = tempSync.trim();
}
}
}
... ...
package com.sitech.ibnms.config.sync.adaptor;
import java.util.Map;
import javax.jms.Message;
import javax.jms.ObjectMessage;
import org.apache.log4j.Logger;
import com.sitech.ibnms.config.sync.service.AgentSyncService;
import com.sitech.ibnms.util.ThreadPoolUtil;
import com.sitech.ismp.messageObject.AgentSyncRequest;
import com.sitech.ismp.messageObject.ScheduleLog;
import com.sitech.util.mq.JMSConsumer;
import com.sitech.util.mq.MQConstants;
/**
* Agent配置同步(采集配置、巡检配置、告警配置)
*
* @author linxc
* @version
* @since Ver 7.0
* @Date 2012 Jul 11, 2012 1:20:39 PM
*/
public class AgentSyncAdaptor extends JMSConsumer{
private Logger logger = Logger.getLogger("LOGGER");
public AgentSyncAdaptor(String ip, String port) {
super(ip, port, MQConstants.Q_ROPORT_FROM_AGENT);
}
public void run() {
try{
logger.info("Start AgentSyncAdaptor...");
super.run();
}catch(Exception e){
logger.error("Exception while run AgentSyncAdaptor", e);
}
}
public void destroy() {
super.destroy();
}
/**
* 接收消息并处理
*/
protected void dispatchMessage(Message message) {
try {
if (message instanceof ObjectMessage) {
Object object = ((ObjectMessage) message).getObject();
logger.info("-- Get a message : " + object.toString());
if (object instanceof AgentSyncRequest) {
// agent启动,全量同步该agent相关配置
AgentSyncRequest request = (AgentSyncRequest) object;
String agentId = request.getAgentId();
Map<String, String> moduleInfo = request.getModuleInfo();
if(null!=moduleInfo){
logger.info("-- Get ModuleInfo : ModuleID=["+ moduleInfo.get("MODULE_ID") +"],ModuleVersion=["+
moduleInfo.get("MODULE_VERSION") +"],BuildTime=["+ moduleInfo.get("BUILD_TIME") +"]");
}
logger.info("Agent[" + agentId + "] start, sync all config.");
ThreadPoolUtil.executorService.execute(new AgentSyncAll(agentId, moduleInfo));
} else if (object instanceof ScheduleLog) {
ScheduleLog log = (ScheduleLog) object;
logger.info("Start insert CronScheduleLog:SchID["+log.getSchId()
+"],RequestID["+log.getRequestId()+"],SEQ["+log.getSeq()+"],LogInfo["+log.getLogInfo()+"]");
// ThreadPoolUtil.executorService.execute(new CronScheduleLog(log));
CronScheduleLogManager.save(log);
} else {
logger.info("This is not AgentSyncRequest!");
}
}
} catch (Exception e) {
logger.error("Exception whiel dispatchMessage:" + message.toString(), e);
}
}
}
class AgentSyncAll implements Runnable {
private String agentId;
private Map<String, String> moduleInfo;
public AgentSyncAll(String agentId, Map<String, String> moduleInfo) {
this.agentId = agentId;
this.moduleInfo = moduleInfo;
}
public void run() {
if (null != moduleInfo) {
new AgentSyncService().uploadModuleVerInfo(moduleInfo);
} else {
new AgentSyncService().syncAgentAll(agentId);
}
}
}
... ...
package com.sitech.ibnms.config.sync.adaptor;
import java.util.*;
import org.apache.log4j.Logger;
import com.sitech.ibnms.config.sync.db.dao.AgentSyncDao;
import com.sitech.ibnms.config.sync.db.domain.MQDetail;
public class AgentSyncAdaptorManager implements Runnable {
protected static Logger logger = Logger.getLogger("LOGGER");
private boolean isRun = true;
private static Map<String, MQDetail> mqMap = new HashMap<String, MQDetail>();
private static Map<String, AgentSyncAdaptor> adaptorMap = new HashMap<String, AgentSyncAdaptor>();
private AgentSyncDao dao = new AgentSyncDao();
public void run() {
while (isRun) {
try {
refresh();
} catch (Exception e) {
logger.error("Exception while refresh mq connection", e);
}
try {
// 10分钟更新一次
Thread.sleep(10 * 60 * 1000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private void refresh() {
ResourceBundle bmcConfig = ResourceBundle.getBundle("config");
String BMCServerType = bmcConfig.getString("BMCServerType");
// 获得所有的MQ
List<MQDetail> mqList = dao.selectMqDetailList(BMCServerType);
List<String> deleteKeyList = new ArrayList<String>();
if (mqList == null && mqMap.size() > 0) {
// 删除所有的MQ连接
for (String id : mqMap.keySet()) {
destroyAdaptor(id);
deleteKeyList.add(id);
}
} else if (mqList != null) {
Map<String, MQDetail> dbMqMap = new HashMap<String, MQDetail>();
for (MQDetail mq : mqList) {
dbMqMap.put(mq.getID(), mq);
}
for (String id : dbMqMap.keySet()) {
MQDetail dbMqDetail = dbMqMap.get(id);
MQDetail mqDetail = mqMap.get(id);
if (mqDetail == null) {
// 增加MQ连接
addAdaptor(dbMqDetail);
} else if (!mqDetail.equals(dbMqDetail)) {
// 更新MQ连接
updateAdaptor(dbMqDetail);
}
}
for (String id : mqMap.keySet()) {
MQDetail dbMqDetail = dbMqMap.get(id);
if (dbMqDetail == null) {
// 删除MQ连接
destroyAdaptor(id);
deleteKeyList.add(id);
}
}
}
for (String key : deleteKeyList) {
mqMap.remove(key);
adaptorMap.remove(key);
}
}
/**
* 销毁
*/
private void destroyAdaptor(String id) {
logger.info("Destroy AgentSyncAdaptor, MQ[" + id + "].");
AgentSyncAdaptor adaptor = adaptorMap.get(id);
adaptor.destroy();
try {
Thread.sleep(10000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
/**
* 增加
*/
private void addAdaptor(MQDetail mqDetail) {
logger.info("Add AgentSyncAdaptor, MQ[" + mqDetail.getID() + "], IP["
+ mqDetail.getIP() + "], PORT[" + mqDetail.getPORT() + "].");
AgentSyncAdaptor adaptor = new AgentSyncAdaptor(mqDetail.getIP(),
mqDetail.getPORT());
adaptorMap.put(mqDetail.getID(), adaptor);
mqMap.put(mqDetail.getID(), mqDetail);
adaptor.start();
}
/**
* 修改
*/
private void updateAdaptor(MQDetail mqDetail) {
String id = mqDetail.getID();
destroyAdaptor(id);
addAdaptor(mqDetail);
}
}
... ...
package com.sitech.ibnms.config.sync.adaptor;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import com.sitech.ibnms.config.sync.service.CronScheduleLogService;
import com.sitech.ismp.messageObject.ScheduleLog;
public class CronScheduleLogManager implements Runnable {
protected static Logger logger = Logger.getLogger("LOGGER");
private boolean isRun = true;
private static List<ScheduleLog> queue = new ArrayList<ScheduleLog>();
private CronScheduleLogService logService = new CronScheduleLogService();
@Override
public void run() {
while(isRun){
try {
refresh();
} catch (Exception e) {
logger.error("Exception while refresh CronScheduleLog", e);
}
try {
Thread.sleep(3000L);
} catch (InterruptedException e) {
logger.error("Exception while CronScheduleLogManager sleeping",e);
}
}
}
public static void save(ScheduleLog log) {
synchronized (queue) {
queue.add(log);
}
}
private List<ScheduleLog> poll() {
List<ScheduleLog> temp = new ArrayList<ScheduleLog>();
synchronized (queue) {
temp.addAll(queue);
queue.clear();
}
return temp;
}
private void refresh(){
List<ScheduleLog> logs = poll();
for(ScheduleLog log:logs){
logService.insertCronScheduleLogs(log);
}
}
}
... ...
package com.sitech.ibnms.config.sync.db.dao;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.sitech.ibnms.config.sync.SyncType;
import com.sitech.ibnms.config.sync.db.domain.AgentCollConfig;
import com.sitech.ibnms.config.sync.db.domain.AgentDetail;
import com.sitech.ibnms.config.sync.db.domain.MQDetail;
import com.sitech.ibnms.config.sync.db.domain.TbCfgEvent;
import com.sitech.ibnms.util.BaseDao;
import com.sitech.ibnms.util.JSONUtil;
import com.sitech.ibnms.util.SameGUID;
import com.sitech.ismp.messageObject.AgentSyncObject;
import com.sitech.ismp.messageObject.AlarmEventConfig;
import com.sitech.ismp.messageObject.AlarmEventConfigSyncObject;
public class AgentSyncDao extends BaseDao {
public AgentDetail selectAgentDetail(String agentId) {
try {
HashMap<String, String> map = new HashMap<String, String>();
map.put("AGENT_ID", agentId);
return (AgentDetail) sqlmapClient.queryForObject(
"selectAgentDetail", map);
} catch (Exception e) {
error.error("Exception while selectAgentDetail", e);
return null;
}
}
@SuppressWarnings("unchecked")
public List<MQDetail> selectMqDetailList(String mqType) {
try {
return sqlmapClient.queryForList("selectMqDetailList", mqType);
} catch (Exception e) {
error.error("Exception while selectMqDetailList", e);
return null;
}
}
public MQDetail selectMqDetailByAgentId(String agentId) {
try {
return (MQDetail) sqlmapClient.queryForObject(
"selectMqDetailByAgentId", agentId);
} catch (Exception e) {
error.error("Exception while selectMqDetailByAgentId:" + agentId, e);
return null;
}
}
/**
* 查询链路采集配置
*/
public List<AgentSyncObject> selectLinkCollList(String agentId) {
List<AgentSyncObject> result = new ArrayList<AgentSyncObject>();
try{
HashMap<String, String> params = new HashMap<String, String>();
params.put("AGENT_ID",agentId);
List<HashMap<String,String>> list = sqlmapClient.queryForList("selectLinkCollList",params);
Map<String,List> links = new HashMap<String, List>();
List<String> linkIdList = new ArrayList<String>();
for(int i=0;i<list.size();i++){
HashMap<String,String> map = list.get(i);
String linkId = map.get("LINK_ID").trim();
if(null==links.get(linkId)){
List<HashMap<String,String>> linkList = new ArrayList<HashMap<String, String>>();
linkList.add(map);
linkIdList.add(linkId);
links.put(linkId,linkList);
}else{
links.get(linkId).add(map);
}
}
for(String linkId:linkIdList){
List<HashMap<String,String>> link = links.get(linkId);
String cronTab = link.get(0).get("PERIOD_ID").trim();
AgentSyncObject obj = new AgentSyncObject();
obj.setScheduleId(linkId);
obj.setMbeanId("ED6CF9E44482013F321D96140A668908");
obj.setClassName("com.sitech.ismp.coll.link.CollNetLink");
obj.setObjectName("CollLink:type=Mbean");
obj.setBeginTime(null);
obj.setEndTime(null);
obj.setCrontab(cronTab);
obj.setFunction("getLinkPM");
obj.setInterval(0);
obj.setRepeatCount(0);
HashMap<String, String> collParams = new HashMap<String, String>();
collParams.put("LINK_ID",linkId);
String json = JSONUtil.toJSON(link);
collParams.put("JSON_STR",json);
obj.setParams(collParams);
result.add(obj);
}
}catch (Exception e){
error.error("Exception while selectLinkCollList", e);
}
return result;
}
@SuppressWarnings("unchecked")
public List<AgentSyncObject> selectDevCollList(String agentId) {
List<AgentSyncObject> result = new ArrayList<AgentSyncObject>();
try {
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("AGENT_ID", agentId);
List<AgentCollConfig> list = sqlmapClient.queryForList("getDevCollList", map1);
for (AgentCollConfig config : list) {
AgentSyncObject obj = getAgentSyncObject(config);
result.add(obj);
String scheduleId = SameGUID.getSameGUID(config.getMBEAN_ID()
+ config.getDEVICE_ID() + config.getFUNCTION());
obj.setScheduleId(scheduleId);
// 查询采集参数
HashMap<String, String> map2 = new HashMap<String, String>();
map2.put("AGENT_ID", agentId);
map2.put("MODEL_ID", config.getMBEAN_ID());
map2.put("DEVICE_ID", config.getDEVICE_ID());
List<HashMap<String, String>> paramList = sqlmapClient.queryForList("getDevParamList", map2);
if (paramList != null && paramList.size() > 0) {
for (HashMap<String, String> paramMap : paramList) {
String paramName = paramMap.get("PARAM_NAME");
String paramValue = paramMap.get("PARAM_VALUE");
obj.getParams().put(paramName, paramValue);
}
}
try{
if("getPort".equals(config.getFUNCTION().trim())){
// 网络端口采集配置
List<HashMap<String, String>> netIfList = sqlmapClient.queryForList("getNetIfList", map2);
if (null != netIfList && !netIfList.isEmpty()) {
List<String> ifList = new ArrayList<String>();
for(HashMap<String, String> netIf : netIfList){
ifList.add(netIf.get("UNIT_ID"));
}
obj.getParams().put("IF_FILTER", JSONUtil.toJSON(ifList));
}
}
}catch(Exception e){
error.error("Exception while getNetIfList", e);
}
}
} catch (Exception e) {
error.error("Exception while selectDevCollList", e);
}
return result;
}
/**
* 查询业务采集配置
*/
@SuppressWarnings("unchecked")
public List<AgentSyncObject> selectBusiCollList(String agentId) {
List<AgentSyncObject> result = new ArrayList<AgentSyncObject>();
try {
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("AGENT_ID", agentId);
List<AgentCollConfig> list = sqlmapClient.queryForList(
"getBusiCollList", map1);
for (AgentCollConfig config : list) {
AgentSyncObject obj = getAgentSyncObject(config);
result.add(obj);
// 查询采集参数
HashMap<String, String> map2 = new HashMap<String, String>();
map2.put("AGENT_ID", agentId);
map2.put("SCHEDULE_ID", config.getSCHEDULE_ID());
List<HashMap<String, String>> paramList = sqlmapClient
.queryForList("getBusiParamList", map2);
if (paramList != null && paramList.size() > 0) {
for (HashMap<String, String> paramMap : paramList) {
String paramName = paramMap.get("PARAM_NAME");
String paramValue = paramMap.get("PARAM_VALUE");
obj.getParams().put(paramName, paramValue);
}
}
}
} catch (Exception e) {
error.error("Exception while selectAgentDetail", e);
}
return result;
}
/**
* 查询智能巡检配置
*/
@SuppressWarnings("unchecked")
public List<AgentSyncObject> selectCheckList(String agentId) {
List<AgentSyncObject> result = new ArrayList<AgentSyncObject>();
try {
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("AGENT_ID", agentId);
List<AgentCollConfig> list = sqlmapClient.queryForList(
"getDevCheckList", map1);
for (AgentCollConfig config : list) {
result.add(getAgentSyncObject(config));
}
} catch (Exception e) {
error.error("Exception while selectAgentDetail", e);
}
return result;
}
@SuppressWarnings("unchecked")
public AlarmEventConfigSyncObject selectEventCfgList(String agentId) {
try {
Map<String, String> params = new HashMap<String, String>();
params.put("AGENT_ID", agentId);
String sql = "select distinct t.*\n"
+ " from tb_cfg_event t,\n"
+ " (select agent_id,\n"
+ " unit_id,\n"
+ " substr(unit_id, 0, decode(instr(unit_id, ':'), 0, length(unit_id), instr(unit_id, ':') - 1)) kbp_class,\n"
+ " decode(instr(unit_id, ':'), 0, '', substr(unit_id, instr(unit_id, ':') + 1)) device_id\n"
+ " from v_agent_res) v\n"
+ " where t.ENABLE = 1\n"
+ " and t.IS_ORG_TYPE = 1\n"
+ " and v.agent_id = '"+agentId+"'\n"
+ " and v.UNIT_ID is not null\n"
+ " and (t.unit_id like v.kbp_class || '%' || v.DEVICE_ID || '%')\n";
logger.info(sql);
List<TbCfgEvent> tbCfgEventList = sqlmapClient.queryForList(
"selectTbCfgEventByAgentId", params);
logger.info("-- return " + tbCfgEventList.size());
return getEventSyncObject(agentId, SyncType.SYNC_ALL,
tbCfgEventList);
} catch (Exception e) {
error.error("Exception while selectEventCfgList(" + agentId + ")",
e);
return null;
}
}
private AlarmEventConfigSyncObject getEventSyncObject(String agentId,
int type, List<TbCfgEvent> tbCfgEventList) {
AlarmEventConfigSyncObject obj = new AlarmEventConfigSyncObject();
obj.setAgentId(agentId);
obj.setSyncType(type);
List<AlarmEventConfig> list = new ArrayList<AlarmEventConfig>();
obj.setConfigList(list);
for (TbCfgEvent elem : tbCfgEventList) {
AlarmEventConfig config = new AlarmEventConfig();
String guid = elem.getGUID();
String kpiId = elem.getKPI_ID();
String unitId = elem.getUNIT_ID();
String expression = elem.getEXPRESSION() == null ? "" : elem
.getEXPRESSION();
String expression1 = elem.getEXPRESSION1() == null ? "" : elem
.getEXPRESSION1();
String expression2 = elem.getEXPRESSION2() == null ? "" : elem
.getEXPRESSION2();
String expression3 = elem.getEXPRESSION3() == null ? "" : elem
.getEXPRESSION3();
String expression4 = elem.getEXPRESSION4() == null ? "" : elem
.getEXPRESSION4();
String expression5 = elem.getEXPRESSION5() == null ? "" : elem
.getEXPRESSION5();
String expression6 = elem.getEXPRESSION6() == null ? "" : elem
.getEXPRESSION6();
int enable = Integer.parseInt(elem.getENABLE());
String extUnitId = elem.getEXT_UNIT_ID() == null ? "" : elem
.getEXT_UNIT_ID();
config.setGuid(guid);
config.setKpiId(kpiId);
config.setUnitId(unitId);
config.setExpression(expression);
config.setExpression1(expression1);
config.setExpression2(expression2);
config.setExpression3(expression3);
config.setExpression4(expression4);
config.setExpression5(expression5);
config.setExpression6(expression6);
config.setEnable(enable);
config.setExtUnitId(extUnitId);
list.add(config);
}
return obj;
}
private AgentSyncObject getAgentSyncObject(AgentCollConfig config) {
AgentSyncObject obj = new AgentSyncObject();
obj.setScheduleId(config.getSCHEDULE_ID());
obj.setMbeanId(config.getMBEAN_ID());
obj.setClassName(config.getCLASS_NAME());
obj.setObjectName(config.getOBJECT_NAME());
obj.setBeginTime(config.getBEGIN_TIME());
obj.setEndTime(config.getEND_TIME());
obj.setCrontab(config.getCRONTAB());
obj.setFunction(config.getFUNCTION());
obj.setInterval(config.getINTERVAL());
obj.setRepeatCount(config.getREPEAT_COUNT());
HashMap<String, String> params = new HashMap<String, String>();
obj.setParams(params);
return obj;
}
@SuppressWarnings("unchecked")
public List<AgentSyncObject> selectDevCollCfgSpec(String agentId,
String modelId, String deviceId) {
List<AgentSyncObject> result = new ArrayList<AgentSyncObject>();
try {
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("AGENT_ID", agentId);
map1.put("MBEAN_ID", modelId);
map1.put("DEVICE_ID", deviceId);
List<AgentCollConfig> list = sqlmapClient.queryForList(
"getDevCollListSpec", map1);
for (AgentCollConfig config : list) {
AgentSyncObject obj = getAgentSyncObject(config);
result.add(obj);
String scheduleId = SameGUID.getSameGUID(config.getMBEAN_ID()
+ config.getDEVICE_ID() + config.getFUNCTION());
obj.setScheduleId(scheduleId);
// 查询采集参数
HashMap<String, String> map2 = new HashMap<String, String>();
map2.put("AGENT_ID", agentId);
map2.put("MODEL_ID", modelId);
map2.put("DEVICE_ID", deviceId);
List<HashMap<String, String>> paramList = sqlmapClient
.queryForList("getDevParamList", map2);
if (paramList != null && paramList.size() > 0) {
for (HashMap<String, String> paramMap : paramList) {
String paramName = paramMap.get("PARAM_NAME");
String paramValue = paramMap.get("PARAM_VALUE");
obj.getParams().put(paramName, paramValue);
}
}
}
} catch (Exception e) {
error.error("Exception while selectDevCollCfgSpec(" + agentId
+ ")", e);
return null;
}
return result;
}
@SuppressWarnings("unchecked")
public List<AgentSyncObject> selectBusiCollCfgSpec(String agentId,
String scheduleId) {
List<AgentSyncObject> result = new ArrayList<AgentSyncObject>();
try {
HashMap<String, String> map = new HashMap<String, String>();
map.put("AGENT_ID", agentId);
map.put("SCHEDULE_ID", scheduleId);
List<AgentCollConfig> list = sqlmapClient.queryForList(
"getBusiCollListSpec", map);
for (AgentCollConfig config : list) {
AgentSyncObject obj = getAgentSyncObject(config);
result.add(obj);
List<HashMap<String, String>> paramList = sqlmapClient
.queryForList("getBusiParamList", map);
if (paramList != null && paramList.size() > 0) {
for (HashMap<String, String> paramMap : paramList) {
String paramName = paramMap.get("PARAM_NAME");
String paramValue = paramMap.get("PARAM_VALUE");
obj.getParams().put(paramName, paramValue);
}
}
}
} catch (Exception e) {
error.error("Exception while selectBusiCollCfgSpec(" + scheduleId
+ ")", e);
}
return result;
}
@SuppressWarnings("unchecked")
public List<AgentSyncObject> selectCheckCfgSpec(String agentId) {
List<AgentSyncObject> result = new ArrayList<AgentSyncObject>();
HashMap<String, String> map1 = new HashMap<String, String>();
map1.put("AGENT_ID", agentId);
List<AgentCollConfig> list;
try {
list = sqlmapClient.queryForList("getDevCheckList", map1);
for (AgentCollConfig config : list) {
result.add(getAgentSyncObject(config));
}
} catch (SQLException e) {
error.error("Exception while selectCheckCfgSpec(" + agentId + ")",
e);
}
return result;
}
/**
* 查询与UnitId相关的AgentId
*/
@SuppressWarnings("unchecked")
public List<String> queryAgentIdByUnitId(String unitId) {
HashMap<String, String> params = new HashMap<String, String>();
params.put("UNIT_ID", unitId);
try {
return sqlmapClient.queryForList("queryAgentIdByUnitId", params);
} catch (SQLException e) {
error.error(
"Exception while queryAgentIdByUnitId(" + unitId + ")", e);
return null;
}
}
public String getActProvince(){
HashMap<String, String> params = new HashMap<String, String>();
try {
return (String) sqlmapClient.queryForObject("getActProvince", params);
} catch (SQLException e) {
error.error(
"Exception while getActProvince", e);
return null;
}
}
public List<HashMap<String, String>> selectCronTask(String agentId) throws SQLException {
return sqlmapClient.queryForList("selectCronTask", agentId);
}
public List<String> selectCronTaskContent(String version) throws SQLException{
return sqlmapClient.queryForList("selectCronTaskContent", version);
}
}
... ...
package com.sitech.ibnms.config.sync.db.dao;
import com.sitech.ibnms.util.BaseDao;
import com.sitech.ismp.messageObject.AgentSyncObject;
import com.sitech.ismp.messageObject.ScheduleLog;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CronScheduleLogDao extends BaseDao {
public void insertTbLogSchedule(Map<String,String> schLog){
try{
String beginTime = schLog.get("BEGIN_TIME");
String endTime = schLog.get("END_TIME");
String nextFireTime = schLog.get("NEXT_FIRE_TIME");
StringBuffer sql = new StringBuffer();
sql.append("insert into tb_log_schedule(guid,sch_id,seq,trigger_type,");
String beginDate = "";
String endDate = "";
if(null!=beginTime && !"".equals(beginTime.trim())){
sql.append("begin_time,");
beginDate = "to_date('"+schLog.get("BEGIN_TIME")+"','yyyy-mm-dd hh24:mi:ss'),";
}
if(null!=endTime && !"".equals(endTime.trim())){
sql.append("end_time,");
endDate = "to_date('"+schLog.get("END_TIME")+"','yyyy-mm-dd hh24:mi:ss'),";
}
sql.append("db_time,operate_type,next_fire_time) ");
sql.append(" values('"+schLog.get("REQ_ID")+"','"+schLog.get("SCH_ID")+"',"+schLog.get("SEQ")+",'"+schLog.get("TRIGGER_TYPE")+"',");
sql.append(beginDate).append(endDate);
sql.append("SYSDATE,'"+schLog.get("OPR_TYPE")+"'");
if(null==nextFireTime || "".equals(nextFireTime)){
nextFireTime = "sysdate";
}else{
nextFireTime = " to_date('"+nextFireTime+"','yyyy-mm-dd hh24:mi:ss') ";
}
sql.append(","+nextFireTime);
sql.append(")");
sqlmapClient.insert("insertTbLogSchedule",sql.toString());
}catch (Exception e){
error.error("Exception while insertTbLogSchedule", e);
}
}
public void insertTbLogScheduleDetail(Map<String,String> schLog){
try{
sqlmapClient.insert("insertTbLogScheduleDetail",schLog);
}catch (Exception e){
error.error("Exception while insertTbLogScheduleDetail", e);
}
}
public void updateTbLogScheduleEndTimeAndScrStatus(Map<String,String> schLog){
try{
sqlmapClient.update("updateTbLogScheduleEndTimeAndScrStatus",schLog);
}catch (Exception e){
error.error("Exception while updateTbLogSchedule", e);
}
}
public void updateTbLogScheduleNextFireTime(Map<String,String> schLog){
try{
sqlmapClient.update("updateTbLogScheduleNextFireTime",schLog);
}catch (Exception e){
error.error("Exception while updateTbLogScheduleNextFireTime", e);
}
}
public void updateTbCCCrontabTaskHostStatus(Map<String,String> schLog){
try{
sqlmapClient.update("updateTbCCCrontabTaskHostStatus",schLog);
}catch (Exception e){
error.error("Exception while updateTbCCCrontabTaskHostStatus", e);
}
}
public void updateTbCCCrontabTaskHostDelFlag(Map<String,String> schLog){
try{
sqlmapClient.update("updateTbCCCrontabTaskHostDelFlag",schLog);
}catch (Exception e){
error.error("Exception while updateTbCCCrontabTaskHostDelFlag", e);
}
}
public void updateTbCCCrontabTaskHostScriptSyncStatus(Map<String,String> schLog){
try{
sqlmapClient.update("updateTbCCCrontabTaskHostScriptSyncStatus",schLog);
}catch (Exception e){
error.error("Exception while updateTbCCCrontabTaskHostScriptSyncStatus", e);
}
}
public void updateCronAttachHostStatus(Map<String,String> schLog){
try{
sqlmapClient.update("updateCronAttachHostStatus",schLog);
}catch (Exception e){
error.error("Exception while updateCronAttachHostStatus", e);
}
}
}
... ...
package com.sitech.ibnms.config.sync.db.dao;
import java.util.List;
import com.sitech.ibnms.config.sync.db.domain.TbSelfmonHeartbeat;
import com.sitech.ibnms.util.BaseDao;
public class TbSelfmonHeartbeatDao extends BaseDao {
public void batchUpdateTbSelfmonHeartbeat(List<TbSelfmonHeartbeat> list) {
;
try {
// 开始事务
sqlmapClient.startTransaction();
// 开始批处理
sqlmapClient.startBatch();
for (TbSelfmonHeartbeat data : list) {
try {
sqlmapClient.update("batchUpdateTbSelfmonHeartbeat", data);
} catch (Exception e) {
logger.error(
"Exception while batchUpdateTbSelfmonHeartbeat(),"
+ data.toString(), e);
}
}
// 执行批处理
sqlmapClient.executeBatch();
// 提交事务
sqlmapClient.commitTransaction();
} catch (Exception e) {
logger.error("Exception while batchUpdateTbSelfmonHeartbeat().", e);
} finally {
try {
sqlmapClient.endTransaction();
} catch (Exception e) {
logger.error(
"Exception while batchUpdateTbSelfmonHeartbeat().", e);
}
}
}
}
... ...
package com.sitech.ibnms.config.sync.db.dao;
import java.util.HashMap;
import java.util.List;
import com.sitech.ibnms.config.sync.db.domain.TbTuopuDiscoTask;
import com.sitech.ibnms.config.sync.db.domain.TbTuopuDiscoTaskParam;
import com.sitech.ibnms.util.BaseDao;
public class TbTuopuDiscoDao extends BaseDao {
@SuppressWarnings("unchecked")
public List<TbTuopuDiscoTask> selectTopoDiscoTaskList(String agentId) {
try {
HashMap<String, String> param = new HashMap<String, String>();
param.put("AGENT_ID", agentId);
return sqlmapClient.queryForList("selectTopoDiscoTaskList", param);
} catch (Exception e) {
logger.error("Exception while selectTopoDiscoTaskList(" + agentId
+ ")", e);
return null;
}
}
@SuppressWarnings("unchecked")
public List<TbTuopuDiscoTaskParam> findDiscoTaskParamById(String taskId) {
try {
HashMap<String, String> param = new HashMap<String, String>();
param.put("TASK_ID", taskId);
List<TbTuopuDiscoTaskParam> list = sqlmapClient.queryForList(
"findDiscoTaskParamById", param);
return list;
} catch (Exception e) {
logger.error("Exception while findDiscoTaskParamById(" + taskId
+ ")", e);
return null;
}
}
}
... ...
package com.sitech.ibnms.config.sync.db.dao;
import com.sitech.ibnms.config.sync.db.domain.AgentDetail;
import com.sitech.ibnms.util.BaseDao;
import java.util.HashMap;
import java.util.Map;
public class UploadModuleDao extends BaseDao {
public void insertOrUpdateModuleVersionInfo(Map module){
try {
sqlmapClient.insert("insertOrUpdateModuleVersionInfo", module);
} catch (Exception e) {
error.error("Exception while insertOrUpdateModuleVersionInfo", e);
}
}
}
... ...
package com.sitech.ibnms.config.sync.db.domain;
import java.util.Date;
/**
* Agent采集配置信息
*
* @author linxc
* @version
* @since Ver 7.0
* @Date 2012 Jul 13, 2012 9:28:22 AM
*/
public class AgentCollConfig {
/** 采集设备的ID */
private String DEVICE_ID;
/** MBEAN_ID */
private String MBEAN_ID;
/** JMX对象名 */
private String OBJECT_NAME;
/** MBEAN类名 */
private String CLASS_NAME;
/** 调度ID */
private String SCHEDULE_ID;
/** 执行方法 */
private String FUNCTION;
/** 开始时间 */
private Date BEGIN_TIME;
/** 结束时间 */
private Date END_TIME;
/** 执行次数 */
private int REPEAT_COUNT;
/** 执行周期 */
private long INTERVAL;
/** 按照指定时间执行 */
private String CRONTAB;
public String getMBEAN_ID() {
return MBEAN_ID;
}
public void setMBEAN_ID(String mbean_id) {
MBEAN_ID = mbean_id;
}
public String getOBJECT_NAME() {
return OBJECT_NAME;
}
public void setOBJECT_NAME(String object_name) {
OBJECT_NAME = object_name;
}
public String getCLASS_NAME() {
return CLASS_NAME;
}
public void setCLASS_NAME(String class_name) {
CLASS_NAME = class_name;
}
public String getSCHEDULE_ID() {
return SCHEDULE_ID;
}
public void setSCHEDULE_ID(String schedule_id) {
SCHEDULE_ID = schedule_id;
}
public String getFUNCTION() {
return FUNCTION;
}
public void setFUNCTION(String function) {
FUNCTION = function;
}
public Date getBEGIN_TIME() {
return BEGIN_TIME;
}
public void setBEGIN_TIME(Date begin_time) {
BEGIN_TIME = begin_time;
}
public Date getEND_TIME() {
return END_TIME;
}
public void setEND_TIME(Date end_time) {
END_TIME = end_time;
}
public int getREPEAT_COUNT() {
return REPEAT_COUNT;
}
public void setREPEAT_COUNT(int repeat_count) {
REPEAT_COUNT = repeat_count;
}
public long getINTERVAL() {
return INTERVAL;
}
public void setINTERVAL(long interval) {
INTERVAL = interval;
}
public String getCRONTAB() {
return CRONTAB;
}
public void setCRONTAB(String crontab) {
CRONTAB = crontab;
}
public String getDEVICE_ID() {
return DEVICE_ID;
}
public void setDEVICE_ID(String device_id) {
DEVICE_ID = device_id;
}
}
... ...
package com.sitech.ibnms.config.sync.db.domain;
public class AgentDetail {
private String ID;
private String IP;
private String JMX_PORT;
private String UNIT_ID;
public String getID() {
return ID;
}
public void setID(String id) {
ID = id;
}
public String getIP() {
return IP;
}
public void setIP(String ip) {
IP = ip;
}
public String getJMX_PORT() {
return JMX_PORT;
}
public void setJMX_PORT(String jmx_port) {
JMX_PORT = jmx_port;
}
public String getUNIT_ID() {
return UNIT_ID;
}
public void setUNIT_ID(String UNIT_ID) {
this.UNIT_ID = UNIT_ID;
}
}
... ...
package com.sitech.ibnms.config.sync.db.domain;
public class MQDetail {
private String ID;
private String IP;
private String PORT;
private String STATUS;
public boolean equals(MQDetail obj) {
if (IP.equals(obj.getIP()) && PORT.equals(obj.getPORT())) {
return true;
}
return false;
}
public String getID() {
return ID;
}
public void setID(String id) {
ID = id;
}
public String getIP() {
return IP;
}
public void setIP(String ip) {
IP = ip;
}
public String getPORT() {
return PORT;
}
public void setPORT(String port) {
PORT = port;
}
public String getSTATUS() {
return STATUS;
}
public void setSTATUS(String status) {
STATUS = status;
}
}
... ...
package com.sitech.ibnms.config.sync.db.domain;
/**
*
* @author liujhc
*/
public class TbCfgEvent {
private String IS_ORG_TYPE = "1";
// 告警配置标识
private String GUID;
// 指标标识
private String KPI_ID;
// 指标名称
transient private String KPI_NAME;
// 实体标识
private String UNIT_ID;
// 实体名称
transient private String UNIT_NAME;
// 告警描述表达式
private String EXPRESSION;
// 严重告警表达式
private String EXPRESSION1;
// 重要告警表达式
private String EXPRESSION2;
// 一般告警表达式
private String EXPRESSION3;
// 一级预警表达式
private String EXPRESSION4;
// 二级预警表达式
private String EXPRESSION5;
// 告警清除表达式
private String EXPRESSION6;
private String ENABLE = "1";
// 扩展实体标识
private String EXT_UNIT_ID;
private String VALIDATE_VALUE;
private String NOTE;
private String GROUP_ID;
private String MANAGE_UNIT_ID;
// 告警类别
private String ALARM_TYPE;
// 告警描述中文表达式
private String EXPRESSION_DESC;
// 严重告警中文表达式
private String EXPRESSION1_DESC;
// 重要告警中文表达式
private String EXPRESSION2_DESC;
// 一般告警中文表达式
private String EXPRESSION3_DESC;
// 一级预警中文表达式
private String EXPRESSION4_DESC;
// 二级预警中文表达式
private String EXPRESSION5_DESC;
// 告警清除中文表达式
private String EXPRESSION6_DESC;
// 告警模板标识
private String AMODULE_ID;
public TbCfgEvent() {
}
public String getPK() {
return GUID;
}
public String getSK() {
return "GUID=" + GUID;
}
public String getALARM_TYPE() {
return ALARM_TYPE;
}
public void setALARM_TYPE(String ALARM_TYPE) {
this.ALARM_TYPE = ALARM_TYPE;
}
public String getAMODULE_ID() {
return AMODULE_ID;
}
public void setAMODULE_ID(String AMODULE_ID) {
this.AMODULE_ID = AMODULE_ID;
}
public String getENABLE() {
return ENABLE;
}
public void setENABLE(String ENABLE) {
this.ENABLE = ENABLE;
}
public String getEXPRESSION() {
return EXPRESSION;
}
public void setEXPRESSION(String EXPRESSION) {
this.EXPRESSION = EXPRESSION;
}
public String getEXPRESSION1() {
return EXPRESSION1;
}
public void setEXPRESSION1(String EXPRESSION1) {
this.EXPRESSION1 = EXPRESSION1;
}
public String getEXPRESSION1_DESC() {
return EXPRESSION1_DESC;
}
public void setEXPRESSION1_DESC(String EXPRESSION1_DESC) {
this.EXPRESSION1_DESC = EXPRESSION1_DESC;
}
public String getEXPRESSION2() {
return EXPRESSION2;
}
public void setEXPRESSION2(String EXPRESSION2) {
this.EXPRESSION2 = EXPRESSION2;
}
public String getEXPRESSION2_DESC() {
return EXPRESSION2_DESC;
}
public void setEXPRESSION2_DESC(String EXPRESSION2_DESC) {
this.EXPRESSION2_DESC = EXPRESSION2_DESC;
}
public String getEXPRESSION3() {
return EXPRESSION3;
}
public void setEXPRESSION3(String EXPRESSION3) {
this.EXPRESSION3 = EXPRESSION3;
}
public String getEXPRESSION3_DESC() {
return EXPRESSION3_DESC;
}
public void setEXPRESSION3_DESC(String EXPRESSION3_DESC) {
this.EXPRESSION3_DESC = EXPRESSION3_DESC;
}
public String getEXPRESSION4() {
return EXPRESSION4;
}
public void setEXPRESSION4(String EXPRESSION4) {
this.EXPRESSION4 = EXPRESSION4;
}
public String getEXPRESSION4_DESC() {
return EXPRESSION4_DESC;
}
public void setEXPRESSION4_DESC(String EXPRESSION4_DESC) {
this.EXPRESSION4_DESC = EXPRESSION4_DESC;
}
public String getEXPRESSION5() {
return EXPRESSION5;
}
public void setEXPRESSION5(String EXPRESSION5) {
this.EXPRESSION5 = EXPRESSION5;
}
public String getEXPRESSION5_DESC() {
return EXPRESSION5_DESC;
}
public void setEXPRESSION5_DESC(String EXPRESSION5_DESC) {
this.EXPRESSION5_DESC = EXPRESSION5_DESC;
}
public String getEXPRESSION6() {
return EXPRESSION6;
}
public void setEXPRESSION6(String EXPRESSION6) {
this.EXPRESSION6 = EXPRESSION6;
}
public String getEXPRESSION6_DESC() {
return EXPRESSION6_DESC;
}
public void setEXPRESSION6_DESC(String EXPRESSION6_DESC) {
this.EXPRESSION6_DESC = EXPRESSION6_DESC;
}
public String getEXPRESSION_DESC() {
return EXPRESSION_DESC;
}
public void setEXPRESSION_DESC(String EXPRESSION_DESC) {
this.EXPRESSION_DESC = EXPRESSION_DESC;
}
public String getEXT_UNIT_ID() {
return EXT_UNIT_ID;
}
public void setEXT_UNIT_ID(String EXT_UNIT_ID) {
this.EXT_UNIT_ID = EXT_UNIT_ID;
}
public String getGROUP_ID() {
return GROUP_ID;
}
public void setGROUP_ID(String GROUP_ID) {
this.GROUP_ID = GROUP_ID;
}
public String getGUID() {
return GUID;
}
public void setGUID(String GUID) {
this.GUID = GUID;
}
public String getIS_ORG_TYPE() {
return IS_ORG_TYPE;
}
public void setIS_ORG_TYPE(String IS_ORG_TYPE) {
this.IS_ORG_TYPE = IS_ORG_TYPE;
}
public String getKPI_ID() {
return KPI_ID;
}
public void setKPI_ID(String KPI_ID) {
this.KPI_ID = KPI_ID;
}
public String getMANAGE_UNIT_ID() {
return MANAGE_UNIT_ID;
}
public void setMANAGE_UNIT_ID(String MANAGE_UNIT_ID) {
this.MANAGE_UNIT_ID = MANAGE_UNIT_ID;
}
public String getNOTE() {
return NOTE;
}
public void setNOTE(String NOTE) {
this.NOTE = NOTE;
}
public String getUNIT_ID() {
return UNIT_ID;
}
public void setUNIT_ID(String UNIT_ID) {
this.UNIT_ID = UNIT_ID;
}
public String getVALIDATE_VALUE() {
return VALIDATE_VALUE;
}
public void setVALIDATE_VALUE(String VALIDATE_VALUE) {
this.VALIDATE_VALUE = VALIDATE_VALUE;
}
public String getKPI_NAME() {
return KPI_NAME;
}
public void setKPI_NAME(String KPI_NAME) {
this.KPI_NAME = KPI_NAME;
}
public String getUNIT_NAME() {
return UNIT_NAME;
}
public void setUNIT_NAME(String UNIT_NAME) {
this.UNIT_NAME = UNIT_NAME;
}
}
... ...
package com.sitech.ibnms.config.sync.db.domain;
import java.util.Date;
import com.sitech.ibnms.util.SameGUID;
import com.sitech.ismp.messageObject.HeartbeatObject;
public class TbSelfmonHeartbeat {
private String PROCESS_ID;
private String MODULE_ID;
/**
* 该字段不再使用,用TYPE代替
*/
private int MODULE_TYPE;
private String PROCESS_NAME;
/**
* 该字段不再使用,用IP_ADDR代替
*/
private String IP;
private Date REPORT_TIME;
private Date DB_TIME;
/**
* 该字段不再使用,用STATUS代替
*/
private int PROCESS_STATUS;
private String PROCESS_CPU;
private String PROCESS_MEM;
private Date PROCESS_START_TIME;
private String PROCESS_ERR_INFO;
private String MODULE_NAME;
private String IP_ADDR;
private String TYPE;
private int STATUS;
public TbSelfmonHeartbeat() {
}
public TbSelfmonHeartbeat(HeartbeatObject obj) {
this.setPROCESS_ID(SameGUID.getSameGUID(obj.getModuleId()
+ obj.getProcessName()));
this.setMODULE_ID(obj.getModuleId());
this.setPROCESS_NAME(obj.getProcessName());
this.setREPORT_TIME(obj.getReportTime());
this.setPROCESS_CPU(obj.getProcessCpu());
this.setPROCESS_MEM(obj.getProcessMem());
this.setPROCESS_ERR_INFO(obj.getProcessErrInfo());
this.setPROCESS_STATUS(obj.getProcessStatus());
this.setPROCESS_START_TIME(obj.getProcessStartTime());
}
public String getPROCESS_ID() {
return PROCESS_ID;
}
public void setPROCESS_ID(String process_id) {
PROCESS_ID = process_id;
}
public String getMODULE_ID() {
return MODULE_ID;
}
public void setMODULE_ID(String module_id) {
MODULE_ID = module_id;
}
public int getMODULE_TYPE() {
return MODULE_TYPE;
}
public void setMODULE_TYPE(int module_type) {
MODULE_TYPE = module_type;
}
public String getPROCESS_NAME() {
return PROCESS_NAME;
}
public void setPROCESS_NAME(String process_name) {
PROCESS_NAME = process_name;
}
public String getIP() {
return IP;
}
public void setIP(String ip) {
IP = ip;
}
public Date getREPORT_TIME() {
return REPORT_TIME;
}
public void setREPORT_TIME(Date report_time) {
REPORT_TIME = report_time;
}
public Date getDB_TIME() {
return DB_TIME;
}
public void setDB_TIME(Date db_time) {
DB_TIME = db_time;
}
public String getPROCESS_CPU() {
return PROCESS_CPU;
}
public void setPROCESS_CPU(String process_cpu) {
PROCESS_CPU = process_cpu;
}
public String getPROCESS_MEM() {
return PROCESS_MEM;
}
public void setPROCESS_MEM(String process_mem) {
PROCESS_MEM = process_mem;
}
public String getPROCESS_ERR_INFO() {
return PROCESS_ERR_INFO;
}
public void setPROCESS_ERR_INFO(String process_err_info) {
PROCESS_ERR_INFO = process_err_info;
}
public int getPROCESS_STATUS() {
return PROCESS_STATUS;
}
public void setPROCESS_STATUS(int process_status) {
PROCESS_STATUS = process_status;
}
public Date getPROCESS_START_TIME() {
return PROCESS_START_TIME;
}
public void setPROCESS_START_TIME(Date process_start_time) {
PROCESS_START_TIME = process_start_time;
}
public String getMODULE_NAME() {
return MODULE_NAME;
}
public void setMODULE_NAME(String module_name) {
MODULE_NAME = module_name;
}
public String getIP_ADDR() {
return IP_ADDR;
}
public void setIP_ADDR(String ip_addr) {
IP_ADDR = ip_addr;
}
public String getTYPE() {
return TYPE;
}
public void setTYPE(String type) {
TYPE = type;
}
public int getSTATUS() {
return STATUS;
}
public void setSTATUS(int status) {
STATUS = status;
}
}
... ...
package com.sitech.ibnms.config.sync.db.domain;
public class TbTuopuDiscoTask {
private String AGENT_ID;
private String AGENT_NAME;
private String TASK_ID;
private String TASK_NAME;
private String TASK_DESCR;
private String MBEAN_ID;
private String OBJECT_NAME;
private String CLASS_NAME;
private String FUNCTION;
private String REPEAT_COUNT;
private String CRONTABTODO;
private String CRONTAB_NAME;
private String ENABLE;
private String STATUS;
private String TYPE;
private String PROCESS_KEYS;
private String deviceName;
public String getDeviceName() {
return deviceName;
}
public void setDeviceName(String deviceName) {
this.deviceName = deviceName;
}
public String getPROCESS_KEYS() {
return PROCESS_KEYS;
}
public void setPROCESS_KEYS(String process_keys) {
PROCESS_KEYS = process_keys;
}
public TbTuopuDiscoTask() {
}
public String getAGENT_NAME() {
return AGENT_NAME;
}
public void setAGENT_NAME(String agent_name) {
AGENT_NAME = agent_name;
}
public String getAGENT_ID() {
return AGENT_ID;
}
public void setAGENT_ID(String agent_id) {
AGENT_ID = agent_id;
}
public String getTASK_ID() {
return TASK_ID;
}
public void setTASK_ID(String task_id) {
TASK_ID = task_id;
}
public String getTASK_NAME() {
return TASK_NAME;
}
public void setTASK_NAME(String task_name) {
TASK_NAME = task_name;
}
public String getMBEAN_ID() {
return MBEAN_ID;
}
public void setMBEAN_ID(String mbean_id) {
MBEAN_ID = mbean_id;
}
public String getOBJECT_NAME() {
return OBJECT_NAME;
}
public void setOBJECT_NAME(String object_name) {
OBJECT_NAME = object_name;
}
public String getCLASS_NAME() {
return CLASS_NAME;
}
public void setCLASS_NAME(String class_name) {
CLASS_NAME = class_name;
}
public String getFUNCTION() {
return FUNCTION;
}
public void setFUNCTION(String function) {
FUNCTION = function;
}
public String getREPEAT_COUNT() {
return REPEAT_COUNT;
}
public void setREPEAT_COUNT(String repeat_count) {
REPEAT_COUNT = repeat_count;
}
public String getCRONTABTODO() {
return CRONTABTODO;
}
public void setCRONTABTODO(String crontabtodo) {
CRONTABTODO = crontabtodo;
}
public String getCRONTAB_NAME() {
return CRONTAB_NAME;
}
public void setCRONTAB_NAME(String crontab_name) {
CRONTAB_NAME = crontab_name;
}
public String getENABLE() {
return ENABLE;
}
public void setENABLE(String enable) {
ENABLE = enable;
}
public String getTASK_DESCR() {
return TASK_DESCR;
}
public void setTASK_DESCR(String task_descr) {
TASK_DESCR = task_descr;
}
public String getSTATUS() {
return STATUS;
}
public void setSTATUS(String status) {
STATUS = status;
}
public String getTYPE() {
return TYPE;
}
public void setTYPE(String type) {
TYPE = type;
}
}
... ...
package com.sitech.ibnms.config.sync.db.domain;
public class TbTuopuDiscoTaskParam {
private String TASK_ID;
private String PARAM_NAME;
private String PARAM_VALUE;
public TbTuopuDiscoTaskParam(String guid, String paramName,
String paramValue) {
this.TASK_ID = guid;
this.PARAM_NAME = paramName;
this.PARAM_VALUE = paramValue;
}
public TbTuopuDiscoTaskParam() {
}
public String getTASK_ID() {
return TASK_ID;
}
public void setTASK_ID(String task_id) {
TASK_ID = task_id;
}
public String getPARAM_NAME() {
return PARAM_NAME;
}
public void setPARAM_NAME(String param_name) {
PARAM_NAME = param_name;
}
public String getPARAM_VALUE() {
return PARAM_VALUE;
}
public void setPARAM_VALUE(String param_value) {
PARAM_VALUE = param_value;
}
}
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="AGENT_CFG_SYNC">
<typeAlias alias="agentCollConfig"
type="com.sitech.ibnms.config.sync.db.domain.AgentCollConfig" />
<select id="selectMqDetailList"
resultClass="com.sitech.ibnms.config.sync.db.domain.MQDetail"
parameterClass="java.lang.String">
select t1.ID, t1.PORT, t1.STATUS, t2.IP_ADDR IP
from TB_CFG_DEPLOY_MQ t1, TB_ASSET_HOST t2
where t1.ENV_ID = t2.UNIT_ID
and t1.type = #mqType#
</select>
<select id="selectMqDetailByAgentId"
resultClass="com.sitech.ibnms.config.sync.db.domain.MQDetail"
parameterClass="java.lang.String">
select t5.*
from (select t1.ID, t1.PORT, t1.STATUS, t2.IP_ADDR IP
from TB_CFG_DEPLOY_MQ t1, TB_ASSET_HOST t2
where t1.ENV_ID = t2.UNIT_ID) t5,
(select t4.mq_id
from TB_CFG_DEPLOY_AGENT t3, TB_CFG_DEPLOY_WORKSTATION t4
where t3.Workstation_Id = T4.ID
and t3.ID = '$value$') t6
where t5.id = t6.mq_id
</select>
<select id="selectAgentDetail"
resultClass="com.sitech.ibnms.config.sync.db.domain.AgentDetail"
parameterClass="java.util.HashMap">
select t1.ID, t1.ENV_ID UNIT_ID,t1.JMX_PORT, t2.IP_ADDR IP from
TB_CFG_DEPLOY_AGENT t1, TB_ASSET_HOST t2 where t1.ENV_ID =
t2.UNIT_ID and t1.ID = #AGENT_ID#
</select>
<select id="getDevCollList" resultClass="agentCollConfig"
parameterClass="java.util.HashMap">
select t1.MODEL_ID MBEAN_ID, OBJECT_NAME, CLASS_NAME, ''
SCHEDULE_ID, METHOD_NAME FUNCTION, null BEGIN_TIME, null
END_TIME, 0 REPEAT_COUNT, INTERVAL as INTERVAL, null CRONTAB,
DEVICE_ID from TB_CFG_AGENT_CLLLIST t1, TB_CFG_CLLMODEL t2 where
t1.AGENT_ID = #AGENT_ID# and t1.MODEL_ID = t2.MODEL_ID and
t1.ENABLE = 1
</select>
<select id="selectLinkCollList" resultClass="java.util.HashMap"
parameterClass="java.util.HashMap">
SELECT T1.LINK_ID, T1.AGENT_ID_A, T1.PERIOD_ID,T2.DEVICE_ID, T2.IP_ADDR, T2.SEQ_NO
FROM TB_BJ_NETLINK_PROBE T1, TB_BJ_NETLINK_PROBE_NEXTHOP T2
WHERE T1.LINK_ID = T2.LINK_ID
AND T1.AGENT_ID_A = #AGENT_ID#
ORDER BY T2.SEQ_NO
</select>
<select id="getDevCollListSpec" resultClass="agentCollConfig"
parameterClass="java.util.HashMap">
select t1.MODEL_ID MBEAN_ID, OBJECT_NAME, CLASS_NAME, ''
SCHEDULE_ID, METHOD_NAME FUNCTION, null BEGIN_TIME, null
END_TIME, 0 REPEAT_COUNT, INTERVAL as INTERVAL, null CRONTAB,
DEVICE_ID from TB_CFG_AGENT_CLLLIST t1, TB_CFG_CLLMODEL t2 where
t1.AGENT_ID = #AGENT_ID# and t1.MODEL_ID = #MBEAN_ID# and
t1.MODEL_ID = t2.MODEL_ID and t1.DEVICE_ID = #DEVICE_ID# and
t1.ENABLE = 1
</select>
<select id="getDevParamList" resultClass="java.util.HashMap"
parameterClass="java.util.HashMap">
select PARAM_NAME, PARAM_VALUE from TB_CFG_AGENT_CLLPARAM where
AGENT_ID = #AGENT_ID# and MODEL_ID = #MODEL_ID# and DEVICE_ID =
#DEVICE_ID#
</select>
<select id="getBusiCollList" resultClass="agentCollConfig"
parameterClass="java.util.HashMap">
select t1.MBEAN_ID, OBJECT_NAME, CLASS_NAME, SCHEDULE_ID,
FUNCTION, null BEGIN_TIME, null END_TIME, REPEAT_COUNT,
INTERVAL, CRONTABTODO CRONTAB from TB_CFG_SERVICE_SCHEDULE t1,
TB_CFG_SERVICE_MBEAN t2 where t1.AGENT_ID = #AGENT_ID# and
t1.MBEAN_ID = t2.MBEAN_ID and t1.ENABLE = 1
</select>
<select id="getBusiCollListSpec" resultClass="agentCollConfig"
parameterClass="java.util.HashMap">
select t1.MBEAN_ID, OBJECT_NAME, CLASS_NAME, SCHEDULE_ID,
FUNCTION, null BEGIN_TIME, null END_TIME, REPEAT_COUNT,
INTERVAL, CRONTABTODO CRONTAB from TB_CFG_SERVICE_SCHEDULE t1,
TB_CFG_SERVICE_MBEAN t2 where t1.AGENT_ID = #AGENT_ID# and
t1.MBEAN_ID = t2.MBEAN_ID and t1.SCHEDULE_ID = #SCHEDULE_ID# and
t1.ENABLE = 1
</select>
<select id="getBusiParamList" resultClass="java.util.HashMap"
parameterClass="java.util.HashMap">
select PARAM_NAME, PARAM_VALUE from TB_CFG_SERVICE_PARAM where
AGENT_ID = #AGENT_ID# and SCHEDULE_ID = #SCHEDULE_ID#
</select>
<select id="getDevCheckList" resultClass="agentCollConfig"
parameterClass="java.util.HashMap">
select t1.MBEAN_ID, t1.OBJECT_NAME, t1.CLASS_NAME, t1.JOB_ID
SCHEDULE_ID, t1.METHOD_NAME FUNCTION, null BEGIN_TIME, null
END_TIME, 0 REPEAT_COUNT, INTERVAL, null CRONTAB from
TB_CFG_CHECK_JOB t1, TB_CFG_CHECK_DEPLOY t2 where t1.JOB_ID =
t2.JOB_ID and t2.AGENT_ID = #AGENT_ID# and t1.ENABLE = 1
</select>
<select id="selectTbCfgEventByAgentId"
resultClass="com.sitech.ibnms.config.sync.db.domain.TbCfgEvent"
parameterClass="java.util.HashMap">
select distinct t.*
from tb_cfg_event t,
(select agent_id,
unit_id,
substr(unit_id, 0, decode(instr(unit_id, ':'), 0, length(unit_id), instr(unit_id, ':') - 1)) kbp_class,
decode(instr(unit_id, ':'), 0, '', substr(unit_id, instr(unit_id, ':') + 1)) device_id
from v_agent_res) v
where t.ENABLE = 1
and t.IS_ORG_TYPE = 1
and v.agent_id = #AGENT_ID#
and v.UNIT_ID is not null
and (t.unit_id like v.kbp_class || '%' || v.DEVICE_ID || '%')
</select>
<select id="queryAgentIdByUnitId" resultClass="java.lang.String" parameterClass="java.util.HashMap">
select v.AGENT_ID
from V_AGENT_RES v
where v.UNIT_ID is not null
and #UNIT_ID# like v.UNIT_ID || '%'
</select>
<select id="getActProvince" resultClass="java.lang.String" parameterClass="java.util.HashMap">
SELECT T.DICT_VALUE FROM TB_SYS_DICT T WHERE T.ID = '406001'
</select>
<!-- select net device interfaces to be collect -->
<select id="getNetIfList" resultClass="java.util.HashMap" parameterClass="java.util.HashMap">
select UNIT_ID from TB_ASSET_ROUTER_IF where EXT_UNIT_ID = #DEVICE_ID#
</select>
<select id="selectCronTask" resultClass="java.util.HashMap"
parameterClass="java.lang.String">
select 'XNSDFSFIW1K3H32421J2NJG23' MBEAN_ID,
'Crontab:type=MBean' OBJECT_NAME,
'com.sitech.ismp.coll.cron.CronSchedule' CLASS_NAME,
t.GUID SCHEDULE_ID,
'execCronSchedule' FUNCTION,
null BEGIN_TIME,
null END_TIME,
0 REPEAT_COUNT,
0 INTERVAL,
t.PERIOD_ID CRONTAB,
t.CURR_VERSION,
s.script_name
from TB_CC_CRONTAB_TASK_HOST t, TB_CC_CRONTAB_SCRIPT s
where t.curr_version=s.curr_version and t.STATUS = 1
and t.AGENT_ID = #agentId#
</select>
<select id="selectCronTaskContent" resultClass="java.lang.String"
parameterClass="java.lang.String">
select c.countent from tb_cc_crontab_script_content c where c.id=#version# order by seq asc
</select>
</sqlMap>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="CRON_SCHEDULE_LOG">
<typeAlias alias="cronScheduleLog"
type="com.sitech.ismp.messageObject.ScheduleLog" />
<insert id="insertTbLogSchedule" parameterClass="java.lang.String">
$sql$
</insert>
<insert id="insertTbLogScheduleDetail" parameterClass="java.util.HashMap">
insert into tb_log_schedule_detail(guid,seq,line_num,log_info,type,db_time,log_type)
values(#REQ_ID#,#SEQ#,#LINE_NUM#,#LOG_INFO#,#TYPE#,sysdate,#LOG_TYPE#)
</insert>
<update id="updateTbLogScheduleEndTimeAndScrStatus" parameterClass="java.util.HashMap">
UPDATE TB_LOG_SCHEDULE T
SET T.END_TIME = TO_DATE(#END_TIME#, 'yyyy-mm-dd hh24:mi:ss'),T.SCR_STATUS = #SCR_STATUS#,T.SH_EXEC_TIME=TO_DATE(#SH_EXEC_TIME#, 'yyyy-mm-dd hh24:mi:ss')
WHERE T.GUID = #REQ_ID#
AND T.SCH_ID = #SCH_ID#
</update>
<update id="updateTbLogScheduleNextFireTime" parameterClass="java.util.HashMap">
UPDATE TB_LOG_SCHEDULE T
SET T.NEXT_FIRE_TIME = TO_DATE(#NEXT_FIRE_TIME#, 'yyyy-mm-dd hh24:mi:ss')
WHERE T.GUID = #REQ_ID#
AND T.SCH_ID = #SCH_ID#
</update>
<update id="updateTbCCCrontabTaskHostStatus" parameterClass="java.util.HashMap">
UPDATE TB_CC_CRONTAB_TASK_HOST T
SET T.STATUS = #SCHEDULE_STATUS#
where T.GUID = #SCH_ID#
AND T.AGENT_ID = #AGENT_ID#
</update>
<update id="updateTbCCCrontabTaskHostDelFlag" parameterClass="java.util.HashMap">
UPDATE TB_CC_CRONTAB_TASK_HOST T
SET T.DELFLAG = #DEL_FLAG#
where T.GUID = #SCH_ID#
AND T.AGENT_ID = #AGENT_ID#
</update>
<update id="updateTbCCCrontabTaskHostScriptSyncStatus" parameterClass="java.util.HashMap">
UPDATE TB_CC_CRONTAB_TASK_HOST T
SET T.SYNC = #SCRIPT_SYNC_STATUS#
where T.GUID = #SCH_ID#
AND T.AGENT_ID = #AGENT_ID#
</update>
<update id="updateCronAttachHostStatus" parameterClass="java.util.HashMap">
UPDATE TB_CC_CRONTAB_ATTACH_HOST T
SET T.IS_SENDED = #IS_SEND#
WHERE T.GUID = #SCH_ID#
AND T.AGENT_ID = #AGENT_ID#
</update>
</sqlMap>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="TB_SELFMON_HEARTBEAT" >
<typeAlias alias="tbSelfmonHeartbeat" type="com.sitech.ibnms.config.sync.db.domain.TbSelfmonHeartbeat" />
<statement id="batchUpdateTbSelfmonHeartbeat" parameterClass="tbSelfmonHeartbeat">
merge into TB_SELFMON_HEARTBEAT t1
using (select #PROCESS_ID# PROCESS_ID from dual) t2
on (t1.PROCESS_ID = t2.PROCESS_ID)
when matched then
update
set t1.REPORT_TIME = #REPORT_TIME#,
t1.DB_TIME = SYSDATE,
t1.PROCESS_STATUS = #PROCESS_STATUS#,
t1.PROCESS_CPU = #PROCESS_CPU#,
t1.PROCESS_MEM = #PROCESS_MEM#,
t1.PROCESS_START_TIME = #PROCESS_START_TIME#,
t1.PROCESS_ERR_INFO = #PROCESS_ERR_INFO#
where PROCESS_ID = #PROCESS_ID#
when not matched then
insert
(PROCESS_ID,
MODULE_ID,
PROCESS_NAME,
REPORT_TIME,
DB_TIME,
PROCESS_STATUS,
PROCESS_CPU,
PROCESS_MEM,
PROCESS_START_TIME,
PROCESS_ERR_INFO)
values
(#PROCESS_ID#,
#MODULE_ID#,
#PROCESS_NAME#,
#REPORT_TIME#,
SYSDATE,
#PROCESS_STATUS#,
#PROCESS_CPU#,
#PROCESS_MEM#,
#PROCESS_START_TIME#,
#PROCESS_ERR_INFO#)
</statement>
</sqlMap>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="tbTuopuDiscoTask">
<typeAlias alias="tbTuopuDiscoTask"
type="com.sitech.ibnms.config.sync.db.domain.TbTuopuDiscoTask" />
<typeAlias alias="tbTuopuDiscoTaskParam"
type="com.sitech.ibnms.config.sync.db.domain.TbTuopuDiscoTaskParam" />
<select id="selectTopoDiscoTaskList" resultClass="tbTuopuDiscoTask" parameterClass="java.util.HashMap">
select * from TB_TUOPU_DISCO_TASK where AGENT_ID = #AGENT_ID#
</select>
<select id="findDiscoTaskParamById" resultClass="tbTuopuDiscoTaskParam" parameterClass="java.util.HashMap">
select * from TB_TUOPU_DISCO_TASK_PARAM where TASK_ID = #TASK_ID#
</select>
</sqlMap>
\ No newline at end of file
... ...
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="MODULE_INFO">
<insert id="insertOrUpdateModuleVersionInfo" parameterClass="java.util.HashMap">
MERGE INTO TB_VER_MODULE_INFO T1
USING (SELECT #MODULE_ID# MODULE_ID, #MODULE_TYPE# MODULE_TYPE FROM DUAL) T2
ON (T1.MODULE_ID = T2.MODULE_ID AND T1.MODULE_TYPE = T2.MODULE_TYPE)
WHEN MATCHED THEN
UPDATE SET MODULE_VERSION = #MODULE_VERSION#, BUILD_TIME = TO_DATE(#BUILD_TIME#, 'yyyy-mm-dd hh24:mi'), START_TIME = TO_DATE(#START_TIME#, 'yyyy-mm-dd hh24:mi')
WHEN NOT MATCHED THEN
INSERT
(MODULE_ID, MODULE_TYPE, MODULE_VERSION, BUILD_TIME, START_TIME)
VALUES
(#MODULE_ID#,
#MODULE_TYPE#,
#MODULE_VERSION#,
TO_DATE(#BUILD_TIME#, 'yyyy-mm-dd hh24:mi'),
TO_DATE(#START_TIME#, 'yyyy-mm-dd hh24:mi'))
</insert>
</sqlMap>
\ No newline at end of file
... ...
package com.sitech.ibnms.config.sync.service;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.*;
import com.sitech.ibnms.config.sync.db.dao.UploadModuleDao;
import com.sitech.ibnms.util.Formater;
import com.sitech.ibnms.util.RandomGUID;
import org.apache.log4j.Logger;
import com.sitech.ibnms.config.sync.SyncType;
import com.sitech.ibnms.config.sync.db.dao.AgentSyncDao;
import com.sitech.ibnms.config.sync.db.dao.TbTuopuDiscoDao;
import com.sitech.ibnms.config.sync.db.domain.AgentDetail;
import com.sitech.ibnms.config.sync.db.domain.MQDetail;
import com.sitech.ibnms.config.sync.db.domain.TbCfgEvent;
import com.sitech.ibnms.config.sync.db.domain.TbTuopuDiscoTask;
import com.sitech.ibnms.config.sync.db.domain.TbTuopuDiscoTaskParam;
import com.sitech.ismp.messageObject.AgentSyncObject;
import com.sitech.ismp.messageObject.AlarmEventConfig;
import com.sitech.ismp.messageObject.AlarmEventConfigSyncObject;
import com.sitech.util.mq.MQSender;
import com.sitech.util.mq.MQSenderFactory;
public class AgentSyncService {
private static Logger logger = Logger.getLogger("LOGGER");
private AgentSyncDao dao = new AgentSyncDao();
private UploadModuleDao umDao = new UploadModuleDao();
public AgentDetail getAgentDetail(String agentId) {
return dao.selectAgentDetail(agentId);
}
public List<MQDetail> getMqDetailList() {
ResourceBundle bmcConfig = ResourceBundle.getBundle("config");
String BMCServerType = bmcConfig.getString("BMCServerType");
return dao.selectMqDetailList(BMCServerType);
}
public List<String> getAgentIdByUnitId(String unitId) {
return dao.queryAgentIdByUnitId(unitId);
}
private MQSender getMqSender(String agentId) {
MQDetail mq = dao.selectMqDetailByAgentId(agentId);
return MQSenderFactory.createMQSender(mq.getIP(), mq.getPORT(),
"Q_AGENT_" + agentId);
}
public void uploadModuleVerInfo(Map<String, String> moduleInfo){
String buildTime = moduleInfo.get("BUILD_TIME");
Date date = null;
try {
date = Formater.stringToDate(buildTime, "yyyyMMddHHmm");
buildTime = Formater.datetimeToString(date,"yyyy-MM-dd HH:mm");
moduleInfo.put("BUILD_TIME",buildTime);
} catch (ParseException e) {
e.printStackTrace();
}
//插入版本信息
if(null!=moduleInfo){
umDao.insertOrUpdateModuleVersionInfo(moduleInfo);
logger.info("Successfully update ModuleVersionInfo!");
}
}
public void syncAgentAll(String agentId) {
MQSender mqSender = getMqSender(agentId);
List<AgentSyncObject> collCfgList = new ArrayList<AgentSyncObject>();
collCfgList.addAll(getDevCollList(agentId));
collCfgList.addAll(getBusiCollList(agentId));
// collCfgList.addAll(getCheckList(agentId));
// collCfgList.addAll(getTopoDiscoList(agentId));
if("Y".equals(SyncType.CAN_SYNC_LINKCOLL)){
collCfgList.addAll(getLinkCollList(agentId));
collCfgList.addAll(getConSchList(agentId));
}
for (AgentSyncObject obj : collCfgList) {
obj.setAgentId(agentId);
obj.setType(SyncType.ADD);
mqSender.writeData(obj);
}
logger.info("-- Save [" + collCfgList.size()
+ "] COLL_SCHEDULE to temp tunnel " + "Q_AGENT_" + agentId);
AlarmEventConfigSyncObject eventCfgs = getEventCfgList(agentId);
List<AlarmEventConfig> list = eventCfgs.getConfigList();
// 告警配置数量太多,拆分成多条发送
if (list != null && list.size() > 0) {
for (int i = 0; i < (list.size() / 50 + 1); i++) {
List<AlarmEventConfig> tmp = new ArrayList<AlarmEventConfig>();
for (int j = i * 50; j < (i + 1) * 50 && j < list.size(); j++) {
tmp.add(list.get(j));
}
AlarmEventConfigSyncObject obj = new AlarmEventConfigSyncObject();
obj.setAgentId(eventCfgs.getAgentId());
obj.setSyncType(SyncType.UPDATE);
obj.setConfigList(tmp);
mqSender.writeData(obj);
}
}
logger.info("-- Save [" + eventCfgs.getConfigList().size()
+ "] EVENT_CONF to temp tunnel " + "Q_AGENT_" + agentId);
mqSender.start();
}
/**
* 查询crontab调度(北京移动crontab调度平台)
* @param agentId
* @return
*/
private List<AgentSyncObject> getConSchList(String agentId) {
List<AgentSyncObject> msgList = new ArrayList<AgentSyncObject>();
try{
List<HashMap<String, String>> list = dao.selectCronTask(agentId);
for(HashMap<String, String> sch : list){
AgentSyncObject obj = new AgentSyncObject();
msgList.add(obj);
obj.setAgentId(agentId);
obj.setScheduleId(sch.get("SCHEDULE_ID"));
obj.setMbeanId(sch.get("MBEAN_ID"));
obj.setClassName(sch.get("CLASS_NAME"));
obj.setObjectName(sch.get("OBJECT_NAME"));
obj.setCrontab(sch.get("CRONTAB"));
obj.setFunction(sch.get("FUNCTION"));
obj.setInterval(0);
obj.setRepeatCount(0);
obj.setAgentId(agentId);
obj.setType(SyncType.ADD);
String version = sch.get("CURR_VERSION");
String requestId = RandomGUID.getRandomGUID();
String triggerType = "AUTO";
obj.setRequestId(requestId);
obj.setOperateType(SyncType.OPERATE_TYPE_MODIFY);
obj.setTriggerType(triggerType);
HashMap<String,String> params = new HashMap<String, String>();
params.put("UNIT_ID",getCronAgentUnitId(agentId));
params.put("SCHEDULE_ID", sch.get("SCHEDULE_ID"));
params.put("OPERATE_TYPE", SyncType.OPERATE_TYPE_MODIFY);
params.put("REQUEST_ID",requestId);
params.put("TRIGGER_TYPE",triggerType);
params.put("SHELL_CONTENT",getShellContent(version));
params.put("SHELL_NAME",sch.get("SCRIPT_NAME"));
obj.setParams(params);
}
}catch(Exception e){
logger.error("Exception while getConSchList:" + agentId, e);
}
return msgList;
}
private String getCronAgentUnitId(String agentId){
String unitId = "";
AgentDetail detail = dao.selectAgentDetail(agentId);
if(null!=detail){
unitId = detail.getUNIT_ID().trim();
}
return unitId;
}
private String getShellContent(String version) throws SQLException {
List<String> list = dao.selectCronTaskContent(version);
StringBuffer sb = new StringBuffer();
for(String line : list){
sb.append(line + "\n");
}
return sb.toString();
}
/**
* 平台采集配置增量同步
*/
public void syncAgentDevCollCfg(String agentId, String modelId,
String deviceId, int syncType) {
MQSender mqSender = getMqSender(agentId);
List<AgentSyncObject> list = dao.selectDevCollCfgSpec(agentId, modelId,
deviceId);
for (AgentSyncObject obj : list) {
obj.setAgentId(agentId);
obj.setType(syncType);
logger.info("-- Save [" + obj.toString()
+ "] to temp tunnel " + "Q_AGENT_" + agentId);
mqSender.writeData(obj);
}
mqSender.writeData(getEventCfgList(agentId));
mqSender.start();
}
public void syncAgentBusiCollCfg(String agentId, String scheduleId,
int syncType) {
MQSender mqSender = getMqSender(agentId);
List<AgentSyncObject> list = dao.selectBusiCollCfgSpec(agentId,
scheduleId);
for (AgentSyncObject obj : list) {
obj.setAgentId(agentId);
obj.setType(syncType);
mqSender.writeData(obj);
}
mqSender.writeData(getEventCfgList(agentId));
mqSender.start();
}
public void syncAgentCheckCfg(String agentId, int syncType) {
MQSender mqSender = getMqSender(agentId);
List<AgentSyncObject> list = dao.selectCheckCfgSpec(agentId);
for (AgentSyncObject obj : list) {
obj.setAgentId(agentId);
obj.setType(syncType);
mqSender.writeData(obj);
}
mqSender.writeData(getEventCfgList(agentId));
mqSender.start();
}
public void syncTopoDiscoTask(AgentSyncObject obj) {
MQSender mqSender = getMqSender(obj.getAgentId());
mqSender.writeData(obj);
mqSender.start();
}
public void syncAgentEventCfg(TbCfgEvent tbCfgEvent, int syncType) {
List<TbCfgEvent> tbCfgEventList = new ArrayList<TbCfgEvent>();
tbCfgEventList.add(tbCfgEvent);
String extUnitId = tbCfgEvent.getEXT_UNIT_ID();
List<String> agentIdList = dao.queryAgentIdByUnitId(extUnitId);
for (String agentId : agentIdList) {
MQSender mqSender = getMqSender(agentId);
AlarmEventConfigSyncObject jmsOjbect = getEventSyncObject(agentId,
syncType, tbCfgEventList);
mqSender.writeData(jmsOjbect);
mqSender.start();
}
}
public void syncAgentEventCfg(String agentId, int syncType,
List<TbCfgEvent> eventList) {
AlarmEventConfigSyncObject jmsOjbect = getEventSyncObject(agentId,
syncType, eventList);
MQSender mqSender = getMqSender(agentId);
mqSender.writeData(jmsOjbect);
mqSender.start();
}
private AlarmEventConfigSyncObject getEventSyncObject(String agentId,
int type, List<TbCfgEvent> tbCfgEventList) {
AlarmEventConfigSyncObject obj = new AlarmEventConfigSyncObject();
obj.setAgentId(agentId);
obj.setSyncType(type);
List<AlarmEventConfig> list = new ArrayList<AlarmEventConfig>();
obj.setConfigList(list);
for (TbCfgEvent elem : tbCfgEventList) {
AlarmEventConfig config = new AlarmEventConfig();
String guid = elem.getGUID();
String kpiId = elem.getKPI_ID();
String unitId = elem.getUNIT_ID();
String expression = elem.getEXPRESSION() == null ? "" : elem
.getEXPRESSION();
String expression1 = elem.getEXPRESSION1() == null ? "" : elem
.getEXPRESSION1();
String expression2 = elem.getEXPRESSION2() == null ? "" : elem
.getEXPRESSION2();
String expression3 = elem.getEXPRESSION3() == null ? "" : elem
.getEXPRESSION3();
String expression4 = elem.getEXPRESSION4() == null ? "" : elem
.getEXPRESSION4();
String expression5 = elem.getEXPRESSION5() == null ? "" : elem
.getEXPRESSION5();
String expression6 = elem.getEXPRESSION6() == null ? "" : elem
.getEXPRESSION6();
int enable = Integer.parseInt(elem.getENABLE());
String extUnitId = elem.getEXT_UNIT_ID() == null ? "" : elem
.getEXT_UNIT_ID();
config.setGuid(guid);
config.setKpiId(kpiId);
config.setUnitId(unitId);
config.setExpression(expression);
config.setExpression1(expression1);
config.setExpression2(expression2);
config.setExpression3(expression3);
config.setExpression4(expression4);
config.setExpression5(expression5);
config.setExpression6(expression6);
config.setEnable(enable);
config.setExtUnitId(extUnitId);
list.add(config);
}
return obj;
}
private AlarmEventConfigSyncObject getEventCfgList(String agentId) {
return dao.selectEventCfgList(agentId);
}
private List<AgentSyncObject> getDevCollList(String agentId) {
return dao.selectDevCollList(agentId);
}
private List<AgentSyncObject> getBusiCollList(String agentId) {
return dao.selectBusiCollList(agentId);
}
private List<AgentSyncObject> getLinkCollList(String agentId) {
return dao.selectLinkCollList(agentId);
}
public List<AgentSyncObject> getTopoDiscoList(String agentId) {
List<AgentSyncObject> result = new ArrayList<AgentSyncObject>();
List<TbTuopuDiscoTask> list = new TbTuopuDiscoDao()
.selectTopoDiscoTaskList(agentId);
if (list == null || list.size() == 0) {
return result;
}
for (TbTuopuDiscoTask task : list) {
AgentSyncObject obj = new AgentSyncObject();
String taskId = task.getTASK_ID();
obj.setAgentId(agentId);
obj.setScheduleId(taskId);
obj.setMbeanId(task.getMBEAN_ID());
obj.setClassName(task.getCLASS_NAME());
obj.setObjectName(task.getOBJECT_NAME());
obj.setCrontab(task.getCRONTABTODO());
obj.setFunction(task.getFUNCTION());
obj.setRepeatCount(-1);
obj.setParams(new HashMap<String, String>());
Map<String, String> params = obj.getParams();
List<TbTuopuDiscoTaskParam> paramList = new TbTuopuDiscoDao()
.findDiscoTaskParamById(taskId);
for (TbTuopuDiscoTaskParam param : paramList) {
params.put(param.getPARAM_NAME(), param.getPARAM_VALUE());
}
result.add(obj);
}
return result;
}
}
... ...
package com.sitech.ibnms.config.sync.service;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import com.sitech.ibnms.config.sync.db.dao.CronScheduleLogDao;
import com.sitech.ibnms.util.RandomGUID;
import com.sitech.ismp.messageObject.ScheduleLog;
public class CronScheduleLogService {
private static Logger logger = Logger.getLogger("LOGGER");
private CronScheduleLogDao logDao = new CronScheduleLogDao();
public void insertCronScheduleLogs(ScheduleLog schLog) {
String logInfo = schLog.getLogInfo();
String[] logArr = null;
Map<String, String> params = null;
int seq = Integer.valueOf(schLog.getSeq());
String scrStatus = schLog.getScrStatus();
String outType = schLog.getType();
try {
if (0 == seq) {
params = makeLogScheduleParam(schLog, seq, 0);
logDao.insertTbLogSchedule(params);
logDao.insertTbLogScheduleDetail(params);
} else {
if(null != logInfo && !"".equals(logInfo.trim())){
logArr = logInfo.split("\t");
for (int i = 0; i < logArr.length; i++) {
int lineno = 1;
if ("err_out".equals(outType)) {
lineno = i + 10001;
} else {
lineno = i + 1;
}
ScheduleLog logObj = schLog;
String info = logArr[i];
logObj.setLogInfo(info);
params = makeLogScheduleParam(logObj, seq, lineno);
logDao.insertTbLogScheduleDetail(params);
if (null != info && !"".equals(info.trim()) && info.trim().startsWith("ATTACH_UPLOAD_FILE_STATUS")) {
String[] arr = info.trim().split("=");
String fileStatus = arr[1].trim();
params.put("IS_SEND", fileStatus);
logDao.updateCronAttachHostStatus(params);
}
}
}
//判断当前处理的日志是否为结束日志--endtime不为空
String endTime = schLog.getEndTime();
if (null != endTime && !"".equals(endTime.trim())) {
params = makeLogScheduleParam(schLog,1,1);
//更新调度的结束时间和脚本的执行状态
logDao.updateTbLogScheduleEndTimeAndScrStatus(params);
//只有同步调度才会更新调度状态
String syncType = schLog.getSyncType();
if ("2".equals(schLog.getOperateType()) && null != syncType && !"".equals(syncType.trim())) {
Map<String, Object> extInfo = schLog.getExtInfo();
String scheduleStatus = (String) extInfo.get("SCHEDULE_STATUS");
String scheduleOprType = (String) extInfo.get("SCHEDULE_OPERATE");
// 增加/修改调度
if ("1".equals(schLog.getSyncType().trim()) || "2".equals(schLog.getSyncType().trim())) {
String nextFireTime = schLog.getNextFireTime();
logger.info("Start Add/Update CronSchedule:Sch_ID["+schLog.getSchId()
+"],Agent_ID["+schLog.getAgentId()+"],SyncType["+schLog.getSyncType()+"],Next_Fire_time["+nextFireTime+"]");
params.put("SCHEDULE_STATUS",scheduleStatus);
params.put("NEXT_FIRE_TIME",nextFireTime);
//更新调度任务的状态
logDao.updateTbCCCrontabTaskHostStatus(params);
//增加或者修改调度任务需要更新调度任务的下次运行时间
logDao.updateTbLogScheduleNextFireTime(params);
//删除或者停止调度
} else if ("3".equals(syncType.trim())) {
switch (Integer.valueOf(scheduleOprType)){
case 1://删除调度 更新TB_CC_CRONTAB_TASK_HOST delflag
logger.info("Start delete CronSchedule:Sch_ID["+schLog.getSchId()+"],SyncType["
+schLog.getSyncType()+"],Agent_ID["+schLog.getAgentId()+"]");
String delFlag = "0";
if("0".equals(scheduleStatus)){
delFlag = "1";
}
params.put("DEL_FLAG",delFlag);
logDao.updateTbCCCrontabTaskHostDelFlag(params);
break;
case 2://停止调度 更新TB_CC_CRONTAB_TASK_HOST status
logger.info("Start stop CronSchedule:Sch_ID["+schLog.getSchId()+"],Agent_ID["+schLog.getAgentId()+"]");
// String status = "";
// if("1".equals(scheduleStatus)){
// status = "0";
// } else {
// status = "1";
// }
params.put("SCHEDULE_STATUS",scheduleStatus);
logDao.updateTbCCCrontabTaskHostStatus(params);
break;
default:
logger.info("SCHEDULE_OPERATE is not Exist");
}
}
}
//脚本同步更新调度任务的脚本同步状态
if("3".equals(schLog.getOperateType())){
String scriptSyncStatus = (String)schLog.getExtInfo().get("SCRIPT_SYNC_STATUS");
logger.info("Start update ScriptSyncStatus:Sch_ID["+schLog.getSchId()+"],Agent_ID["+schLog.getAgentId()+"],Sync["+scriptSyncStatus+"]");
params = new HashMap<String, String>();
params.put("SCRIPT_SYNC_STATUS",scriptSyncStatus);
params.put("SCH_ID",schLog.getSchId());
params.put("AGENT_ID",schLog.getAgentId());
logDao.updateTbCCCrontabTaskHostScriptSyncStatus(params);
}
}
}
} catch (Exception e) {
logger.error("[Cron Schedule] Exception while insertCronScheduleLogs", e);
}
}
private Map<String, String> makeLogScheduleParam(ScheduleLog log, int seq, int linenum) {
Map<String, String> map = new HashMap<String, String>();
Map<String,Object> extInfo = log.getExtInfo()==null? new HashMap<String, Object>():log.getExtInfo();
String scheduleFlag = (String) extInfo.get("SCHEDULE_FLAG");
String shExecTime = extInfo.get("SH_EXEC_TIME")==null?"":(String)extInfo.get("SH_EXEC_TIME");
String beginTime = log.getBeginTime();
if("Y".equals(scheduleFlag)){
beginTime = "";
}
map.put("SCH_ID", log.getSchId());
map.put("REQ_ID", log.getRequestId() == null ? RandomGUID.getRandomGUID() : log.getRequestId());
map.put("SEQ", "" + (seq + 1));
map.put("LINE_NUM", "" + linenum);
map.put("AGENT_ID", log.getAgentId());
map.put("NEXT_FIRE_TIME", log.getNextFireTime());
map.put("LOG_INFO", log.getLogInfo());
map.put("AGENT_ID", log.getAgentId());
map.put("OPR_TYPE", log.getOperateType());
map.put("TRIGGER_TYPE", log.getTrigerType());
map.put("TYPE", log.getType());
map.put("BEGIN_TIME", beginTime);
map.put("END_TIME", log.getEndTime());
map.put("SCR_STATUS", log.getScrStatus() == null ? "0" : log.getScrStatus());
map.put("LOG_TYPE",log.getLogType());
map.put("SH_EXEC_TIME",shExecTime);
return map;
}
}
... ...
package com.sitech.ibnms.util;
import org.apache.log4j.Logger;
import com.ibatis.sqlmap.client.SqlMapClient;
public class BaseDao {
protected static Logger logger = Logger.getLogger("LOGGER");
protected static Logger error = Logger.getLogger("ERROR");
protected static SqlMapClient sqlmapClient;
static {
sqlmapClient = SqlMapFactory.getDefaultSqlMapClient();
}
}
... ...
/*
* This file is part of "The Java Telnet Application".
*
* (c) Matthias L. Jugel, Marcus Mei�ner 1996-2002. All Rights Reserved.
*
* Please visit http://javatelnet.org/ for updates and contact.
*
* --LICENSE NOTICE--
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* --LICENSE NOTICE--
*/
package com.sitech.ibnms.util;
/**
* Cipher class is the type for all other ciphers.
*
* @author Marcus Meissner
* @version $Id: Cipher.java,v 1.1 2010/07/07 02:10:34 wangtaoc Exp $
*/
public abstract class Cipher {
public static Cipher getInstance(String algorithm) {
Class<?> c;
try {
c = Class.forName("com.sitech.util." + algorithm);
return (Cipher) c.newInstance();
} catch (Throwable t) {
System.err.println("Cipher: unable to load instance of '"
+ algorithm + "'");
return null;
}
}
/**
* Encrypt source byte array using the instantiated algorithm.
*/
public byte[] encrypt(byte[] src) {
byte[] dest = new byte[src.length];
encrypt(src, 0, dest, 0, src.length);
return dest;
}
/**
* The actual encryption takes place here.
*/
public abstract void encrypt(byte[] src, int srcOff, byte[] dest,
int destOff, int len);
/**
* Decrypt source byte array using the instantiated algorithm.
*/
public byte[] decrypt(byte[] src) {
byte[] dest = new byte[src.length];
decrypt(src, 0, dest, 0, src.length);
return dest;
}
/**
* The actual decryption takes place here.
*/
public abstract void decrypt(byte[] src, int srcOff, byte[] dest,
int destOff, int len);
public abstract void setKey(byte[] key);
public void setKey(String key) {
setKey(key.getBytes());
}
}
... ...
package com.sitech.ibnms.util;
/**
* 用于模糊匹配告警配置
*
* linxc 2013-05-03 修改模糊匹配算法
*/
public class ConfigMatchUtil {
public static boolean matchUNIT_ID(String cfgUnitId, String collUnitId) {
if (cfgUnitId == null || cfgUnitId.trim().length() == 0
|| cfgUnitId.trim().endsWith("*")
|| cfgUnitId.trim().equals(collUnitId.trim())) {
return true;
}
// 配置了unit_id, 那么进行kbp_class, instance逐项匹配
String[][] configs = splitUnitId(cfgUnitId);
String[][] colls = splitUnitId(collUnitId);
String[] cfgKbpClass = configs[0];
String[] collKbpClass = colls[0];
for (int i = 0; i < collKbpClass.length && i < cfgKbpClass.length; i++) {
if (!cfgKbpClass[i].trim().equals(collKbpClass[i].trim())) {
// KBP_CLASS不匹配
return false;
}
}
String[] configInstance = configs[1];
String[] collInstance = colls[1];
if (collInstance != null && collInstance.length > 0) {
// 采集子实体不为空
if (configInstance == null || configInstance.length == 0) {
// 当配置子实体为空时,匹配
return true;
}
if (configInstance != null
&& configInstance.length > collInstance.length) {
// 当配置子实体不为空并且长度大于采集子实体时,不匹配
return false;
}
for (int i = 0; i < configInstance.length; i++) {
if (!configInstance[i].trim().equals(collInstance[i].trim())) {
// 子实体不匹配
return false;
}
}
} else if (configInstance != null && configInstance.length > 0) {
return false;
}
return true;
}
public static boolean matchKPI_ID(String cfgKpiId, String collKpiId) {
if (cfgKpiId == null || cfgKpiId.trim().length() == 0
|| cfgKpiId.trim().endsWith("*")) {
return true;
} else {
return cfgKpiId.trim().equals(collKpiId.trim());
}
}
public static String[][] splitUnitId(String unitId) {
String[][] result = new String[2][];
String[] tmp = unitId.split(":");
result[0] = tmp[0].split("-");
if (tmp.length == 2) {
result[1] = tmp[1].split("-");
}
return result;
}
}
... ...
package com.sitech.ibnms.util;
public final class DES extends Cipher {
protected int[] key_schedule = new int[32];
protected int IV0 = 0;
protected int IV1 = 0;
public synchronized void encrypt(byte[] src, int srcOff, byte[] dest,
int destOff, int len) {
int[] out = new int[2];
int iv0 = IV0;
int iv1 = IV1;
int end = srcOff + len;
for (int si = srcOff, di = destOff; si < end; si += 8, di += 8) {
iv0 ^= ((src[si] & 0xff) | ((src[si + 1] & 0xff) << 8)
| ((src[si + 2] & 0xff) << 16) | ((src[si + 3] & 0xff) << 24));
iv1 ^= ((src[si + 4] & 0xff) | ((src[si + 5] & 0xff) << 8)
| ((src[si + 6] & 0xff) << 16) | ((src[si + 7] & 0xff) << 24));
encrypt(iv0, iv1, out);
iv0 = out[0];
iv1 = out[1];
dest[di] = (byte) (iv0 & 0xff);
dest[di + 1] = (byte) ((iv0 >>> 8) & 0xff);
dest[di + 2] = (byte) ((iv0 >>> 16) & 0xff);
dest[di + 3] = (byte) ((iv0 >>> 24) & 0xff);
dest[di + 4] = (byte) (iv1 & 0xff);
dest[di + 5] = (byte) ((iv1 >>> 8) & 0xff);
dest[di + 6] = (byte) ((iv1 >>> 16) & 0xff);
dest[di + 7] = (byte) ((iv1 >>> 24) & 0xff);
}
IV0 = iv0;
IV1 = iv1;
}
public synchronized void decrypt(byte[] src, int srcOff, byte[] dest,
int destOff, int len) {
int[] out = new int[2];
int iv0 = IV0;
int iv1 = IV1;
int d0;
int d1;
int end = srcOff + len;
for (int si = srcOff, di = destOff; si < end; si += 8, di += 8) {
d0 = ((src[si] & 0xff) | ((src[si + 1] & 0xff) << 8)
| ((src[si + 2] & 0xff) << 16) | ((src[si + 3] & 0xff) << 24));
d1 = ((src[si + 4] & 0xff) | ((src[si + 5] & 0xff) << 8)
| ((src[si + 6] & 0xff) << 16) | ((src[si + 7] & 0xff) << 24));
decrypt(d0, d1, out);
iv0 ^= out[0];
iv1 ^= out[1];
dest[di] = (byte) (iv0 & 0xff);
dest[di + 1] = (byte) ((iv0 >>> 8) & 0xff);
dest[di + 2] = (byte) ((iv0 >>> 16) & 0xff);
dest[di + 3] = (byte) ((iv0 >>> 24) & 0xff);
dest[di + 4] = (byte) (iv1 & 0xff);
dest[di + 5] = (byte) ((iv1 >>> 8) & 0xff);
dest[di + 6] = (byte) ((iv1 >>> 16) & 0xff);
dest[di + 7] = (byte) ((iv1 >>> 24) & 0xff);
iv0 = d0;
iv1 = d1;
}
IV0 = iv0;
IV1 = iv1;
}
public void setKey(byte[] key) {
int i, c, d, t, s, shifts;
c = ((key[0] & 0xff) | ((key[1] & 0xff) << 8) | ((key[2] & 0xff) << 16) | ((key[3] & 0xff) << 24));
d = ((key[4] & 0xff) | ((key[5] & 0xff) << 8) | ((key[6] & 0xff) << 16) | ((key[7] & 0xff) << 24));
t = ((d >>> 4) ^ c) & 0x0f0f0f0f;
c ^= t;
d ^= t << 4;
t = (((c << (16 - (-2))) ^ c) & 0xcccc0000);
c = c ^ t ^ (t >>> (16 - (-2)));
t = (((d << (16 - (-2))) ^ d) & 0xcccc0000);
d = d ^ t ^ (t >>> (16 - (-2)));
t = ((d >>> 1) ^ c) & 0x55555555;
c ^= t;
d ^= t << 1;
t = ((c >>> 8) ^ d) & 0x00ff00ff;
d ^= t;
c ^= t << 8;
t = ((d >>> 1) ^ c) & 0x55555555;
c ^= t;
d ^= t << 1;
d = ((d & 0xff) << 16) | (d & 0xff00) | ((d >>> 16) & 0xff)
| ((c >>> 4) & 0xf000000);
c &= 0x0fffffff;
shifts = 0x7efc;
for (i = 0; i < 16; i++) {
if ((shifts & 1) != 0) {
c = ((c >>> 2) | (c << 26));
d = ((d >>> 2) | (d << 26));
} else {
c = ((c >>> 1) | (c << 27));
d = ((d >>> 1) | (d << 27));
}
shifts >>>= 1;
c &= 0x0fffffff;
d &= 0x0fffffff;
s = des_skb[0][(c) & 0x3f]
| des_skb[1][((c >>> 6) & 0x03) | ((c >>> 7) & 0x3c)]
| des_skb[2][((c >>> 13) & 0x0f) | ((c >>> 14) & 0x30)]
| des_skb[3][((c >>> 20) & 0x01) | ((c >>> 21) & 0x06)
| ((c >>> 22) & 0x38)];
t = des_skb[4][(d) & 0x3f]
| des_skb[5][((d >>> 7) & 0x03) | ((d >>> 8) & 0x3c)]
| des_skb[6][(d >>> 15) & 0x3f]
| des_skb[7][((d >>> 21) & 0x0f) | ((d >>> 22) & 0x30)];
key_schedule[i * 2] = ((t << 16) | (s & 0xffff));
s = ((s >>> 16) | (t & 0xffff0000));
key_schedule[(i * 2) + 1] = (s << 4) | (s >>> 28);
}
}
public void encrypt(int l, int r, int[] out) {
int t = 0, u = 0, i;
t = ((r >>> 4) ^ l) & 0x0f0f0f0f;
l ^= t;
r ^= t << 4;
t = ((l >>> 16) ^ r) & 0x0000ffff;
r ^= t;
l ^= t << 16;
t = ((r >>> 2) ^ l) & 0x33333333;
l ^= t;
r ^= t << 2;
t = ((l >>> 8) ^ r) & 0x00ff00ff;
r ^= t;
l ^= t << 8;
t = ((r >>> 1) ^ l) & 0x55555555;
l ^= t;
r ^= t << 1;
t = (r << 1) | (r >>> 31);
r = (l << 1) | (l >>> 31);
l = t;
for (i = 0; i < 32; i += 4) {
u = r ^ key_schedule[i];
t = r ^ key_schedule[i + 1];
t = ((t >>> 4) + (t << 28));
l ^= (des_SPtrans[1][(t) & 0x3f] | des_SPtrans[3][(t >>> 8) & 0x3f]
| des_SPtrans[5][(t >>> 16) & 0x3f]
| des_SPtrans[7][(t >>> 24) & 0x3f]
| des_SPtrans[0][(u) & 0x3f]
| des_SPtrans[2][(u >>> 8) & 0x3f]
| des_SPtrans[4][(u >>> 16) & 0x3f] | des_SPtrans[6][(u >>> 24) & 0x3f]);
u = l ^ key_schedule[i + 2];
t = l ^ key_schedule[i + 3];
t = ((t >>> 4) + (t << 28));
r ^= (des_SPtrans[1][(t) & 0x3f] | des_SPtrans[3][(t >>> 8) & 0x3f]
| des_SPtrans[5][(t >>> 16) & 0x3f]
| des_SPtrans[7][(t >>> 24) & 0x3f]
| des_SPtrans[0][(u) & 0x3f]
| des_SPtrans[2][(u >>> 8) & 0x3f]
| des_SPtrans[4][(u >>> 16) & 0x3f] | des_SPtrans[6][(u >>> 24) & 0x3f]);
}
l = (l >>> 1) | (l << 31);
r = (r >>> 1) | (r << 31);
t = ((r >>> 1) ^ l) & 0x55555555;
l ^= t;
r ^= t << 1;
t = ((l >>> 8) ^ r) & 0x00ff00ff;
r ^= t;
l ^= t << 8;
t = ((r >>> 2) ^ l) & 0x33333333;
l ^= t;
r ^= t << 2;
t = ((l >>> 16) ^ r) & 0x0000ffff;
r ^= t;
l ^= t << 16;
t = ((r >>> 4) ^ l) & 0x0f0f0f0f;
l ^= t;
r ^= t << 4;
out[0] = l;
out[1] = r;
}
public void decrypt(int l, int r, int[] out) {
int t, u, i;
t = ((r >>> 4) ^ l) & 0x0f0f0f0f;
l ^= t;
r ^= t << 4;
t = ((l >>> 16) ^ r) & 0x0000ffff;
r ^= t;
l ^= t << 16;
t = ((r >>> 2) ^ l) & 0x33333333;
l ^= t;
r ^= t << 2;
t = ((l >>> 8) ^ r) & 0x00ff00ff;
r ^= t;
l ^= t << 8;
t = ((r >>> 1) ^ l) & 0x55555555;
l ^= t;
r ^= t << 1;
t = (r << 1) | (r >>> 31);
r = (l << 1) | (l >>> 31);
l = t;
for (i = 30; i > 0; i -= 4) {
u = r ^ key_schedule[i];
t = r ^ key_schedule[i + 1];
t = ((t >>> 4) + (t << 28));
l ^= (des_SPtrans[1][(t) & 0x3f] | des_SPtrans[3][(t >>> 8) & 0x3f]
| des_SPtrans[5][(t >>> 16) & 0x3f]
| des_SPtrans[7][(t >>> 24) & 0x3f]
| des_SPtrans[0][(u) & 0x3f]
| des_SPtrans[2][(u >>> 8) & 0x3f]
| des_SPtrans[4][(u >>> 16) & 0x3f] | des_SPtrans[6][(u >>> 24) & 0x3f]);
u = l ^ key_schedule[i - 2];
t = l ^ key_schedule[i - 1];
t = ((t >>> 4) + (t << 28));
r ^= (des_SPtrans[1][(t) & 0x3f] | des_SPtrans[3][(t >>> 8) & 0x3f]
| des_SPtrans[5][(t >>> 16) & 0x3f]
| des_SPtrans[7][(t >>> 24) & 0x3f]
| des_SPtrans[0][(u) & 0x3f]
| des_SPtrans[2][(u >>> 8) & 0x3f]
| des_SPtrans[4][(u >>> 16) & 0x3f] | des_SPtrans[6][(u >>> 24) & 0x3f]);
}
l = (l >>> 1) | (l << 31);
r = (r >>> 1) | (r << 31);
t = ((r >>> 1) ^ l) & 0x55555555;
l ^= t;
r ^= t << 1;
t = ((l >>> 8) ^ r) & 0x00ff00ff;
r ^= t;
l ^= t << 8;
t = ((r >>> 2) ^ l) & 0x33333333;
l ^= t;
r ^= t << 2;
t = ((l >>> 16) ^ r) & 0x0000ffff;
r ^= t;
l ^= t << 16;
t = ((r >>> 4) ^ l) & 0x0f0f0f0f;
l ^= t;
r ^= t << 4;
out[0] = l;
out[1] = r;
}
/*
* Table for key generation. This used to be in sk.h. Copyright (C) 1993
* Eric Young - see README for more details
*/
final static int des_skb[][] = {
/* for C bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
{ 0x00000000, 0x00000010, 0x20000000, 0x20000010, 0x00010000,
0x00010010, 0x20010000, 0x20010010, 0x00000800, 0x00000810,
0x20000800, 0x20000810, 0x00010800, 0x00010810, 0x20010800,
0x20010810, 0x00000020, 0x00000030, 0x20000020, 0x20000030,
0x00010020, 0x00010030, 0x20010020, 0x20010030, 0x00000820,
0x00000830, 0x20000820, 0x20000830, 0x00010820, 0x00010830,
0x20010820, 0x20010830, 0x00080000, 0x00080010, 0x20080000,
0x20080010, 0x00090000, 0x00090010, 0x20090000, 0x20090010,
0x00080800, 0x00080810, 0x20080800, 0x20080810, 0x00090800,
0x00090810, 0x20090800, 0x20090810, 0x00080020, 0x00080030,
0x20080020, 0x20080030, 0x00090020, 0x00090030, 0x20090020,
0x20090030, 0x00080820, 0x00080830, 0x20080820, 0x20080830,
0x00090820, 0x00090830, 0x20090820, 0x20090830 },
/* for C bits (numbered as per FIPS 46) 7 8 10 11 12 13 */
{ 0x00000000, 0x02000000, 0x00002000, 0x02002000, 0x00200000,
0x02200000, 0x00202000, 0x02202000, 0x00000004, 0x02000004,
0x00002004, 0x02002004, 0x00200004, 0x02200004, 0x00202004,
0x02202004, 0x00000400, 0x02000400, 0x00002400, 0x02002400,
0x00200400, 0x02200400, 0x00202400, 0x02202400, 0x00000404,
0x02000404, 0x00002404, 0x02002404, 0x00200404, 0x02200404,
0x00202404, 0x02202404, 0x10000000, 0x12000000, 0x10002000,
0x12002000, 0x10200000, 0x12200000, 0x10202000, 0x12202000,
0x10000004, 0x12000004, 0x10002004, 0x12002004, 0x10200004,
0x12200004, 0x10202004, 0x12202004, 0x10000400, 0x12000400,
0x10002400, 0x12002400, 0x10200400, 0x12200400, 0x10202400,
0x12202400, 0x10000404, 0x12000404, 0x10002404, 0x12002404,
0x10200404, 0x12200404, 0x10202404, 0x12202404 },
/* for C bits (numbered as per FIPS 46) 14 15 16 17 19 20 */
{ 0x00000000, 0x00000001, 0x00040000, 0x00040001, 0x01000000,
0x01000001, 0x01040000, 0x01040001, 0x00000002, 0x00000003,
0x00040002, 0x00040003, 0x01000002, 0x01000003, 0x01040002,
0x01040003, 0x00000200, 0x00000201, 0x00040200, 0x00040201,
0x01000200, 0x01000201, 0x01040200, 0x01040201, 0x00000202,
0x00000203, 0x00040202, 0x00040203, 0x01000202, 0x01000203,
0x01040202, 0x01040203, 0x08000000, 0x08000001, 0x08040000,
0x08040001, 0x09000000, 0x09000001, 0x09040000, 0x09040001,
0x08000002, 0x08000003, 0x08040002, 0x08040003, 0x09000002,
0x09000003, 0x09040002, 0x09040003, 0x08000200, 0x08000201,
0x08040200, 0x08040201, 0x09000200, 0x09000201, 0x09040200,
0x09040201, 0x08000202, 0x08000203, 0x08040202, 0x08040203,
0x09000202, 0x09000203, 0x09040202, 0x09040203 },
/* for C bits (numbered as per FIPS 46) 21 23 24 26 27 28 */
{ 0x00000000, 0x00100000, 0x00000100, 0x00100100, 0x00000008,
0x00100008, 0x00000108, 0x00100108, 0x00001000, 0x00101000,
0x00001100, 0x00101100, 0x00001008, 0x00101008, 0x00001108,
0x00101108, 0x04000000, 0x04100000, 0x04000100, 0x04100100,
0x04000008, 0x04100008, 0x04000108, 0x04100108, 0x04001000,
0x04101000, 0x04001100, 0x04101100, 0x04001008, 0x04101008,
0x04001108, 0x04101108, 0x00020000, 0x00120000, 0x00020100,
0x00120100, 0x00020008, 0x00120008, 0x00020108, 0x00120108,
0x00021000, 0x00121000, 0x00021100, 0x00121100, 0x00021008,
0x00121008, 0x00021108, 0x00121108, 0x04020000, 0x04120000,
0x04020100, 0x04120100, 0x04020008, 0x04120008, 0x04020108,
0x04120108, 0x04021000, 0x04121000, 0x04021100, 0x04121100,
0x04021008, 0x04121008, 0x04021108, 0x04121108 },
/* for D bits (numbered as per FIPS 46) 1 2 3 4 5 6 */
{ 0x00000000, 0x10000000, 0x00010000, 0x10010000, 0x00000004,
0x10000004, 0x00010004, 0x10010004, 0x20000000, 0x30000000,
0x20010000, 0x30010000, 0x20000004, 0x30000004, 0x20010004,
0x30010004, 0x00100000, 0x10100000, 0x00110000, 0x10110000,
0x00100004, 0x10100004, 0x00110004, 0x10110004, 0x20100000,
0x30100000, 0x20110000, 0x30110000, 0x20100004, 0x30100004,
0x20110004, 0x30110004, 0x00001000, 0x10001000, 0x00011000,
0x10011000, 0x00001004, 0x10001004, 0x00011004, 0x10011004,
0x20001000, 0x30001000, 0x20011000, 0x30011000, 0x20001004,
0x30001004, 0x20011004, 0x30011004, 0x00101000, 0x10101000,
0x00111000, 0x10111000, 0x00101004, 0x10101004, 0x00111004,
0x10111004, 0x20101000, 0x30101000, 0x20111000, 0x30111000,
0x20101004, 0x30101004, 0x20111004, 0x30111004 },
/* for D bits (numbered as per FIPS 46) 8 9 11 12 13 14 */
{ 0x00000000, 0x08000000, 0x00000008, 0x08000008, 0x00000400,
0x08000400, 0x00000408, 0x08000408, 0x00020000, 0x08020000,
0x00020008, 0x08020008, 0x00020400, 0x08020400, 0x00020408,
0x08020408, 0x00000001, 0x08000001, 0x00000009, 0x08000009,
0x00000401, 0x08000401, 0x00000409, 0x08000409, 0x00020001,
0x08020001, 0x00020009, 0x08020009, 0x00020401, 0x08020401,
0x00020409, 0x08020409, 0x02000000, 0x0A000000, 0x02000008,
0x0A000008, 0x02000400, 0x0A000400, 0x02000408, 0x0A000408,
0x02020000, 0x0A020000, 0x02020008, 0x0A020008, 0x02020400,
0x0A020400, 0x02020408, 0x0A020408, 0x02000001, 0x0A000001,
0x02000009, 0x0A000009, 0x02000401, 0x0A000401, 0x02000409,
0x0A000409, 0x02020001, 0x0A020001, 0x02020009, 0x0A020009,
0x02020401, 0x0A020401, 0x02020409, 0x0A020409 },
/* for D bits (numbered as per FIPS 46) 16 17 18 19 20 21 */
{ 0x00000000, 0x00000100, 0x00080000, 0x00080100, 0x01000000,
0x01000100, 0x01080000, 0x01080100, 0x00000010, 0x00000110,
0x00080010, 0x00080110, 0x01000010, 0x01000110, 0x01080010,
0x01080110, 0x00200000, 0x00200100, 0x00280000, 0x00280100,
0x01200000, 0x01200100, 0x01280000, 0x01280100, 0x00200010,
0x00200110, 0x00280010, 0x00280110, 0x01200010, 0x01200110,
0x01280010, 0x01280110, 0x00000200, 0x00000300, 0x00080200,
0x00080300, 0x01000200, 0x01000300, 0x01080200, 0x01080300,
0x00000210, 0x00000310, 0x00080210, 0x00080310, 0x01000210,
0x01000310, 0x01080210, 0x01080310, 0x00200200, 0x00200300,
0x00280200, 0x00280300, 0x01200200, 0x01200300, 0x01280200,
0x01280300, 0x00200210, 0x00200310, 0x00280210, 0x00280310,
0x01200210, 0x01200310, 0x01280210, 0x01280310 },
/* for D bits (numbered as per FIPS 46) 22 23 24 25 27 28 */
{ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000002,
0x04000002, 0x00040002, 0x04040002, 0x00002000, 0x04002000,
0x00042000, 0x04042000, 0x00002002, 0x04002002, 0x00042002,
0x04042002, 0x00000020, 0x04000020, 0x00040020, 0x04040020,
0x00000022, 0x04000022, 0x00040022, 0x04040022, 0x00002020,
0x04002020, 0x00042020, 0x04042020, 0x00002022, 0x04002022,
0x00042022, 0x04042022, 0x00000800, 0x04000800, 0x00040800,
0x04040800, 0x00000802, 0x04000802, 0x00040802, 0x04040802,
0x00002800, 0x04002800, 0x00042800, 0x04042800, 0x00002802,
0x04002802, 0x00042802, 0x04042802, 0x00000820, 0x04000820,
0x00040820, 0x04040820, 0x00000822, 0x04000822, 0x00040822,
0x04040822, 0x00002820, 0x04002820, 0x00042820, 0x04042820,
0x00002822, 0x04002822, 0x00042822, 0x04042822 } };
/*
* Tables used for executing des. This used to be in spr.h. Copyright (C)
* 1993 Eric Young - see README for more details
*/
final static int des_SPtrans[][] = {
/* nibble 0 */
{ 0x00820200, 0x00020000, 0x80800000, 0x80820200, 0x00800000,
0x80020200, 0x80020000, 0x80800000, 0x80020200, 0x00820200,
0x00820000, 0x80000200, 0x80800200, 0x00800000, 0x00000000,
0x80020000, 0x00020000, 0x80000000, 0x00800200, 0x00020200,
0x80820200, 0x00820000, 0x80000200, 0x00800200, 0x80000000,
0x00000200, 0x00020200, 0x80820000, 0x00000200, 0x80800200,
0x80820000, 0x00000000, 0x00000000, 0x80820200, 0x00800200,
0x80020000, 0x00820200, 0x00020000, 0x80000200, 0x00800200,
0x80820000, 0x00000200, 0x00020200, 0x80800000, 0x80020200,
0x80000000, 0x80800000, 0x00820000, 0x80820200, 0x00020200,
0x00820000, 0x80800200, 0x00800000, 0x80000200, 0x80020000,
0x00000000, 0x00020000, 0x00800000, 0x80800200, 0x00820200,
0x80000000, 0x80820000, 0x00000200, 0x80020200 },
/* nibble 1 */
{ 0x10042004, 0x00000000, 0x00042000, 0x10040000, 0x10000004,
0x00002004, 0x10002000, 0x00042000, 0x00002000, 0x10040004,
0x00000004, 0x10002000, 0x00040004, 0x10042000, 0x10040000,
0x00000004, 0x00040000, 0x10002004, 0x10040004, 0x00002000,
0x00042004, 0x10000000, 0x00000000, 0x00040004, 0x10002004,
0x00042004, 0x10042000, 0x10000004, 0x10000000, 0x00040000,
0x00002004, 0x10042004, 0x00040004, 0x10042000, 0x10002000,
0x00042004, 0x10042004, 0x00040004, 0x10000004, 0x00000000,
0x10000000, 0x00002004, 0x00040000, 0x10040004, 0x00002000,
0x10000000, 0x00042004, 0x10002004, 0x10042000, 0x00002000,
0x00000000, 0x10000004, 0x00000004, 0x10042004, 0x00042000,
0x10040000, 0x10040004, 0x00040000, 0x00002004, 0x10002000,
0x10002004, 0x00000004, 0x10040000, 0x00042000 },
/* nibble 2 */
{ 0x41000000, 0x01010040, 0x00000040, 0x41000040, 0x40010000,
0x01000000, 0x41000040, 0x00010040, 0x01000040, 0x00010000,
0x01010000, 0x40000000, 0x41010040, 0x40000040, 0x40000000,
0x41010000, 0x00000000, 0x40010000, 0x01010040, 0x00000040,
0x40000040, 0x41010040, 0x00010000, 0x41000000, 0x41010000,
0x01000040, 0x40010040, 0x01010000, 0x00010040, 0x00000000,
0x01000000, 0x40010040, 0x01010040, 0x00000040, 0x40000000,
0x00010000, 0x40000040, 0x40010000, 0x01010000, 0x41000040,
0x00000000, 0x01010040, 0x00010040, 0x41010000, 0x40010000,
0x01000000, 0x41010040, 0x40000000, 0x40010040, 0x41000000,
0x01000000, 0x41010040, 0x00010000, 0x01000040, 0x41000040,
0x00010040, 0x01000040, 0x00000000, 0x41010000, 0x40000040,
0x41000000, 0x40010040, 0x00000040, 0x01010000 },
/* nibble 3 */
{ 0x00100402, 0x04000400, 0x00000002, 0x04100402, 0x00000000,
0x04100000, 0x04000402, 0x00100002, 0x04100400, 0x04000002,
0x04000000, 0x00000402, 0x04000002, 0x00100402, 0x00100000,
0x04000000, 0x04100002, 0x00100400, 0x00000400, 0x00000002,
0x00100400, 0x04000402, 0x04100000, 0x00000400, 0x00000402,
0x00000000, 0x00100002, 0x04100400, 0x04000400, 0x04100002,
0x04100402, 0x00100000, 0x04100002, 0x00000402, 0x00100000,
0x04000002, 0x00100400, 0x04000400, 0x00000002, 0x04100000,
0x04000402, 0x00000000, 0x00000400, 0x00100002, 0x00000000,
0x04100002, 0x04100400, 0x00000400, 0x04000000, 0x04100402,
0x00100402, 0x00100000, 0x04100402, 0x00000002, 0x04000400,
0x00100402, 0x00100002, 0x00100400, 0x04100000, 0x04000402,
0x00000402, 0x04000000, 0x04000002, 0x04100400 },
/* nibble 4 */
{ 0x02000000, 0x00004000, 0x00000100, 0x02004108, 0x02004008,
0x02000100, 0x00004108, 0x02004000, 0x00004000, 0x00000008,
0x02000008, 0x00004100, 0x02000108, 0x02004008, 0x02004100,
0x00000000, 0x00004100, 0x02000000, 0x00004008, 0x00000108,
0x02000100, 0x00004108, 0x00000000, 0x02000008, 0x00000008,
0x02000108, 0x02004108, 0x00004008, 0x02004000, 0x00000100,
0x00000108, 0x02004100, 0x02004100, 0x02000108, 0x00004008,
0x02004000, 0x00004000, 0x00000008, 0x02000008, 0x02000100,
0x02000000, 0x00004100, 0x02004108, 0x00000000, 0x00004108,
0x02000000, 0x00000100, 0x00004008, 0x02000108, 0x00000100,
0x00000000, 0x02004108, 0x02004008, 0x02004100, 0x00000108,
0x00004000, 0x00004100, 0x02004008, 0x02000100, 0x00000108,
0x00000008, 0x00004108, 0x02004000, 0x02000008 },
/* nibble 5 */
{ 0x20000010, 0x00080010, 0x00000000, 0x20080800, 0x00080010,
0x00000800, 0x20000810, 0x00080000, 0x00000810, 0x20080810,
0x00080800, 0x20000000, 0x20000800, 0x20000010, 0x20080000,
0x00080810, 0x00080000, 0x20000810, 0x20080010, 0x00000000,
0x00000800, 0x00000010, 0x20080800, 0x20080010, 0x20080810,
0x20080000, 0x20000000, 0x00000810, 0x00000010, 0x00080800,
0x00080810, 0x20000800, 0x00000810, 0x20000000, 0x20000800,
0x00080810, 0x20080800, 0x00080010, 0x00000000, 0x20000800,
0x20000000, 0x00000800, 0x20080010, 0x00080000, 0x00080010,
0x20080810, 0x00080800, 0x00000010, 0x20080810, 0x00080800,
0x00080000, 0x20000810, 0x20000010, 0x20080000, 0x00080810,
0x00000000, 0x00000800, 0x20000010, 0x20000810, 0x20080800,
0x20080000, 0x00000810, 0x00000010, 0x20080010 },
/* nibble 6 */
{ 0x00001000, 0x00000080, 0x00400080, 0x00400001, 0x00401081,
0x00001001, 0x00001080, 0x00000000, 0x00400000, 0x00400081,
0x00000081, 0x00401000, 0x00000001, 0x00401080, 0x00401000,
0x00000081, 0x00400081, 0x00001000, 0x00001001, 0x00401081,
0x00000000, 0x00400080, 0x00400001, 0x00001080, 0x00401001,
0x00001081, 0x00401080, 0x00000001, 0x00001081, 0x00401001,
0x00000080, 0x00400000, 0x00001081, 0x00401000, 0x00401001,
0x00000081, 0x00001000, 0x00000080, 0x00400000, 0x00401001,
0x00400081, 0x00001081, 0x00001080, 0x00000000, 0x00000080,
0x00400001, 0x00000001, 0x00400080, 0x00000000, 0x00400081,
0x00400080, 0x00001080, 0x00000081, 0x00001000, 0x00401081,
0x00400000, 0x00401080, 0x00000001, 0x00001001, 0x00401081,
0x00400001, 0x00401080, 0x00401000, 0x00001001 },
/* nibble 7 */
{ 0x08200020, 0x08208000, 0x00008020, 0x00000000, 0x08008000,
0x00200020, 0x08200000, 0x08208020, 0x00000020, 0x08000000,
0x00208000, 0x00008020, 0x00208020, 0x08008020, 0x08000020,
0x08200000, 0x00008000, 0x00208020, 0x00200020, 0x08008000,
0x08208020, 0x08000020, 0x00000000, 0x00208000, 0x08000000,
0x00200000, 0x08008020, 0x08200020, 0x00200000, 0x00008000,
0x08208000, 0x00000020, 0x00200000, 0x00008000, 0x08000020,
0x08208020, 0x00008020, 0x08000000, 0x00000000, 0x00208000,
0x08200020, 0x08008020, 0x08008000, 0x00200020, 0x08208000,
0x00000020, 0x00200020, 0x08008000, 0x08208020, 0x00200000,
0x08200000, 0x08000020, 0x00208000, 0x00008020, 0x08008020,
0x08200000, 0x00000020, 0x08208000, 0x00208020, 0x00000000,
0x08000000, 0x08200020, 0x00008000, 0x00208020 } };
}
... ...
package com.sitech.ibnms.util;
import java.math.BigInteger;
import java.util.Scanner;
public final class DES3 extends Cipher {
DES des1 = new DES();
DES des2 = new DES();
DES des3 = new DES();
public synchronized void encrypt(byte[] src, int srcOff, byte[] dest,
int destOff, int len) {
des1.encrypt(src, srcOff, dest, destOff, len);
des2.decrypt(dest, destOff, dest, destOff, len);
des3.encrypt(dest, destOff, dest, destOff, len);
}
public synchronized void decrypt(byte[] src, int srcOff, byte[] dest,
int destOff, int len) {
des3.decrypt(src, srcOff, dest, destOff, len);
des2.encrypt(dest, destOff, dest, destOff, len);
des1.decrypt(dest, destOff, dest, destOff, len);
}
public void setKey(byte[] key) {
byte[] subKey = new byte[8];
des1.setKey(key);
System.arraycopy(key, 8, subKey, 0, 8);
des2.setKey(subKey);
System.arraycopy(key, 16, subKey, 0, 8);
des3.setKey(subKey);
}
static byte[] key = { (byte) 0x12, (byte) 0x34, (byte) 0x45, (byte) 0x78,
(byte) 0x87, (byte) 0x34, (byte) 0x43, (byte) 0x23, (byte) 0x89,
(byte) 0x55, (byte) 0x01, (byte) 0x77, (byte) 0x87, (byte) 0xef,
(byte) 0x43, (byte) 0x78, (byte) 0xcd, (byte) 0x65, (byte) 0x9a,
(byte) 0x21, (byte) 0x12, (byte) 0xab, (byte) 0x56, (byte) 0x78, };
static public String decrypt(String source) {
byte[] txt = new byte[24];
BigInteger t = new BigInteger(source, 16);
byte[] b = t.toByteArray();
if (b[0] == 0) {
System.arraycopy(b, 1, txt, 0, b.length - 1);
} else {
System.arraycopy(b, 0, txt, 0, b.length);
}
byte[] dec;
DES3 cipher = new DES3();
cipher.setKey(key);
dec = cipher.decrypt(txt);
byte[] dect = new byte[dec.length];
int j = 0;
for (int i = 0; i < dec.length; i++) {
if (dec[i] > 0) {
dect[j++] = dec[i];
}
}
String rt = (new String(dect, 0, j));
return rt;
}
static public void displayString(String source) {
byte[] aa = source.getBytes();
System.out.print("BEGIN:");
for (int i = 0; i < aa.length; i++) {
System.out.print(aa[i]);
System.out.print(" ");
}
System.out.println(":END");
}
static public String encrypt(String source) {
byte[] txt = new byte[24];
byte[] b = source.getBytes();
System.arraycopy(b, 0, txt, 0, b.length);
byte[] enc;
DES3 cipher = new DES3();
cipher.setKey(key);
enc = cipher.encrypt(txt);
return printHex(enc);
}
static String printHex(byte[] buf) {
byte[] out = new byte[buf.length + 1];
out[0] = 0;
System.arraycopy(buf, 0, out, 1, buf.length);
BigInteger big = new BigInteger(out);
return big.toString(16);
}
static String printHex(int i) {
BigInteger b = BigInteger.valueOf((long) i + 0x100000000L);
BigInteger c = BigInteger.valueOf(0x100000000L);
if (b.compareTo(c) != -1)
b = b.subtract(c);
return b.toString(16);
}
private static String read(String prompt) {
Scanner scanner = new Scanner(System.in);
System.out.print(prompt);
return scanner.nextLine();
}
public static void main(String[] args) {
System.out.println("******DES3 Util********");
String type = read("类型(1:加密, 2:解密):").trim();
String str = read("字符串:").trim();
switch (Integer.parseInt(type)) {
case 1:
System.out.println(DES3.encrypt(str));
break;
case 2:
System.out.println(DES3.decrypt(str));
break;
default:
break;
}
System.out.println("******DES3 Util********");
}
}
... ...
package com.sitech.ibnms.util;
import java.math.BigInteger;
import java.sql.Timestamp;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;
public class Formater {
public final static String INVALIDDATE = "1950-01-01";
private final static String SQLTYPE = "SYBASE";
public final static String getNowTime() {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter1.format(new Date());
}
public final static String getToday() {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
return formatter1.format(new Date());
}
public final static String getDateAsFile(Date dDate) throws ParseException {
SimpleDateFormat formatter1 = new SimpleDateFormat("MMddHHmmss");
return formatter1.format(dDate);
}
public final static String getSybaseFormatDate(String cDate) {
return cDate;
}
public final static String getSybaseFormatDate(Date dDate) throws ParseException {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
return formatter1.format(dDate);
}
public final static String getSybaseFormatDateTime(Date dDate) {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter1.format(dDate);
}
public final static String dateToString(Date dDate) throws ParseException {
if (null == dDate) {
return "";
}
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
if (formatter1.format(dDate).equals(INVALIDDATE)) {
return "";
}
return formatter1.format(dDate);
}
public final static String datetimeToString(Date date)
throws ParseException {
if (null == date) {
return "";
}
if (dateToString(date).equals("")) {
return "";
}
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter.format(date);
}
public final static String datetimeToString(Date date, String formate) {
try{
if (null == date) {
return "";
}
SimpleDateFormat formatter = new SimpleDateFormat(formate);
return formatter.format(date);
}catch (Exception e) {
return "";
}
}
public static String counter64_sub(String newCounter, String oldCounter) {
String result = "0";
String counterType = "64";
if(newCounter==null||newCounter.equals("")||newCounter.equals("--"))
return "";
if(oldCounter==null||oldCounter.equals("")||oldCounter.equals("--"))
return "";
result = counter_sub(newCounter, oldCounter, counterType);
return result;
}
/**
*
* @param newCounter
* @param oldCounter
* @param counterType
* 32:32λ;64:64λ
* @return
*/
public static String counter_sub(String newCounter, String oldCounter,
String counterType) {
// 2^32 = 4294967295
// 2^64 = 18446744073709551615
String result = "0";
try {
BigInteger newbi = new BigInteger(newCounter);
BigInteger oldbi = new BigInteger(oldCounter);
BigInteger bi3 = new BigInteger("-1");
if (newbi.compareTo(oldbi) >= 0) {
// newbi >= oldbi
result = newbi.add(oldbi.divide(bi3)).toString();
} else {
BigInteger bi4 = null;
if (counterType.equals("32")) {
bi4 = new BigInteger("4294967295");
} else if (counterType.equals("64")) {
bi4 = new BigInteger("18446744073709551615");
}
result = bi4.add(oldbi.divide(bi3)).add(newbi).toString();
}
} catch (Exception e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
return result;
}
public static String double2String(double d) {
int max_fraction_digits = 2;
int min_fraction_digits = 2;
return double2String(d, max_fraction_digits, min_fraction_digits);
}
public final static String fromDBTimeStamp(Timestamp ts, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(fromDBTimeStamp(ts));
}
public final static int string2int(String chs) {
int result=0;
try {
if(chs==null||chs.equals(""))
return result;
else
{
result= (new Integer(chs)).intValue();
}
} catch (NumberFormatException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
return result;
}
public final static Date fromDBTimeStamp(Timestamp ts) {
Date result = new Date(ts.getTime());
return result;
}
/**
*
* @param newCounter
* @param oldCounter
* @return
*/
public static String counter32_sub(String newCounter, String oldCounter) {
String result = "0";
String counterType = "32";
if(newCounter==null||newCounter.equals("")||newCounter.equals("--"))
return "";
if(oldCounter==null||oldCounter.equals("")||oldCounter.equals("--"))
return "";
result = counter_sub(newCounter, oldCounter, counterType);
return result;
}
/**
* @return
*/
public static String double2String(double d, int max_fraction_digits,
int min_fraction_digits) {
String result = "";
try {
NumberFormat nf = NumberFormat.getInstance();
nf.setMaximumFractionDigits(max_fraction_digits);
nf.setMinimumFractionDigits(min_fraction_digits);
result = nf.format(d);
if(result.indexOf(",")!=-1)
result= result.replaceAll(",","");
} catch (Exception e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
return result;
}
/* modified by wangxj on 2002/08/02 */
public final static String dateOnWeb(Date dDate) throws ParseException {
if (null == dDate) {
return "";
}
String cDate = dateToString(dDate);
if (cDate.equals("")) {
return "";
}
SimpleDateFormat formatter1 = new SimpleDateFormat("yy-MM-dd HH:mm");
return formatter1.format(dDate);
}
/* modified by xielj on 2002/08/11 */
public final static String timeOnWeb(Date dDate) throws ParseException {
if (null == dDate) {
return "";
}
String cDate = datetimeToString(dDate);
if (cDate.equals("")) {
return "";
}
SimpleDateFormat formatter1 = new SimpleDateFormat("HH:mm");
return formatter1.format(dDate);
}
public final static String timeOnWeb(String cDate) throws ParseException {
if (cDate.equals("")) {
return "";
}
SimpleDateFormat formatter1 = new SimpleDateFormat("HH:mm");
java.util.Date dDate = stringToDateTime(cDate);
return formatter1.format(dDate);
}
public final static Date stringToDate(String cDate, String cFormat) throws ParseException {
SimpleDateFormat formatter1 = new SimpleDateFormat(cFormat);
return formatter1.parse(cDate);
}
public final static Date stringToDate(String cDate) throws ParseException {
try {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
return formatter1.parse(cDate);
} catch (ParseException e) {
try {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter1.parse(cDate);
} catch (ParseException ee) {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
return formatter1.parse(cDate);
}
}
}
public final static Date stringToDateTime(String cDate) throws ParseException {
try {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return formatter1.parse(cDate);
} catch (ParseException e) {
try {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
return formatter1.parse(cDate);
} catch (ParseException ee) {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
return formatter1.parse(cDate);
}
}
}
public final static String toHTMLString(String chs) {
if (chs.equals("")) {
return chs;
} else {
StringTokenizer st = new StringTokenizer(chs, "\n");
String rt = new String("");
String cHTMLEnter = "<br>";
while (st.hasMoreTokens()) {
rt = rt + st.nextToken() + cHTMLEnter;
}
int i = 0;
while (true) {
if (rt.charAt(i) == 32) {
i++;
} else
break;
}
if (i > 0) {
String cSpace = "";
for (int j = 0; j < i; j++) {
cSpace = cSpace + "&nbsp;";
}
rt = cSpace + rt.substring(i);
}
return rt;
}
}
public final static String ltrimtoHTMLString(String chs) {
StringTokenizer st = new StringTokenizer(chs, "\n");
String rt = new String("");
String cHTMLEnter = "<br>";
while (st.hasMoreTokens()) {
rt = rt + st.nextToken() + cHTMLEnter;
}
return rt;
}
/*
* public final static String toHTMLURL(String chs){ return
* java.net.URLEncoder.encode(chs); }
*/
/**
*/
public static String toHTMLBracket(String s) {
StringBuffer str = new StringBuffer();
int len = (s != null) ? s.length() : 0;
for (int i = 0; i < len; i++) {
char ch = s.charAt(i);
switch (ch) {
case '<': {
str.append("&lt;");
break;
}
case '>': {
str.append("&gt;");
break;
}
default: {
str.append(ch);
}
}
}
return str.toString();
}
public final static String fromSybaseString(String chs) throws java.io.UnsupportedEncodingException {
if (null == chs)
return "";
// String temp = new String(chs.getBytes("ISO8859_1"),"GBK");
return chs;
}
public final static String fromDBString(String chs) throws java.io.UnsupportedEncodingException {
if (null == chs)
return "";
String temp = chs;// new String(chs.getBytes("ISO8859_1"),"GBK");
return temp;
}
public final static String toSybaseString(String chs) throws java.io.UnsupportedEncodingException {
if (null == chs)
return "";
// String temp = new String(chs.getBytes("GBK"),"ISO8859_1");
return chs;
}
public final static String toDBString(String chs) throws java.io.UnsupportedEncodingException {
if (null == chs)
return "";
String temp = chs;// new String(chs.getBytes("GBK"),"ISO8859_1");
return temp;
}
// public final static String toOSString(String chs)
// throws java.io.UnsupportedEncodingException {
// if (chs == null)
// return "";
// String temp = new String(chs.getBytes("GBK"), OSCHARSET);
// return temp;
// }
public final static String toOracleDate(Date dDate) throws ParseException {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
return " to_date('" + formatter1.format(dDate) + "','yyyy-MM-dd') ";
}
public final static String toOracleDateTime(Date dDate) throws ParseException {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return " to_date('" + formatter1.format(dDate) + "','yyyy-MM-dd HH24:mi:ss') ";
}
private final static String toSybaseDate(Date dDate) throws ParseException {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd");
return " '" + formatter1.format(dDate) + "' ";
}
private final static String toSybaseDateTime(Date dDate) throws ParseException {
SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return " '" + formatter1.format(dDate) + "' ";
}
public final static String toDBDate(Date dDate) throws ParseException {
if (null == dDate) {
dDate = stringToDate(INVALIDDATE);
}
String cSQLDate = null;
if (SQLTYPE.equals("ORACLE"))
cSQLDate = toOracleDate(dDate);
if (SQLTYPE.equals("SYBASE"))
cSQLDate = toSybaseDate(dDate);
return cSQLDate;
}
public final static String toDBDate(String cDate) throws ParseException {
if (null == cDate) {
cDate = INVALIDDATE;
}
return toDBDate(stringToDate(cDate));
}
public final static String toDBDateTime(Date dDate) throws ParseException {
if (null == dDate) {
dDate = stringToDate(INVALIDDATE);
}
String cSQLDate = null;
if (SQLTYPE.equals("ORACLE"))
cSQLDate = toOracleDateTime(dDate);
if (SQLTYPE.equals("SYBASE"))
cSQLDate = toSybaseDateTime(dDate);
return cSQLDate;
}
public final static String toDBDateTime(String cDate) throws ParseException {
if (null == cDate) {
cDate = INVALIDDATE;
}
return toDBDateTime(stringToDateTime(cDate));
}
public final static String getFormattedCLL_TIME(String CLL_TIME) {
String cllTime = "";
SimpleDateFormat formatter1 = null;
SimpleDateFormat formatter2 = new SimpleDateFormat("MM-dd HH:mm");
java.util.Date dCLL_TIME = null;
try {
formatter1 = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
dCLL_TIME = formatter1.parse(CLL_TIME);
} catch (ParseException e) {
try {
formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dCLL_TIME = formatter1.parse(CLL_TIME);
} catch (ParseException e1) {
// Loger.errLog(e);
}
}
if (dCLL_TIME != null)
cllTime = formatter2.format(dCLL_TIME);
return cllTime;
}
}
... ...
package com.sitech.ibnms.util;
import java.util.Collection;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
*
* @author liujhc
*/
public class JSONUtil {
/**
* 将java对象转换成json字符串
* @param obj
* @return
*/
public static String toJSON(Object obj) {
if (obj == null) {
return null;
} else if (obj.getClass().isArray() || obj instanceof Collection) {
return JSONArray.fromObject(obj).toString();
} else {
return JSONObject.fromObject(obj).toString();
}
}
/**
* 将json字符串数组转换成java的List对象,对象转换成java的Map对象
* @param json
* @return
*/
public static Object fromJSON(String json){
if (json == null) {
return null;
} else if (json.startsWith("[")) {
return JSONArray.fromObject(json);
} else {
return JSONObject.fromObject(json);
}
}
}
... ...
package com.sitech.ibnms.util;
import java.security.MessageDigest;
import java.security.SecureRandom;
import java.util.Random;
public class RandomGUID extends Object {
public String valueBeforeMD5 = "";
public String valueAfterMD5 = "";
private static Random myRand;
private static SecureRandom mySecureRand;
public static String s_id;
public static String s_name;
private static final int PAD_BELOW = 0x10;
private static final int TWO_BYTES = 0xFF;
static {
mySecureRand = new SecureRandom();
long secureInitializer = mySecureRand.nextLong();
myRand = new Random(secureInitializer);
}
public RandomGUID() {
getRandomGUID(false);
}
public RandomGUID(boolean secure) {
getRandomGUID(secure);
}
private void getRandomGUID(boolean secure) {
MessageDigest md5 = null;
StringBuffer sbValueBeforeMD5 = new StringBuffer(128);
try {
md5 = MessageDigest.getInstance("MD5");
long time = System.currentTimeMillis();
long rand = 0;
if (secure) {
rand = mySecureRand.nextLong();
} else {
rand = myRand.nextLong();
}
sbValueBeforeMD5.append(s_id);
sbValueBeforeMD5.append(":");
sbValueBeforeMD5.append(Long.toString(time));
sbValueBeforeMD5.append(":");
sbValueBeforeMD5.append(Long.toString(rand));
valueBeforeMD5 = sbValueBeforeMD5.toString();
md5.update(valueBeforeMD5.getBytes());
byte[] array = md5.digest();
StringBuffer sb = new StringBuffer(32);
for (int j = 0; j < array.length; ++j) {
int b = array[j] & TWO_BYTES;
if (b < PAD_BELOW)
sb.append('0');
sb.append(Integer.toHexString(b));
}
valueAfterMD5 = sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
}
public String toString() {
String raw = valueAfterMD5.toUpperCase();
StringBuffer sb = new StringBuffer(64);
sb.append(raw.substring(0, 8));
sb.append("-");
sb.append(raw.substring(8, 12));
sb.append("-");
sb.append(raw.substring(12, 16));
sb.append("-");
sb.append(raw.substring(16, 20));
sb.append("-");
sb.append(raw.substring(20));
return sb.toString();
}
public static String getRandomGUID() {
RandomGUID myGUID = new RandomGUID();
return myGUID.toString();
}
public static void main(String args[]) {
for (int i = 0; i < 100; i++) {
RandomGUID myGUID = new RandomGUID();
System.out.println(myGUID.toString());
}
}
}
\ No newline at end of file
... ...
package com.sitech.ibnms.util;
import java.security.MessageDigest;
public class SameGUID {
private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
public static String getSameGUID(String inputString) {
return encodeByMD5(inputString);
}
private static String encodeByMD5(String originString) {
if (originString != null) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] results = md.digest(originString.getBytes());
String resultString = byteArrayToHexString(results);
return resultString.toUpperCase();
} catch (Exception ex) {
ex.printStackTrace();
}
}
return null;
}
private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString();
}
private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n = 256 + n;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("md5:"+ SameGUID.getSameGUID("eeee 2011-10-11vvvvvvvvvvv"));
System.out.println("md5:" + SameGUID.getSameGUID("eeee bbbb"));
System.out.println("md5:"+ SameGUID.getSameGUID("eeee 2011-10-11vvvvvvvvvvv"));
}
}
... ...
package com.sitech.ibnms.util;
import java.io.Reader;
import java.util.HashMap;
import java.util.Map;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
public class SqlMapFactory {
private static Map<String, SqlMapClient> sqlMapClientMap = new HashMap<String, SqlMapClient>();
// ORACLE
private static String defaultSqlMapConfig = "sqlmap.xml";
public static synchronized SqlMapClient getDefaultSqlMapClient() {
return getSqlMapClient(defaultSqlMapConfig);
}
public static synchronized SqlMapClient getSqlMapClient(String config) {
if (sqlMapClientMap.get(config) == null) {
String resource = config;
Reader reader;
SqlMapClient sqlMap = null;
try {
java.util.ResourceBundle LoginInfo = java.util.ResourceBundle
.getBundle("LoginInfo");
String sClassforName = LoginInfo.getString("SERVERDriver");
String sUrl = LoginInfo.getString("SERVERConnectionURL");
String sUserName = LoginInfo.getString("SERVERUsername");
String sPassword = LoginInfo.getString("SERVERPassword");
sPassword = DES3.decrypt(sPassword);
java.util.Properties properties = new java.util.Properties();
properties.put("SERVERDriver", sClassforName);
properties.put("SERVERConnectionURL", sUrl);
properties.put("SERVERUsername", sUserName);
properties.put("SERVERPassword", sPassword);
reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader,
properties);
System.out.println(sUrl + " " + sUserName + " " + sPassword);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
}
sqlMapClientMap.put(config, sqlMap);
return sqlMap;
} else {
return (SqlMapClient) sqlMapClientMap.get(config);
}
}
}
... ...
package com.sitech.ibnms.util;
import java.io.Serializable;
public class SysHelper implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 冻结线程
*/
public static void waitIt(Object o, long time) {
synchronized (o) {
try {
if (time == -1)
o.wait(5000L);
else
o.wait(time);
} catch (InterruptedException iex) {
iex.printStackTrace();
}
}
}
public static void waitIt(Object o) {
waitIt(o, -1);
}
/**
* 唤醒线程
*/
public static void notifyIt(Object o) {
synchronized (o) {
o.notify();
}
}
}
... ...
package com.sitech.ibnms.util;
import org.apache.log4j.Logger;
public class SystemUtil {
public static Logger logger = Logger.getLogger("LOGGER");
public final static String SYS_OS_VERSION = System.getProperty("os.version");
public final static String SYS_OS_NAME = System.getProperty("os.name");
public final static String SYS_JAVA_VERSION = System.getProperty("java.version");
public final static String SYS_JAVA_HOME = System.getProperty("java.home");
public final static String SYS_FILE_SPARATOR = "/";
public final static String SYS_PATH_SPARATOR = System.getProperty("path.separator");
public final static String SYS_USER_NAME = System.getProperty("user.name");
public final static String SYS_USER_DIR = System.getProperty("user.dir");
}
... ...
package com.sitech.ibnms.util;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolUtil {
/** 线程池 */
public static ExecutorService executorService;
/** 线程池最大数量 */
public static int MAX_PROCESS_NUM = 10;
static {
executorService = Executors.newFixedThreadPool(MAX_PROCESS_NUM);
}
}
... ...