2024/06 3

[APM/제니퍼,스카우터 등] Class Redefine 으로 인한 장애현상

1. 개요JAVA 기반 JVM 환경을 모니터링하기 위해 APM (Scouter, Whatab, Jennifer, Openmaru) 등을 고객사에서 운영하고 있었습니다.그러나 서비스 중 HotDeploy, HotSwap을 주력으로 사용하는 상용 솔루션(티xx) 플랫폼에서 다음과 같은 이슈가 발생했습니다:상용 솔루션 프레임워크: Classes 및 하위 Library Jar 전체 포함고객사 개발자들이 생산한 Business BackEnd Source그 외 솔루션 연계 라이브러리이로 인해 Class의 수가 10만 개 이상으로 추정됩니다.2. 원인APM은 Java 소스를 분석하기 위해 로드와 동시에 전체 Class를 스캔합니다. 하지만 운영 중 HotSwap, HotDeploy를 수행할 경우 Java Agent는..

[톰캣/AJP] X-Requested-With 헤더 상이한 현상

1. 개요X-Requested-With 값과 Ajax 호출 여부 판단"X-Requested-With" 헤더는 보편적으로 Ajax 요청인지 여부를 판단하기 위해 사용됩니다. 이 헤더의 값이 "XMLHttpRequest"인 경우, 서버는 해당 요청이 Ajax를 통해 전송되었음을 알 수 있습니다.그러나 Native Tomcat HTTP 환경과 AJP 프로토콜을 사용하는 Apache Web Server와 Apache Tomcat의 연동을 통해 동적 및 정적 리소스를 분리하는 환경에서는 이 헤더의 처리 방식에서 이상 현상이 발생할 수 있습니다. 예를 들어, AJP 프로토콜을 사용하는 환경에서는 "X-Requested-With" 헤더 값이 예상과 다르게 처리될 수 있습니다.헤더 값 비교의 일관성"X-Requeste..

[오라클/Oracle] RecoverableException 리눅스 Random vs URandom 차이

1. 개요Oracle DB에서 SQL 실행 중 "Recoverable Exception"이 발생하는 경우가 있습니다. 이 오류는 주로 "시스템 Noise" 문제로 발생하며, 이는 운영 체제(OS)가 바쁜 상태에서 필요한 난수를 충분히 빠르게 생성하지 못할 때 발생할 수 있습니다. 특히, /dev/random 디바이스는 높은 품질의 엔트로피(entropy) 생성이 요구되는 경우 사용되는데, 이때 OS의 바쁜 상태로 인해 난수 생성이 지연되면 Oracle SQL이 데이터를 암호화하지 못하고 실패하는 현상이 발생합니다.이 문제를 해결하기 위해 일반적으로 다음과 같은 방법을 사용합니다:2. 내용Recoverable Exception 문제의 원인Oracle DB에서 SQL 실행 시, 난수 생성이 필요한 암호화 작..