博文

目前显示的是 十二月, 2011的博文

C#编程处女行

这几天被Tomcat频繁的报告数据库异常、数据库处于不一致状态、违反协议搞得焦头烂额。 查阅遍了网上的相关资料,没有找到一个真正解决了问题的。而且诡异的是,这个问题是不时的出现的。而且哪怕是系统正在报告数据库异常,同样连接到同一台数据库服务器的本地测试服务则可以很正常的运行,让我对这种状况感到彻底无语了。好在这个异常虽然让整个系统陷入瘫痪,但是只需要重启Tomcat就可以恢复正常了。但是现在面临的难题是:客户也着重要求加强系统的稳定性了,为此专门找我谈话。所以,无论最后如何从根本上解决,起码我现在所需要做的是要先把表面工作做好。 于是最简单的办法就是写守护程序了。检查到数据库报错就马上重启Tomcat,本来像写一个服务,不过后来发现如果写Windows服务的话太难以测试了。于是只能退而求其次,写个控制台运用程序让它一直运行着就行了。 思路很简单:应用程序一打开,就开始不断的访问本机的HTTP地址,如果检查到页面报告异常,就重启Tomcat,如果没有异常,就过5分钟再检查一次。 因为是C#写作,不得不说操作Windows进程之类的应该很简单了,最终程序如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; namespace RestartTomcat { class Program { static void RebootTomcat() { System.Diagnostics.Process.Start("net", " stop \"Tomcat5\"");//关闭Tomcat进程 System.Threading.Thread.Sleep(10000);//休息10秒钟 System.Diagnostics.Process.Start("net", " start \"Tomcat5\"");