我是靠谱客的博主 成就酒窝,最近开发中收集的这篇文章主要介绍java 宕机监控_JAVA实现监测tomcat是否宕机及控制重启的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本文实例讲述了JAVA实现监测tomcat是否宕机及控制重启的方法。分享给大家供大家参考。具体如下:

Detector.java:

import java.net.URL;

import java.net.URLConnection;

import java.util.Date;

/**

*

* @author james

*

*/

public class Detector {

private static void keepTomcatAlive() throws NullPointerException {

String s;

String t = new String("tomcat6");

boolean isTomcatAlive = false;

java.io.BufferedReader in;

System.setProperty("sun.net.client.defaultConnectTimeout", "8000");

System.setProperty("sun.net.client.defaultReadTimeout", "10000");

try {

URL url = new URL("http://localhost:8080/test.jsp");

URLConnection con = url.openConnection();

in = new java.io.BufferedReader(new java.io.InputStreamReader(con.getInputStream()));

con.setConnectTimeout(1000);

con.setReadTimeout(4000);

while ((s = in.readLine()) != null) {

if (s.length() > 0) {

//accessed page successful.

return;

}

}

in.close();

} catch (Exception ex) {

//ex.printStackTrace();

}

try {

java.lang.Process p = java.lang.Runtime.getRuntime().exec("ps -aux");

in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));

while ((s = in.readLine()) != null) {

if (s.startsWith(t)) {

isTomcatAlive = true;

break;

}

}

in.close();

}catch (Exception e) {

e.printStackTrace();

}

if (isTomcatAlive) {

System.out.println(" Tomcat is alive but not response!");

stopTomcat();

}

startTomcat();

}

public static void stopTomcat() {

try {

java.lang.Process p = java.lang.Runtime.getRuntime().exec("/etc/init.d/tomcat6 stop");

java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));

String s;

String t = "Stopping";

boolean restart = false;

while ((s = in.readLine()) != null) {

if (s.indexOf(t) != -1) {

restart = true;

break;

}

}

System.out.println(" Tomcat is stop " + (restart ? "OK" : "ERROR"));

} catch (Exception e) {

e.printStackTrace();

}

}

public static void startTomcat() {

try {

java.lang.Process p = java.lang.Runtime.getRuntime().exec("/etc/init.d/tomcat6 start");

java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(p.getInputStream()));

String s;

String t = "Starting";

boolean restart = false;

while ((s = in.readLine()) != null) {

if (s.indexOf(t) != -1) {

restart = true;

break;

}

}

System.out.println(" Tomcat is start " + (restart ? "OK" : "ERROR"));

} catch (Exception e) {

e.printStackTrace();

}

}

private static void debug(String msg){

System.out.println("Debug::: "+msg);

}

public static void main(String[] args) {

while (true) {

try {

debug("Detect agin ");

Detector.keepTomcatAlive();

debug("Sleep...");

Thread.sleep(30000);

} catch (Exception ex) {

ex.printStackTrace();

}

}

}

}

希望本文所述对大家的java程序设计有所帮助。

最后

以上就是成就酒窝为你收集整理的java 宕机监控_JAVA实现监测tomcat是否宕机及控制重启的方法的全部内容,希望文章能够帮你解决java 宕机监控_JAVA实现监测tomcat是否宕机及控制重启的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部