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