由于種種原因,resin有時(shí)會(huì )遇到resin down機的情況,比如:java.lang.OutOfMemoryError。這樣的問(wèn)題如果從代碼角度來(lái)解決問(wèn)題,也不是一時(shí)半會(huì )能解決的,應急解決方案是啟用resin-pro的ping功能。
<resin:if test=”${isResinProfessional}”>
<ping>
<url>http://localhost:8080/ping.jsp</url>
<sleep-time>1m</sleep-time>
<try-count>5</try-count>
<socket-timeout>30s</socket-timeout>
</ping>
</resin:if>
ping.jsp可隨意寫(xiě)一些代碼,純html代碼也行,只能服務(wù)器能響應返回200。
如果訪(fǎng)問(wèn)resin訪(fǎng)問(wèn)http://localhost:8080/ping.jsp返回不是200 code,然后再重試try-count次,如果依然不響應200,則將自動(dòng)重啟resin服務(wù)。
如果在resin tag下配置了:
<system-property mail.smtp.host=”127.0.0.1″/>
<system-property mail.smtp.port=”25″/>
還可以讓resin自動(dòng)給你發(fā)個(gè)郵件通知你它自動(dòng)重啟過(guò)了:
<ping resin:type=”com.caucho.server.admin.PingMailer”>
<url>http://localhost:8080/ping.jsp</url>
<mail-to>fred@hogwarts.com</mail-to>
<mail-from>resin@hogwarts.com</mail-from>
<mail-subject>Resin ping has failed for server ${’${’}server.name}</mail-subject>
</ping>
這樣配置好了,不管resin出現什么故障,只要resin進(jìn)程不死,就可以放心睡大覺(jué)了。
如果還啟用了resin的session持久化存儲,用戶(hù)基本感覺(jué)不到服務(wù)已經(jīng)重啟過(guò)了。
當然,這個(gè)功能是resin-pro版提供的,免費版不支持ping,我已經(jīng)破解了resin-pro版,可放心啟用這些功能。
聯(lián)系客服