반응형
JBoss 장애 사례: MIME 업로드, 라이브러리 중복, 네트워크 연동 오류
이번 글에서는 다음과 같은 실무 장애 사례를 다룹니다:
- 대용량 파일 업로드 시 오류 발생
- 라이브러리 중복으로 인한 ClassLoader 충돌
- Web → WAS 연동 지연 및 잘림
- IP 포워딩 오류 등 네트워크 연계 문제
✅ 1. 대용량 파일(MIME) 업로드 시 오류
🔹 증상
- 업로드 중간에 연결 끊김
- 파일이 서버에 저장되지 않음
🔹 원인
- Apache
LimitRequestBody
,RequestReadTimeout
등 기본 설정 제한 - JBoss MultipartConfig 미설정
🔹 해결 방법
Apache 설정 (httpd.conf)
LimitRequestBody 52428800 # 50MB
RequestReadTimeout body=30,minrate=500
JBoss web.xml
<multipart-config>
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
✅ 2. 라이브러리 중복 문제
🔹 증상
ClassCastException
,NoSuchMethodException
등 발생ClassLoader
충돌 로그 다수 발생
🔹 원인
- EAR/JAR/WAR 내부에서 동일 클래스 중복 로딩
- 동일 버전의 라이브러리가 여러 위치에 존재
🔹 해결 방법
- 공통 라이브러리는
modules/
하위로 이동 jboss-deployment-structure.xml
활용하여 의존성 명시
<deployment>
<dependencies>
<module name="org.apache.poi" services="import"/>
</dependencies>
</deployment>
✅ 3. Web → WAS 요청이 끊기거나 지연됨
🔹 증상
- 화면 일부가 느리게 뜨거나, 응답이 중간에 잘림
- form 데이터가 끝까지 전달되지 않음
🔹 원인
RequestReadTimeout
,ProxyTimeout
,connectionTimeout
미설정- Apache와 JBoss 간 포트/keep-alive 설정 불일치
🔹 해결 방법
Apache 설정 (proxy)
ProxyTimeout 60
ProxyPass / ajp://localhost:8009/ connectiontimeout=60
JBoss connector 설정
<connector name="ajp" ... connection-timeout="60000"/>
✅ 4. 포워딩 IP 문제
🔹 증상
- 로그나 시스템 상에 클라이언트 IP가
127.0.0.1
로 나타남
🔹 원인
- Apache → JBoss AJP 연동 시
X-Forwarded-For
헤더 미처리
🔹 해결 방법
<http-listener ... proxy-address-forwarding="true"/>
- 또는 Java 소스에서
X-Forwarded-For
헤더 직접 추출 필요
✅ 마무리
이번 글에서는 네트워크 연계 시 자주 발생하는 실무 장애들과
라이브러리 구조상 문제로 인해 생기는 ClassLoader 오류까지 다뤘습니다.
다음 편에서는 세션, 로그, 배포와 관련된 장애 사례를 소개합니다.
반응형
'Application Servers & Java' 카테고리의 다른 글
JBoss 장애 사례: 설정 실수 및 시스템 환경 문제로 인한 장애 (0) | 2025.05.15 |
---|---|
JBoss 장애 사례: 세션 끊김, 로그 비정상, 비정상 배포 장애 (0) | 2025.05.15 |
JBoss 장애 사례: 문자 인코딩, 클러스터, 포트 설정 이슈 (0) | 2025.05.15 |
Tomcat 데이터소스 암호화 적용 예제 (AES 기반) (2) | 2025.05.15 |
[장애 사례] WebLogic JDBC 커넥션 풀 초기화 실패 - Access Denied for MySQL 사용자 (0) | 2025.05.15 |