Tomcat服务监控管理工具,利用delphi编写

来源:互联网 发布:企业办公软件oa 编辑:程序博客网 时间:2024/06/08 17:08

公司的一个wap网站使用tomact服务,但最近运行总是崩溃,有时候会在半夜,解决起来实在麻烦,所以捡起以前的delphi,写了个工具。其中思路是:

网站里写了一个jsp网页,啥也不做,用来被检测网站是否正常。使用idhttp访问,根据返回码来判断网站是否正常。不正常则重启。

故有以下几个关键:

jsp网页:

code

-------------------------------------------------------------------------

<%
String S="Rany.ok";
out.println(S.length());
%>

-------------------------------------------------------------------------

 

建立delphi工程,放一个timer检测。

 

---------------------函数-检测是否网站状态正常----------------------------------

function gethttptrue(ihttp: string):Boolean;
begin
  try
    idhtpwap.Get(ihttp);
    if not (idhtpwap.ResponseCode > 299) then
      Result:= True;
  except
    Result:= False;
  end;
end;

--------------------------------------------------------------------

 

procedure TFrmMain.tmrChildTimer(Sender: TObject);
var
  iHandlewin: THandle;
begin
  try
    RzTrayIconry.Icons:= ilDo;
    tmrChild.Enabled:= False;
    DelayTime(2000);
    if not (gethttptrue(SetIniFile.ReadString('Setinfo','wap',''))) then
    begin
      //关键代码

      SetCurrentDir(ExtractFilePath(Trim(edtPath.Text))); //设置默认tomcat路径
      ShellExecute(0,PChar('open'),PChar(Trim(edtPath.Text)),'run',nil,SW_SHOWNORMAL);  //注意一定要带“run”参数

      DelayTime(2000);
      //获取开启程序句柄以便判断是否成功重启
      iHandlewin:= FindWindow(nil,'Tomcat'); 
      if iHandlewin>0 then
      begin
        //记录日志写入logWrite();
        DataModuleUnit.Sendmsg(SetIniFile.ReadString('Smsdata','spname',''),SetIniFile.ReadString('Smsdata','phonelist',''),'1');
        WriteLog(IntToCDate(GetDate)+' '+inttotime(GetTime)+'启动【'+Trim(edtPath.Text)+'】成功;  Write By Ranyang.');
      end
      else
      begin
        //开启失败,记录日志写入logWrite();
        WriteLog(IntToCDate(GetDate)+' '+inttotime(GetTime)+'启动【'+Trim(edtPath.Text)+'】失败;  Write By Ranyang.');
        DataModuleUnit.Sendmsg(SetIniFile.ReadString('Smsdata','spname',''),SetIniFile.ReadString('Smsdata','phonelist',''),'0');
      end;
    end;
    //再次启动子监控,
    tmrChild.Enabled:= True;
  except
    on E: Exception do
    begin
      RzTrayIconry.Icons:= ilError;
      //开启失败,记录日志写入logWrite(E.Message);
      WriteLog(IntToCDate(GetDate)+' '+inttotime(GetTime)+'启动【'+Trim(edtPath.Text)+'】失败,Error:'+E.Message+';  Write By Ranyang.');
      //再次启动子监控,
      tmrChild.Enabled:= True;
      Application.Minimize;
    end;
  end;
end;
----------------------------------------------------------------------------

无关代码可以忽略。。。。。。。。。。
0 0
原创粉丝点击