文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» 存储备份 » RoseHA 自定义配置       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] RoseHA 自定义配置  ( 查看:198  回复:0 )   
 
wshudong
新新人类  点击可查看详细



帖子 8
精华 0
无忧币 0
积分 23
阅读权限 20
注册日期 2006-12-3
最后登录 2008-7-3 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-6-24 12:41   标题:RoseHA 自定义配置
上一帖 |
RoseHA 自定义配置
在 RoseHA图形界面内格式如下:
Start Executable: haagent-start c:\test\text.txt

Stop Executable: haagent-stop c:\test\text.txt

Agent: haagent-monc:\test\text.txt
编写txt脚本需要用到这几个命令
Start:运行执行程序后,在StartTimeOut时间后由RoseHA杀掉

Agent:运行执行程序后,RoseHA开始监控此程序

Agentless:运行执行程序后,RoseHA不监控此程序

StartTimeOut:启动程序超时时间值

Stop:运行执行程序后,在StopTimeOut时间后由RoseHA杀掉

StopTimeOut:停止程序超时时间值
例如c:\my_bin\test.txt  test.txt内容为
Start:c:\winnt\system32\calc.exe
Agent:c:\winnt\system32\clock.exe
Agentless:c:\winnt\regedit
Stop:c:\winnt\system32\notepad.exe
StartTimeOut:5000
StopTimeOut:5000

在Start Executable栏中输入
“haagent -start c:\my_bin\test.txt”
在Stop Executable栏中输入
“haagent -stop c:\my_bin\test.txt”
在Agent栏中输入
“haagent -mon c:\my_bin\test.txt”

将会有如下结果:

当启动自定义服务时,RoseHA所做动作:
启动 calc.exe,过5秒后终止该程序
启动 clock.exe, RoseHA将去监控clock进程
启动 regedit.exe, RoseHA不关心它的状态,任其自生自灭

当停止自定义服务时,RoseHA所做动作:
执行notepad.exe,过5秒后终止该程序
停止 clock.exe 程序
停止 regedit.exe 程序

在Start Executable、Stop Executable、Agent三项中填入如下格式的命令, 其中:
Start Executable: c:\haapi\start.bat
Stop Executable: c:\haapi\stop.bat
Agent: c:\haapi\haag.exe
特别提醒注意:在Agent编辑框中填写的Agent程序存放的目录名中如有“空格”字符,应该将Agent编辑框中的填写的内容加双引号括起来,例如:
Agent: ”c:\program files\NT cluster\agent.exe”
Start.bat 文件内容:启动clock时钟程序
start /B clock
使用参数“/B”,目的是使程序在后台运行。
stop.bat 文件内容:杀掉 时钟程序和agent 程序,注意有时可能每个语句需要执行两次,也就是说在stop.bat文件中将同一个kill 语句写两遍,“-f”参数是强制杀进程。
kill -f clock
kill -f clock
haag.exe 用户自己编写的监控程序,这里的例子是检测clock进程是否存在。
#include
#include
#include "haapi.h"
#define PROCESS "CLOCK.EXE"
int ExistProcess(char *szName)
{
char bf[256];
FILE *fp;
sprintf(bf,"ps | grep %s",szName);
fp=_popen(bf,"r");
if(fp==NULL)return -1;
bf[0]=0;
fgets(bf,sizeof(bf),fp);
_pclose(fp);
return bf[0]!=0;
}
void main(int argc,char *argv[])
{
int nRet;
char szResource[128];
unsigned int uTime;
if(argc!=3)
{
printf("Usage: haag.exe ResoureName TimeOut");
exit(1);
}
sprintf(szResource,argv[1]);
uTime=atol(argv[2]);
//Open the resource
ApiOpen(szResource);
while(1)
{
nRet=ExistProcess(PROCESS);
if(nRet==1)
ApiOk(szResource);
else
ApiError(szResource);
_sleep(uTime/3+1000);
}
//Close the resource
ApiClose(szResource);
exit(0);
}

在实际配置过程中,用户可以自己的应用放在启动脚本中,停止的时候可以使用系统的kill程序将自己的程序停止,或自己有退出应用的方法,也可以在停止脚本中使用,而Agent程序需要特别注意一个参数:Agent Timeout,此参数缺省为0,表示HA会查这个Agent的
进程,当此进程在,HA认为服务正常,当此进程不在,HA认为服务异常,就会发生切换;而当此值为非0的正值时,HA需要该Agent程序报告检测应用的状况,也就是上面c++例子编写的情况,它需要调用HA的API接口函数来向HA报告检测情况。



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-6-24 12:411楼
[ 顶部 ]
     
论坛跳转:  

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号