Pracuję nad problemem, w którym wyjątek występuje tylko w naszym środowisku produkcyjnym. Nie mam dostępu do tych środowisk ani nie wiem, co oznacza ten wyjątek. Patrząc na opis błędu, nie jestem w stanie zrozumieć przyczyny.
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
Czy ktoś mógłby mi doradzić, jak podejść do tego rodzaju problemu?
exceptions
C4CodeE4Exe
źródło
źródło
Odpowiedzi:
Ogólnie rzecz biorąc, lepsze rejestrowanie debugowania. Zastanów się, co chcesz wiedzieć, dodaj go do kodu i umieść w dziennikach, abyś mógł to wypracować. Przechwytywanie większej liczby szczegółów otoczenia w tym czasie również pomaga - jakie żądanie, kiedy itp.
Konkretnie, szukałbym wspólnego wzorca u klientów, który go dotknął - a jeśli znalazłeś jeden optymalizujący - ale następnie przechwyciłem ruch w warstwie TCP.
Przejrzenie wymienianych wiadomości SSL powinno dać ci pojęcie, co dzieje się źle w protokole, a przynajmniej jakie są wspólne właściwości żądania. Gdy już to zrobisz, powinno być bliżej debugowania.
Przypuszczam, że wynika to z jednej z trzech rzeczy:
źródło
Zalecam użycie strategii rejestrowania z konfigurowalnym maksymalnym poziomem dziennika. Narzędzie takie jak log4j ( http://logging.apache.org/log4j/ , http://en.wikipedia.org/wiki/Log4j ) może to zrobić.
Konfigurowalny poziom dziennika (lub gadatliwość) jest ważny, aby móc znaleźć przyczynę błędu, być może bez konieczności ponownego instalowania oprogramowania.
Jeśli taka strategia nie wystarczy, aby znaleźć błąd, spróbuj znaleźć sposób tworzenia / odczytywania dzienników tworzonych przez aplikacje, z którymi się komunikujesz.
Możesz także wdrożyć jakiś mechanizm, aby automatycznie otrzymywać więcej informacji o błędach przez e-mail.
Mówiąc bardziej ogólnie, możesz przeczytać kilka artykułów na temat oprzyrządowania, które jest większym tematem obejmującym rejestrowanie i śledzenie.
źródło