Dziwne. Kilka pomysłów:
-
Zaloguj nazwę użytkownika i hasło przez kilka dni, aby upewnić się, że są poprawne. Niektóre błędy w kodzie mogą nadpisać nieoczekiwaną wartość.
-
Rozważ użycie JNDI z pulą połączeń udostępnioną przez Tomcat. DBCP ma kilka naprawdę zaawansowanych opcji sprawdzania, czy połączenie jest nadal aktywne i jak je ponownie połączyć. Po tym nie powinieneś już widzieć żadnych problemów związanych z połączeniem w swoich dziennikach. Poprawiłoby to również bezpieczeństwo, ponieważ żadna z aplikacji nie musi już znać hasła do bazy danych.
-
Może to być problem z wyciekami zasobów (zdarza się, jeśli aplikacja nigdy nie zwraca połączenia), ale spodziewałbym się wtedy innego komunikatu o błędzie.
-
Niektóre bazy danych (DB2, H2) umożliwiają tworzenie widoków, dzięki którym zdalne tabele z innych baz danych są widoczne jak tabele lokalne. Nie jestem pewien, czy Oracle to obsługuje, ale jeśli tak, to może nazwa użytkownika/hasło do tej zdalnej tabeli jest niepoprawne.
Weź również pod uwagę punkty w tym poście na blogu:Wskazówki dotyczące Oracle ORA-01017
Na pierwszy rzut oka nic w poście nie może powodować problemów, ale być może jakiś skrypt manipuluje tnsnames.ora
(na przykład dystrybucja nowej kopii).
Lub administrator danych wyłączył wszystkich użytkowników na czas wykonywania codziennej kopii zapasowej.