tomcat端口衝突導致VCS切換失敗

問題描述:

SUSE10SP2+VCS4.1MP4,VCS雙機部署了VSM tomcat業務。雙機和業務均運行正常的,業務在主機A運行。近期因測試業務進行雙機倒換,發現備機B 始終無法正常接管tomcat 服務資源,VCS切換失敗。使用hastart手工先啓動備機B,tomcat 服務同樣無法啓動,而在A機上tomcat則可以正常拉起。
檢查VCS日誌有報錯:
 2011/10/21 15:27:26 VCS INFO V-16-6-15004 (urp1vsmdb1) hatrigger:Failed to send trigger for resfault; script doesn't exist
2011/10/21 15:27:27 VCS INFO V-16-1-10305 Resource Tomcatip (Owner: unknown, Group: Tomcat) is offline on urp1vsmdb1 (VCS initiated)
2011/10/21 15:27:27 VCS ERROR V-16-1-10205 Group Tomcat is faulted on system urp1vsmdb1
 
原因分析:
1首先檢查雙機配置,兩臺服務器的main.cf雙機都是完全一致的,使用hacf -verify config 校驗也爲正常。
2,考慮到VCS雙機原來一直運行正常,配置也未做任何改動,而每次啓動都是B機tomcat服務無法拉起,故着重從B機tomcat檢查入手。
3,不啓用VCS雙機,用VSM video用戶登陸B機,直接使用tomcat/bin /startup.shstar.sh腳本啓動tomcat服務,發現同樣無法拉起;
 4、考慮到近期剛在B機上新安裝了1套MSP,由於2套服務都是tomcat,懷疑是tomcat http訪問端口衝突,檢查tomcat/conf/server.xml配置文件,相關端口是已經修改過的,語音短信服務端口爲11088,MSP服務端口爲8080兩者並不衝突;
 <Service
      name="Catalina">
    <Connector
        port="8080"
 
5、使用Tail –f catalina.out跟蹤B機日誌,發現當語音短信tomcat 啓動時報8009和8005端口被佔用:
INFO: Port busy 8009 java.net.BindException: Address already in use
Oct 25, 2011 6:05:33 PM org.apache.catalina.core.StandardServer await
SEVERE: StandardServer.await: create[8005]:
java.net.BindException: Address already in use
使用netstat –an命令檢查,果然發現2個端口都已被佔用
urp1vsmdb1:~ # netstat -an | grep 8009
tcp        0      0 :::8009                 :::*                    LISTEN   
urp1vsmdb1:~ # netstat -an | grep 8005
tcp        0      0 :::8005                 :::*                    LISTEN 
 
將MSP的tomcat服務關閉後,再次使用netstat –an|命令驗證,發現相應端口已關閉。此時再次啓動B機tomcat可正常啓動。問題明瞭,安裝MSP後相關服務端口未修改完整而導致雙機切換失敗。
 
問題處理:
使用語音短信業務video用戶登錄B機,修改tomcat/conf目錄下的server.xml文件相應端口,避免和MSP端口調用衝突,需修改如下三個地方:
(1)      修改http訪問端口,該端口默認爲8080,爲訪問web服務器端口,將8080修改爲11088。
 
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector port="11088" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="UTF-8"/>
(2)    修改AJP端口:該端口默認爲8009,將其修改爲8090,爲AJP服務使用
 <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8090"
               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
(3)    修改shutdown 端口,該端口默認爲8005,將其修改爲8050,爲關閉tomcat服務使用
<Server port="8050" shutdown="SHUTDOWN">
 
 
修改完成後重啓服務,進行業務驗證,雙機和MSP均工作正常
 
總結:
一臺服務器如果要想啓動多套tomcat服務,相關配置文件的基本服務端口要修改完整,避免端口衝突而導致服務異常。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章