今天遇到一個bug,
項目載入的時候出現錯誤
2009-09-08 17:21 12,671:ERROR [http-8050-Processor24] (Compiler.java:407) - Error compiling file: /D:/Tomcat 5.0/work/Catalina/localhost/unicom//org/apache/jsp\index_jsp.java [javac] Compiling 1 source file
系統資源不足。
有關詳細資料,請參閱以下堆棧追蹤。
java.lang.OutOfMemoryError: Java heap space
該錯誤解決方案:
在tomcat\bin檔案夾中的catalina.bat檔案下.176行左右
rem Execute Java with the applicable properties下,將所有%CATALINA_OPTS%替換成-Xms256m -Xmx512m .他們分別指最小記憶體和最大記憶體.tomcat的最大記憶體只能改為實體記憶體的80%.
----順便寫一下
Tomcat 5常用最佳化和配置
1、JDK記憶體最佳化:
Tomcat預設可以使用的記憶體為128MB,Windows下,在檔案{tomcat_home}/bin/catalina.bat,Unix下,在檔案{tomcat_home}/bin/catalina.sh的前面,增加如下設定:
JAVA_OPTS='-Xms[初始化記憶體大小] -Xmx[可以使用的最大記憶體] 一般說來,你應該使用實體記憶體的 80% 作為堆大小。
2、連接器最佳化:
在tomcat設定檔server.xml中的配置中,和串連數相關的參數有:
maxThreads:
Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可建立的最大的線程數。預設值200。
acceptCount:
指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理。預設值10。
minSpareThreads:
Tomcat初始化時建立的線程數。預設值4。
maxSpareThreads:
一旦建立的線程超過這個值,Tomcat就會關閉不再需要的socket線程。預設值50。
enableLookups:
是否反查網域名稱,預設值為true。為了提高處理能力,應設定為false connnectionTimeout:
網路連接逾時,預設值60000,單位:毫秒。設定為0表示永不逾時,這樣設定有隱患的。通常可設定為30000毫秒。
maxKeepAliveRequests:
保持請求數量,預設值100。
bufferSize:
輸入資料流緩衝大小,預設值2048 bytes。
compression:
壓縮傳輸,取值on/off/force,預設值off。
其中和最大串連數相關的參數為maxThreads和acceptCount。如果要加大並發串連數,應同時加大這兩個參數。web server允許的最大串連數還受制於作業系統的核心參數設定,通常Windows是2000個左右,Linux是1000個左右。
3、tomcat中如何禁止和允許列目錄下的檔案
在{tomcat_home}/conf/web.xml中,把listings參數設定成false即可,如下:
4、tomcat中如何禁止和允許主機或IP地址訪問
這是伺服器的配置
JAVA_OPTS='-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8' (T002)
加大tomcat串連數:
在tomcat設定檔server.xml中的配置中,和串連數相關的參數有:
minProcessors:最小空閑連接線程數,用於提高系統處理效能,預設值為10
maxProcessors:最大連接線程數,即:並發處理的最大請求數,預設值為75
acceptCount:允許的最大串連數,應大於等於maxProcessors,預設值為100
enableLookups:是否反查網域名稱,取值為:true或false。為了提高處理能力,應設定為false
connectionTimeout:網路連接逾時,單位:毫秒。設定為0表示永不逾時,這樣設定有隱患的。通常可設定為30000毫秒。
其中和最大串連數相關的參數為maxProcessors和acceptCount。如果要加大並發串連數,應同時加大這兩個參數。
web server允許的最大串連數還受制於作業系統的核心參數設定,通常Windows是2000個左右,Linux是1000個左右。