1.
???
?
最近碰到這樣一個問題:項目使用到了報表,上線后,客戶投訴報表經(jīng)常每隔一段時間,就不能用了。后來我們發(fā)現(xiàn)只要將
Tomcat
重新啟動下就沒有問題了,應(yīng)該是那個報表工具的性能不是很穩(wěn)定造成的,大概每隔一個星期需要重啟一次。
當(dāng)然不能每次出問題就人工去重啟,這樣對客戶、對我們來說都是不能長期接受的,所以這個問題得解決。
首先,將報表輸出單獨作為一個小的工程拿出來,這樣即使報表出問題了,可以登陸到
Tomcat
的后臺管理程序中,去只對這個報表工程重新
reload
一下,而不需要對整個項目重新啟動,這樣就可以減少對客戶正常工作的影響
這樣看似已經(jīng)解決了問題,但是肯定還是要被客戶投訴,因為我們不可能每天盯著報表工程,肯定是客戶先來發(fā)現(xiàn)報表出問題,然后找我們,長期下去也不行。
接著,我們想,怎樣寫一個腳本,讓
Tomcat
每天晚上(客戶睡覺時,嘿嘿),去自動重啟這個報表工程,于是查看
Tomcat
的管理文檔,在
5)Manager
這部分的最下面,找到了解決問題的方案:
-
寫一個可以重新啟動報表工程的腳本
<?xml version="1.0" encoding="UTF-8"?>
<project
name=
"Gentle Application"
default=
"reload"
basedir=
"."
>
???
<!--
需要管理的
Web
工程名
-->
???
<property
name=
"path"
value=
"/EuropeReport"
/>
???
<!-- Tomcat
管理控制臺的
URL -->
???
<property
name=
"url"
value=
"http://localhost:8088/manager"
/>
???
<!-- tomcat
管理員的用戶名、密碼
-->
???
<property
name=
"username"
value=
"admin"
/>
???
<property
name=
"password"
value=
"adminadmin"
/>
???
<!-- Configure the custom Ant tasks for the Manager application -->
???
<
taskdef
name=
"deploy"
classname=
"org.apache.catalina.ant.DeployTask"
/>
???
<
taskdef
name=
"list"
classname=
"org.apache.catalina.ant.ListTask"
/>
???
<
taskdef
name=
"reload"
classname=
"org.apache.catalina.ant.ReloadTask"
/>
???
<
taskdef
name=
"resources"
classname=
"org.apache.catalina.ant.ResourcesTask"
/>
???
<
taskdef
name=
"roles"
classname=
"org.apache.catalina.ant.RolesTask"
/>
???
<
taskdef
name=
"start"
classname=
"org.apache.catalina.ant.StartTask"
/>
???
<
taskdef
name=
"stop"
classname=
"org.apache.catalina.ant.StopTask"
/>
???
<
taskdef
name=
"undeploy"
classname=
"org.apache.catalina.ant.UndeployTask"
/>
???
<!--
停止
EuropeReport
工程
-->
???
<target
name=
"stop"
description=
"stop web application"
>
??????
<stop
url=
"${url}"
username=
"${username}"
password=
"${password}"
path=
"${path}"
/>
???
</target>
???
<!--
啟動
EuropeReport
工程
-->
???
<target
name=
"start"
description=
"stop web application"
>
??????
<start
url=
"${url}"
username=
"${username}"
password=
"${password}"
path=
"${path}"
/>
???
</target>
???
<!--
重新啟動
EuropeReport
工程
-->
???
<target
name=
"reload"
description=
"Reload web application"
>
??????
<reload
url=
"${url}"
username=
"${username}"
password=
"${password}"
path=
"${path}"
/>
???
</target>
???
<!--
卸載
EuropeReport
工程
-->
???
<target
name=
"undeploy"
description=
"Remove web application"
>
??????
<undeploy
url=
"${url}"
username=
"${username}"
password=
"${password}"
path=
"${path}"
/>
???
</target>
</projec
|
注:需要將
%TOMCAT_HOME%\lib\catalina-ant.jar
,拷貝到
%ANT_HOME%\lib
目錄下
-
編寫一個
bat
腳本,去執(zhí)行
ant
,
ant
?
reload
-
并將這個
bat
腳本放到
windows
的執(zhí)行計劃中,每天定時執(zhí)行該腳本。嘿嘿,解決了,不用再被客戶投訴了。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
