지금까지 Tomcat을 사용하여 세 가지 상황을 만났습니다. 먼저 Eclipse를 사용하고 Eclipse에서 Tomcat을 구성하십시오. 둘째, 프로젝트를 Tomcat에 직접 배포하십시오. 셋째, Tomcat을 Windows 서비스로 설치하십시오.
이 세 사례에서는 OutofMemoryError가 나타납니다. 여기서는 인터넷에서 무책임한 기사에 비극적으로 상처를 받았다고 언급해야합니다. 메모리를 설정하는 모든 종류의 방법을 시도했지만 작동하지 않았습니다. 아래에 언급 한 방법은 모두 혼자 테스트되며 문제가 없습니다.
첫 번째 사례 :
그림에서 볼 수 있듯이 : 나는 빨간색 프레임으로 만들었습니다.其中Xms和Xmx是增加java虚拟机初始堆大小和最大堆大小参数,主要是解决由于Java Heap Space不足造成的原因。 XX:PermSize and XX:MaxPermSize are parameters that increase the initial permanent storage area size and the maximum permanent storage area size. They mainly solve the problem that a large number of jars or classes are used in the program. The Java virtual machine has insufficient 영구 생성 공간과 관련된 로딩 클래스를위한 공간.
두 번째 사례 :
컴파일 된 프로젝트를 Tomcat에 직접 넣고 startup.bat을 사용하여 Tomcat 서비스를 시작하십시오. Tomca의 빈 폴더에서 다음과 같이 :
이 경우 Catalina.bat에서 매개 변수를 수정해야합니다. 그것을 열어.找到这两句:
rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
在这两句之上加上这句,一定要之上:set "JAVA_OPTS=-Xms512M -Xmx1024M -XX:PermSize=256m -XX:MaxPermSize=512m"
인터넷에는 비슷한 것들이 있지만 그 중 많은 사람들이 시도하지 않았습니다.
세 번째 상황 :
Tomcat이 Windows 서비스로 등록되어 서비스를 시작한 경우 위의 방법은 유효하지 않습니다.이 시점에서 Tomcat Start는 Batch 파일의 매개 변수가 아닌 레지스트리의 매개 변수를 읽는 것이기 때문입니다 이것. : tomcat의 빈 디렉토리에서 tomcat7w.exe를 찾아서 개방하십시오.
Java 옵션에서 : 아래의 초기 메모리 풀은 힙 메모리 크기의 초기화이며 Maximun 메모리 풀은 최대 힙 메모리 크기입니다. Perm Gen 풀의 크기를 설정하려면 Java 옵션에 매개 변수를 추가하고 다음을 추가해야합니다.
-dcatalina.base =%tomcat_home%
-dcatalina.home =%tomcat_home%
-djava.endorsed.dirs =%tomcat_home%/승인
-djava.io.tmpdir =%tomcat_home%/temp
-xx : permsize = 256m
-xx : maxpermsize = 256m
-xx : reservedcodecachesize = 48m
-duser.timezone = gmt+08
(각 줄 뒤에 공백이 없음)이 방법을 시도했습니다. 작동합니다. 레지스트리에서 직접 매개 변수를 추가 할 수도 있습니다. 나는 이것을 소개하지 않을 것입니다. 나는 그것을 직접 시도하지 않았습니다.
실제로 Tomcat 메모리 문제를 해결하는 것은 어렵지 않습니다. 우리는 오랫동안이 문제에 대해 귀찮게 해왔습니다. Eclipse를 사용하면 콘솔에서 오류 메시지가 인쇄됩니다. 그러나 우리는 Tomcat 서비스를 Windows 서비스에 설치하여 오류 프롬프트를 볼 수 없었습니다. 프로젝트가 시작된 후에는 항상 대기 상태에 있었는데, 이는 사람들이 혼란스러워서 데이터베이스 문제라고 생각했습니다. 요컨대, 경험이 부족합니다.
위의 것은 Java에서 OutofMemoryError를 해결하는 것입니다. 모든 사람의 학습에 도움이되기를 바랍니다.