Estoy trabajando en un problema donde la excepción solo ocurre en nuestro entorno de producción. No tengo acceso a estos entornos, ni sé qué significa esta excepción. Mirando la descripción del error, no puedo entender la causa.
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
¿Podría alguien aconsejarme sobre cómo abordar este tipo de problema?
exceptions
C4CodeE4Exe
fuente
fuente
Respuestas:
En general, mejor registro de depuración. Averigua lo que quieres saber, agrégalo al código y tenlo en los registros para que puedas resolverlo. Capturar más detalles del entorno en ese momento también ayuda: qué solicitud, cuándo, etc.
Específicamente, buscaría un patrón común en los clientes que golpean esto, y si encuentra uno, optimice, pero luego vaya y capture el tráfico de la capa TCP.
Mirar los mensajes SSL intercambiados debería darle una idea de lo que está mal en el protocolo, o al menos cuáles son las propiedades comunes de la solicitud. Una vez que tenga eso, debería estar más cerca de ser depurado.
Como guía, supongo que esto proviene de una de tres cosas:
fuente
Recomendaría usar una estrategia de registro con un nivel de registro máximo configurable. Una utilidad como log4j ( http://logging.apache.org/log4j/ , http://en.wikipedia.org/wiki/Log4j ) podría hacer el trabajo.
El nivel de registro configurable (o verbosidad) es importante para poder encontrar la razón de un error, posiblemente sin tener que volver a implementar su software.
Si dicha estrategia no es suficiente para encontrar el error, intente encontrar cómo producir / leer los registros producidos por las aplicaciones con las que se está comunicando el suyo.
También puede implementar algún mecanismo para obtener automáticamente más información sobre errores por correo electrónico.
En términos más generales, puede leer algunos artículos sobre instrumentación, que es un tema más amplio que incluye el registro y el seguimiento.
fuente