📄 sendwebspheremessage.java
字号:
import org.json.simple.JSONObject;
//import java.io.IOException;
import java.util.HashMap;
//import javax.management.ObjectName;
import java.io.*;
public class SendWebsphereMessage {
private IOUtil io = new IOUtil();
private WebsphereConfigure configure = new WebsphereConfigure();
private WSConfigManagement ws = new WSConfigManagement();
private JSONObject jSONObject = null;
private String warnCmd;
private String dataCmd;
private String modifiedAttr;
/*
* All the data get from WS
*/
private String jdbcConnectionPoolSize;
private String runningMode;
private String heapSize;
private String threadPoolInfo;
private String systemLogPath;
private String userLogPath;
private String cpuUsage;
private String faultJDBCConnNums;
private String ipAddress;
private String jdbcConnTime;
private String jvmRunTime;
private String newObjectByPool;
private String threadActiveNums;
private String threadDestroyNums;
public SendWebsphereMessage() {
jdbcConnectionPoolSize = ws.getJDBCConnectionPoolSize();
runningMode = ws.getRunningMode();
heapSize = ws.getHeapSize();
threadPoolInfo = ws.getThreadPoolInfo();
systemLogPath = ws.getSystemLogPath();
userLogPath = ws.getUserLogPath();
cpuUsage = ws.getCPUUsage();
faultJDBCConnNums = ws.getFaultJDBCConnNums();
ipAddress = ws.getIpAddress();
jdbcConnTime = ws.getJDBCConnTime();
jvmRunTime = ws.getJVMRunTime();
newObjectByPool = ws.getNewObjectByPool();
threadActiveNums = ws.getThreadActiveNums();
threadDestroyNums = ws.getThreadDestroyNums();
}
public void newCfgFile() {
String stringContent = MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE + "="
+ jdbcConnectionPoolSize + "\r\n"
+ MainTableUtil.AS_RUNNING_MODE + "=" + runningMode + "\r\n"
+ MainTableUtil.AS_HEAP_SIZE + "=" + heapSize + "\r\n"
+ MainTableUtil.AS_CONFIG_THREADS_NUM + "=" + threadPoolInfo
+ "\r\n" + MainTableUtil.AS_SYSTEM_LOG_PATH + "="
+ systemLogPath + "\r\n" + MainTableUtil.AS_USER_LOG_PATH + "="
+ userLogPath + "\r\n" + AttributesUtil.WS_CPU_USAGE + "="
+ cpuUsage + "\r\n" + AttributesUtil.WS_FAULT_JDBCCONN_NUMS
+ "=" + faultJDBCConnNums + "\r\n"
+ AttributesUtil.WS_IP_ADDRESS + "=" + ipAddress + "\r\n"
+ AttributesUtil.WS_JDBCCONN_TIME + "=" + jdbcConnTime + "\r\n"
+ AttributesUtil.WS_JVM_RUN_TIME + "=" + jvmRunTime + "\r\n"
+ AttributesUtil.WS_OBJECT_NUMS + "=" + newObjectByPool
+ "\r\n" + AttributesUtil.WS_THREAD_ACTIVE_NUMS + "="
+ threadActiveNums + "\r\n"
+ AttributesUtil.WS_THREAD_DESTROY_NUMS + "="
+ threadDestroyNums + "\r\n";
io.writeInNewFile(configure.getConfigFilePath()
+ configure.getWebsphereDataFile(), stringContent);
}
public boolean compareContentWithOrigFile() {
boolean modified = false;
String configfile_path = configure.getConfigFilePath();
String websphere_datafile_name = configure.getWebsphereDataFile();
StringBuffer sb = new StringBuffer();
HashMap map = io.getOrigFile(configfile_path + websphere_datafile_name);
if (!heapSize.equals(map.get(MainTableUtil.AS_HEAP_SIZE))
|| !cpuUsage.equals(map.get(AttributesUtil.WS_CPU_USAGE))
|| !faultJDBCConnNums.equals(map
.get(AttributesUtil.WS_FAULT_JDBCCONN_NUMS))
|| !ipAddress.equals(map.get(AttributesUtil.WS_IP_ADDRESS))
|| !jdbcConnectionPoolSize.equals(map
.get(MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE))
|| !jdbcConnTime.equals(map
.get(AttributesUtil.WS_JDBCCONN_TIME))
|| !jvmRunTime.equals(map.get(AttributesUtil.WS_JVM_RUN_TIME))
|| !newObjectByPool.toString().equals(
map.get(AttributesUtil.WS_OBJECT_NUMS))
|| !runningMode.equals(map.get(MainTableUtil.AS_RUNNING_MODE))
|| !systemLogPath.equals(map
.get(MainTableUtil.AS_SYSTEM_LOG_PATH))
|| !threadActiveNums.equals(map
.get(AttributesUtil.WS_THREAD_ACTIVE_NUMS))
|| !threadDestroyNums.toString().equals(
map.get(AttributesUtil.WS_THREAD_DESTROY_NUMS))
|| !userLogPath.equals(map.get(MainTableUtil.AS_USER_LOG_PATH))
|| !threadPoolInfo.toString().equals(
map.get(MainTableUtil.AS_CONFIG_THREADS_NUM))) {
if (!heapSize.equals(map.get(MainTableUtil.AS_HEAP_SIZE))) {
sb.append(MainTableUtil.AS_HEAP_SIZE);
sb.append(" from ");
sb.append(map.get(MainTableUtil.AS_HEAP_SIZE));
sb.append(" TO ");
sb.append(heapSize);
sb.append(",");
}
if (!cpuUsage.equals(map.get(AttributesUtil.WS_CPU_USAGE))) {
sb.append(AttributesUtil.WS_CPU_USAGE);
sb.append(" from ");
sb.append(map.get(AttributesUtil.WS_CPU_USAGE));
sb.append(" TO ");
sb.append(cpuUsage);
sb.append(",");
}
if (!faultJDBCConnNums.equals(map
.get(AttributesUtil.WS_FAULT_JDBCCONN_NUMS))) {
sb.append(AttributesUtil.WS_CPU_USAGE);
sb.append(" from ");
sb.append(map.get(AttributesUtil.WS_CPU_USAGE));
sb.append(" TO ");
sb.append(faultJDBCConnNums);
sb.append(",");
}
if (!ipAddress.equals(map.get(AttributesUtil.WS_IP_ADDRESS))) {
sb.append(AttributesUtil.WS_IP_ADDRESS);
sb.append(" from ");
sb.append(map.get(AttributesUtil.WS_IP_ADDRESS));
sb.append(" TO ");
sb.append(ipAddress);
sb.append(",");
}
if (!jdbcConnectionPoolSize.equals(map
.get(MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE))) {
sb.append(MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE);
sb.append(" from ");
sb.append(map.get(MainTableUtil.AS_CONFIG_JDBCPOOL_SIZE));
sb.append(" TO ");
sb.append(jdbcConnectionPoolSize);
sb.append(",");
}
if (!jdbcConnTime.equals(map.get(AttributesUtil.WS_JDBCCONN_TIME))) {
sb.append(AttributesUtil.WS_JDBCCONN_TIME);
sb.append(" from ");
sb.append(map.get(AttributesUtil.WS_JDBCCONN_TIME));
sb.append(" TO ");
sb.append(jdbcConnTime);
sb.append(",");
}
if (!jvmRunTime.equals(map.get(AttributesUtil.WS_JVM_RUN_TIME))) {
sb.append(AttributesUtil.WS_JVM_RUN_TIME);
sb.append(" from ");
sb.append(map.get(AttributesUtil.WS_JVM_RUN_TIME));
sb.append(" TO ");
sb.append(jvmRunTime);
sb.append(",");
}
if (!newObjectByPool.equals(map.get(AttributesUtil.WS_OBJECT_NUMS))) {
sb.append(AttributesUtil.WS_OBJECT_NUMS);
sb.append(" from ");
sb.append(map.get(AttributesUtil.WS_OBJECT_NUMS));
sb.append(" TO ");
sb.append(newObjectByPool);
sb.append(",");
}
if (!runningMode.equals(map.get(MainTableUtil.AS_RUNNING_MODE))) {
sb.append(MainTableUtil.AS_RUNNING_MODE);
sb.append(" from ");
sb.append(map.get(MainTableUtil.AS_RUNNING_MODE));
sb.append(" TO ");
sb.append(runningMode);
sb.append(",");
}
if (!systemLogPath
.equals(map.get(MainTableUtil.AS_SYSTEM_LOG_PATH))) {
sb.append(MainTableUtil.AS_SYSTEM_LOG_PATH);
sb.append(" from ");
sb.append(map.get(MainTableUtil.AS_SYSTEM_LOG_PATH));
sb.append(" TO ");
sb.append(systemLogPath);
sb.append(",");
}
if (!threadActiveNums.equals(map
.get(AttributesUtil.WS_THREAD_ACTIVE_NUMS))) {
sb.append(AttributesUtil.WS_THREAD_ACTIVE_NUMS);
sb.append(" from ");
sb.append(map.get(AttributesUtil.WS_THREAD_ACTIVE_NUMS));
sb.append(" TO ");
sb.append(threadActiveNums);
sb.append(",");
}
if (!threadDestroyNums.toString().equals(
map.get(AttributesUtil.WS_THREAD_DESTROY_NUMS))) {
sb.append(AttributesUtil.WS_THREAD_DESTROY_NUMS);
sb.append(" from ");
sb.append(map.get(AttributesUtil.WS_THREAD_DESTROY_NUMS));
sb.append(" TO ");
sb.append(threadDestroyNums);
sb.append(",");
}
if (!userLogPath.equals(map.get(MainTableUtil.AS_USER_LOG_PATH))) {
sb.append(MainTableUtil.AS_USER_LOG_PATH);
sb.append(" from ");
sb.append(map.get(MainTableUtil.AS_USER_LOG_PATH));
sb.append(" TO ");
sb.append(userLogPath);
sb.append(",");
}
if (!threadPoolInfo.toString().equals(
map.get(MainTableUtil.AS_CONFIG_THREADS_NUM))) {
sb.append(MainTableUtil.AS_CONFIG_THREADS_NUM);
sb.append(" from ");
sb.append(map.get(MainTableUtil.AS_CONFIG_THREADS_NUM));
sb.append(" TO ");
sb.append(threadPoolInfo);
sb.append(",");
}
modifiedAttr = sb.toString();
int index = -1;
index = modifiedAttr.lastIndexOf(",");
if (index != -1)
modifiedAttr = modifiedAttr.substring(0, index);
//System.out.println(modifiedAttr);
newCfgFile();
modified = true;
//System.out.println("Modify the file");
}
return modified;
}
public JSONObject send() {
FormatTransform formatTransform = new FormatTransform();
String configfile_path = configure.getConfigFilePath();
String websphere_datafile_name = configure.getWebsphereDataFile();
String cmcolName = configure.getCmcolname();
String globalCfgName = configure.getGlobalConfigfileName();
String ci = io.getCIName(configfile_path + globalCfgName);
if (!io.checkOriginalFile(configfile_path + websphere_datafile_name)) {
this.newCfgFile();
formatTransform.setAsName(cmcolName);
formatTransform.setType("N");
jSONObject = formatTransform.getJsonFormat(ws);
warnCmd = "./postemsg -f gateway.conf -r WARNING -m \"New CI:" + ci
+ "\"" + " source=\"gtscm\"" + " CI_CREATE ALL";
String originalJSON = jSONObject.toString();
String escapeJSON=Escape.escape(originalJSON);
dataCmd = "./postemsg -f gateway.conf -r WARNING -m "
+ escapeJSON + " source=\"gtscm\""
+ " CI_DATA ALL";
// send new type message
} else {
// read file checking data to determine to modify or delete
if (compareContentWithOrigFile()) {
formatTransform.setAsName(cmcolName);
formatTransform.setType("M");
jSONObject = formatTransform.getJsonFormat(ws);
warnCmd = "./postemsg -f gateway.conf -r WARNING -m \"Modify CI:"
+ ci + "," + " ATTR:" + modifiedAttr + "\""
+ " source=\"gtscm\"" + " CI_MODIFY ALL";
/*
* Widdows OS : should replace all " to \" of the
* jSONObject.toString() String,here i use replacedJSON Other
* OS: using originalJSON directly
*/
String originalJSON = jSONObject.toString();
String replacedJSON = originalJSON.replaceAll("\"", "\\\\\"");
String escapeJSON=Escape.escape(originalJSON);
dataCmd = "./postemsg -f gateway.conf -r WARNING -m "
+ escapeJSON + " source=\"gtscm\""
+ " CI_DATA ALL";
}
}
return jSONObject;
}
public String getWarnCmd() {
return warnCmd;
}
public String getDataCmd() {
return dataCmd;
}
public static void main(String[] args) {
SendWebsphereMessage send = new SendWebsphereMessage();
send.send();
//String warn = send.getWarnCmd();
String data = send.getDataCmd();
// if (warn != null ) {
// try {
// Runtime.getRuntime().exec(warn);
// Runtime.getRuntime().exec(data);
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
if(data!=null){
try {
Runtime.getRuntime().exec(data);
} catch (IOException e) {
e.printStackTrace();
}
}
//System.out.println(send.getWarnCmd());
System.out.println(send.getDataCmd());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -