Eclipse와 Weblogic을 연동하여 개발하는 도중 소스를 수정 하고 컴파일 하는 과정을 반복하면 메모리 부족(PermGen space) 오류가 발생하고 Weblogic이 죽어 버립니다. 그렇게 되면 대부분 작업관리자에서 java.exe 프로세스를 끝내지 않으면 재시작도 되지 않는 경우가 많습니다.
Caused By: java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343)
Truncated. see log file for complete stacktrace
자바 VM 설정에서 PermSize를 올리게 되면 완전히 해결되지는 않지만 어느정도 더 버티게 되는것 같습니다.
설정은 도메인 디렉토리 아래의 bin 디렉토리 아내에 setDomainEnv.cmd 파일에서 수정합니다.
user_projects\domains\base_domain\bin\setDomainEnv.cmd
자신의 운영체제의 비트수에 맞는 항목의 -XX:PermSize와 -XX:MaxPermSize의 값을 올립니다.
set MEM_PERM_SIZE_64BIT=-XX:PermSize=128m
set MEM_PERM_SIZE_32BIT=-XX:PermSize=48m
set MEM_MAX_PERM_SIZE_64BIT=-XX:MaxPermSize=256m
set MEM_MAX_PERM_SIZE_32BIT=-XX:MaxPermSize=128m
추가로 프로젝트의 파일 엔코딩이 UTF-8인 경우 콘솔에 한글이 깨지는 경우에는 위의 설정 파일에서 엔코딩을 설정할 수 있습니다.
아래와 같이 set JAVA_PROPERTIES 부분에 엔코딩을 추가합니다. -Dfile.encoding=UTF8 -Dfile.client.encoding=UTF8 을 라인 끝에 추가하거나 윈도우의 경우 기존 라인 끝에 ^ 을 추가하고 다음라인에 적어도 됩니다.
set JAVA_PROPERTIES=-Dwls.home=%WLS_HOME% -Dweblogic.home=%WLS_HOME% ^
-Dfile.encoding=UTF8 -Dfile.client.encoding=UTF8
변경후 아래처럼 한글이 제대로 나오게 됩니다.
<2018. 12. 21 오전 12시 14분 55초 KST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RESUMING>
'프로그래밍 > 운영체제, 서버' 카테고리의 다른 글
Windows용 Git 서버인 Bonobo Git Server 설치하기 (2) | 2021.07.23 |
---|---|
iPhone 8에 iOS 12.4 업데이트 및 Apple Watch 3에 watchOS 5.3 업데이트 (0) | 2019.07.30 |
Weblogic 서버에 웹애플리케이션 Deploy 하기 (0) | 2018.11.21 |
Windows에 Weblogic 12.1.3.0 설치하기 (1) | 2018.11.12 |
Oracle WebLogic Server 12cR2(12.2.1.3) 설치하기 (4) | 2018.11.07 |