Възможностите, които могат да причинят изключението, са следните:
-
Мрежов проблем:Това е мрежата между базата данни и сървъра на приложения, която причинява прекъсване на физическата връзка след определен период от време. Вероятно се дължи на защитна стена, работеща зад мрежата, която е конфигурирана да убива db връзки след определен период от време. Може да помислите за заобиколно решение, за да поддържате връзката жива през цялото време, просто като преконфигурирате вашия сървър за приложения. За Tomcat можете да опитате да добавите
validationQuery="select 'validationQuery' from dua
l в conf файла на източника на данни Tomcat (context.xml) -
Връзките към сървъра на базата данни се нулират и клиентът не е уведомен от драйвера на базата данни. Проблемът в този случай е, че драйверът на Oracle открива, че неговият сокет към СУБД по някакъв начин (отново защитна стена, може би?) е затворен от другия край. Може да обмислите като решение да зададете времето за изчакване на вашата връзка (в пула) по-кратко от времето за изчакване на мрежата/DB сървъра.