웹로직 기동 실패 (포트 겹침) 원인과 해결 방법
웹로직(WebLogic) 서버 기동 시 포트 겹침(port conflict) 문제로 실행이 실패하는 경우가 있음. 특히, 아래와 같은 오류 메시지가 발생할 수 있음.
java.net.BindException: Address already in use
이 오류 발생 시 웹로직이 정상적으로 실행되지 않음.
1. 웹로직 포트 겹침의 주요 원인
- 웹로직이 이미 실행 중인데 중복 기동을 시도한 경우
- 이전 실행이 비정상 종료되어 포트가 점유된 경우
- 다른 애플리케이션이 같은 포트를 사용 중인 경우
- 설정 오류로 인해 여러 서버가 동일한 포트를 사용하도록 설정된 경우
2. 웹로직 포트 충돌 문제 해결 방법
1) 현재 실행 중인 프로세스 확인 및 종료
포트를 점유하고 있는 프로세스를 확인한 후 종료해야 함.
리눅스/유닉스 환경에서 포트 점유 확인:
netstat -tulnp | grep <포트번호>
또는
lsof -i:<포트번호>
특정 프로세스가 포트를 점유하고 있다면, PID(프로세스 ID) 확인 후 종료.
리눅스에서 프로세스 종료:
kill -9 <PID>
이후 웹로직을 다시 기동.
2) 웹로직이 비정상 종료된 경우 포트 해제
웹로직이 비정상 종료되면 해당 포트가 TIME_WAIT 상태로 남아 있을 수 있음. 아래 명령어를 실행하여 포트를 점유한 프로세스를 해제 가능.
fuser -k <포트번호>/tcp
또는
echo "" > /proc/sys/net/ipv4/tcp_timestamps
이후 웹로직을 다시 기동.
3) 웹로직 포트 변경하기
포트 충돌이 계속 발생하면 웹로직의 기본 포트를 변경하는 방법도 있음.
Admin Server 포트 변경 방법
웹로직 설정 파일(config.xml)을 수정해야 함.
파일 경로:
<DOMAIN_HOME>/config/config.xml
설정 변경 예제:
<server>
<name>AdminServer</name>
<listen-port>7002</listen-port> <!-- 7001 → 7002 로 변경 -->
</server>
변경 후 웹로직을 재기동.
Managed Server 포트 변경 방법
- 웹로직 관리 콘솔(WebLogic Admin Console) 접속.
- Servers → Managed Server 선택 → Configuration → General 메뉴 이동.
- Listen Port 값을 새로운 값(예:
8002)으로 변경 후 저장. - 웹로직 재기동.
3. 추가적인 해결 방법
웹로직 포트 확인을 자동화하는 스크립트 사용
웹로직 실행 전에 포트 충돌 여부를 체크하는 스크립트를 추가하면 문제를 미리 방지 가능.
#!/bin/bash
PORT=7001
if netstat -tulnp | grep -q ":$PORT "; then
echo "포트 $PORT 가 이미 사용 중임. 종료 후 다시 실행하세요."
exit 1
else
echo "포트 $PORT 사용 가능. 웹로직을 기동함."
./startWebLogic.sh
fi
이 스크립트를 실행하면 포트 사용 여부를 자동으로 확인 가능.
4. 결론
웹로직 포트 충돌로 인해 기동 실패할 경우, 아래 단계를 수행하여 문제 해결 가능.
- 현재 실행 중인 프로세스 확인 및 종료
- 비정상 종료된 웹로직의 포트 해제
- 웹로직 포트 변경하여 충돌 방지
- 포트 점검 스크립트 활용하여 자동화
위 방법을 차례대로 실행하면 웹로직 기동 오류를 해결할 수 있음.