倾囊求助:tomcat的监控程序!在线等!
如何写tomcat的监控程序,一旦它有异常自动关闭后,能监控到并再次启动,希望高手帮忙! 问题点数:0、回复次数:8Top
1 楼zhwquan(飞雪)回复于 2004-11-03 20:28:50 得分 0
你写个java程序,过一段时间(比如一秒)就去取本机上的网页,如果取不到就重起Top
2 楼cdcx(西南偏南)回复于 2004-11-03 22:41:14 得分 0
写个socket程序,定时去连接tomcat的监听端口,如果失败就重新启动tomcatTop
3 楼zhwquan(飞雪)回复于 2004-11-03 23:24:25 得分 0
package com.bes.tomcat ;
import java.util.Timer ;
import java.util.TimerTask ;
import java.net.Socket ;
import java.net.* ;
import java.io.* ;
public class Listener
extends TimerTask
{
private int count = 0 ;
private int defaultPort = 8080 ;
public void run ()
{
count ++ ;
log("run times:" + count);
if ( isTomcatRunning () )
{
log ( "Running" ) ;
}
else
{
log ( "Not Running" ) ;
startup();
}
}
public void startup()
{
Runtime runtime = Runtime.getRuntime() ;
Process testProcess = null ;
try
{
testProcess = runtime.exec ( "startup.bat" ) ;
try
{
testProcess.waitFor () ;
}
catch ( InterruptedException ex1 )
{
ex1.printStackTrace();
}
InputStream in = testProcess.getInputStream() ;
byte[] bytes = new byte[in.available()];
in.read(bytes) ;
log(" [ OUTPUT ] "+new String(bytes));
}
catch ( IOException ex )
{
ex.printStackTrace();
}
}
public boolean isTomcatRunning ()
{
return isTomcatRunning ( defaultPort ) ;
}
public boolean isTomcatRunning ( int port )
{
boolean returnBoolean = false ;
Socket socket = null ;
try
{
socket = new Socket ( "localhost" , port ) ;
returnBoolean = true ;
}
catch ( UnknownHostException ex )
{
log ( ex.getMessage () ) ;
returnBoolean = false ;
}
catch ( IOException ex )
{
log ( ex.getMessage () ) ;
returnBoolean = false ;
}
finally
{
if(socket != null)
{
try
{
socket.close () ;
}
catch ( IOException ex1 )
{
log(ex1.getMessage());
}
}
}
return returnBoolean ;
}
private void log ( String message )
{
System.out.println ( "[ TomcatListener ] :" + message ) ;
}
public static void main ( String[] args )
{
Timer timer = new Timer ( false ) ;
// timer.schedule(new Listener(),new Date());
timer.schedule(new Listener(),0,1000 * 5);
}
}Top
4 楼javaoaout(javaoaout)回复于 2004-11-04 09:00:29 得分 0
你写的程序可能不是很准确,在unix下面按照你的程序去处理,就会出现多个tomcat进程同时运行的情况Top
5 楼javaoaout(javaoaout)回复于 2004-11-04 09:01:21 得分 0
应该是先看进程在不在,在就杀进程,然后启动应用,不在就直接启动进程Top
6 楼zhwquan(飞雪)回复于 2004-11-04 09:09:57 得分 0
怎么不准确,tomcat不能有两个或两个以上的进程,因为会端口冲突的
我测试过了在windows下没问题,在linux下作简单修改就可以了Top
7 楼baffling(迷茫困惑中)回复于 2005-03-03 11:31:21 得分 0
gzTop
8 楼hojay2001(小捷利)回复于 2005-03-03 15:54:20 得分 0
UPTop




