Le seguenti potrebbero essere le possibilità che potrebbero causare l'eccezione:
-
Problema di rete:è la rete tra il database e il server delle applicazioni che causa l'interruzione della connessione fisica dopo un periodo di tempo. Probabilmente è dovuto a un firewall in esecuzione dietro la rete che è configurato per interrompere le connessioni db dopo un periodo di tempo specificato. È possibile prendere in considerazione una soluzione alternativa per mantenere la connessione sempre attiva semplicemente riconfigurando il server delle applicazioni. Per Tomcat, puoi provare ad aggiungere
validationQuery="select 'validationQuery' from dua
l nel file di configurazione dell'origine dati Tomcat (context.xml) -
Le connessioni al server del database vengono reimpostate e il client non viene informato dal driver del database. Il problema in questo caso è che il driver Oracle sta scoprendo che il suo socket sul DBMS in qualche modo (di nuovo il firewall, forse?) è stato chiuso dall'altra parte. Potresti considerare l'impostazione del timeout di connessione (nel pool) più breve del timeout del server di rete/DB come soluzione.