ITCrowd

7 Сен
2011

Avaya Voice Portal Application Server


Давным давно, у нас было Voice Portal приложение которое использует database socket и этот socket отрубался по тайм ауту когда не поступали звонки на VP, т.е. по выходным.
DB сервер думал, что VP Application Server вырубился и сбрасывал socket. Следующий раз когда приходил вызов, VP пытался послать запрос с данными в socket, обнаруживал его закрытым и выбрасывал exception.

Если вы столкнулись с похожей ситуацией, вот кусочек мудрости для вас:
Подумайте о добавлении следующего параметра в context файл приложения Tomcat-а по адресу conf/catalina/localhost.
testOnBorrow=”true”
validationQuery=”select 1 from AnyTable*”

Это поможет пулу соединений Tomcat-а переподключатся к базе автоматически без перезапуска сервера приложений.
К примеру:
<Resource auth=”Container” dataSourceName=”java:/comp/env/jdbc/AccessDBCPDS” factory=”org.apache.tomcat.dbcp.dbcp.datasources.PerUserPoolDataSourceFactory” logAbandoned=”true” maxActive=”10″ maxIdle=”5″ maxWait=”10000″ removeAbandoned=”true” removeAbandonedTimeout=”300″ testOnBorrow=”true” type=”org.apache.tomcat.dbcp.dbcp.datasources.PerUserPoolDataSource” validationQuery=”select 1 from Users”/>

*на месте AnyTable должно быть имя реально существующей таблицы в базе.
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх