GalaxyPilot —— D.S


        生命不熄,战斗不止
数据加载中……

自动重启JBOSS服务器

      开发的应用在测试过程中发生了java.lang.OutOfMemoryError 错误,一时找不到问题所在,只能先写个脚本,当该脚本检测到jboss服务挡掉时,就自动重启jboss服务器。脚本中用到了pstools中的pskill,网上可以下载到,把这个脚本和pskill一起放到jboss的bin目录下即可。只pskill java后,运行bat的cmd窗口并没有关掉,本人也没有找到在脚本中得到cmd窗口ID的方法,用WshShell.Exec也有一些问题,所以只能再pskill cmd,这样可能会影响您的其它工作,可以根据您的情况做一些修改。而且脚本只能通过wscript.exe来运行,也就是不让出现cmd窗口,不然会一起被kill掉,这样就达不到自动重启的目的。
      另一个问题是当出现java.lang.OutOfMemoryError错误时,jboss服务器好像并不是完全挡掉,一些不访问数据库的jsp页面一样可以访问,所以ping.jsp最好是一个访问了数据库的文件。当然,脚本中循环访问该页面,肯定会加重web服务器和数据库服务器的负担,所以,循环的速度要根据您的具体情况做适当的调整。该脚本不至是针对jboss服务器和java.lang.OutOfMemoryError,作很少的修改,您可以应用到其它服务器和检查特定的web服务器出现的问题,然后做相应的处理。

------------------------restart.vbs------------------------
on error resume next
Dim a
a=true
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("run.bat")
WScript.Sleep(60000)
Do While a
   set http = CreateObject("Microsoft.XMLHTTP")
   http.open "POST","http://127.0.0.1:8080/gtgdh/ping.jsp",false
   http.send
   if http.Status > 300 then
      WshShell.Run("pskill java")
      WScript.Sleep(3000)
      WshShell.Run("pskill cmd")
      WshShell.Run("run.bat")
      WScript.Sleep(60000)
   end if
   WScript.Sleep(5000)
loop

posted on 2006-04-18 10:19 舵手 阅读(5076) 评论(6)  编辑  收藏

评论

# re: 自动重启JBOSS服务器  回复  更多评论   

呵呵,我安装时把Tomcat装成系统服务了,把楼主发给我的代码修改如下:
------------------------restart.vbs------------------------
on error resume Next

Dim a
a = True

set WshShell = WScript.CreateObject("WScript.Shell")

Do While a
set http = CreateObject("Microsoft.XMLHTTP")
http.open "POST","http://127.0.0.1:8080/index.jsp",false
http.send
if http.Status > 300 then
WshShell.Run("net stop tomcat5")
WScript.Sleep(90000)
WshShell.Run("net start tomcat5")
end if
WScript.Sleep(30000)
loop
2006-05-11 17:54 | Netboy

# re: 自动重启JBOSS服务器  回复  更多评论   

http.open "POST","http://127.0.0.1:8080/index.jsp",false
2009-01-04 12:22 | 张慧华

# re: 自动重启JBOSS服务器  回复  更多评论   

没有必要去访问这个页面http://127.0.0.1:8080/index.jsp.
周期性访问index.jsp,加重web服务器和数据库服务器的负担.
自己创建一个很简单的测试页面比较好.
2009-01-04 12:27 | 张慧华

# re: 自动重启JBOSS服务器  回复  更多评论   

楼上的朋友看错了,
我的代码里是
http.open "POST","http://127.0.0.1:8080/gtgdh/ping.jsp",false
ping.jsp就是简单的测试页面。
2009-01-04 21:27 | 舵手 QQ:8117892

# re: 自动重启JBOSS服务器  回复  更多评论   

如果服务器是Linux的,shell 脚本好像不能发http请求。
我想重启脚本只能用C或Java等去写了。
不知各位有没有更好的方法。
2009-03-06 16:18 | 张慧华

# re: 自动重启JBOSS服务器  回复  更多评论   

(web server软件)UFO不会出现一个字节的内存泄漏和一个线程的不能回收,使用UFO做Web Server的好处是网站能做得很稳定,永远也不会自己down掉;UFO在托管机房丢包率很高、遭受Hacker攻击、互联网 骨干网被黑等恶劣的环境条件下仍然能很好地运行;UFO在对付Hacker方面(防Hacker弄down和Hacker抓取不该访问的资源)也有足够措施。
另外,UFO几乎不会进行垃圾回收,消耗CPU很少,在普通的PC Server上用UFO运行网站,平时CPU占用率<0.1%,最多时也不会超 过5%。您知道,JVM的垃圾回收会导致大量的运算,消耗很多CPU,从而导致Server的负载能力和响应速度下降。UFO在对象管理方面采 用了很好的机制和算法,做得很出色。用UFO运行网站,可以一直保证高负载能力,快速的响应速度和低CPU消耗。发布网址:www.gm365.com
2009-06-22 10:29 | ufo

只有注册用户登录后才能发表评论。


网站导航: