郁闷ing.....我到12000条还行,12000以上就内存溢出了....
我内存是1G,cpu p4 3.0
jsp+struts+tomcat+oracle
点击按钮,用POI生成EXCEL,先从数据库查出数据,弹出对话框,保存生成EXCEL文件
只能生成12000的数据多了就内存溢出,不知道是怎么回事???
哪位大侠有处理这方面的经验吗???
如果用多个SHEET应该怎样判断??并把数据分开?
在找了个网上的jvm配置,加上去也没管用...哎,晕啊...
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true
我内存是1G,cpu p4 3.0
jsp+struts+tomcat+oracle
点击按钮,用POI生成EXCEL,先从数据库查出数据,弹出对话框,保存生成EXCEL文件
只能生成12000的数据多了就内存溢出,不知道是怎么回事???
哪位大侠有处理这方面的经验吗???
如果用多个SHEET应该怎样判断??并把数据分开?
在找了个网上的jvm配置,加上去也没管用...哎,晕啊...
JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true
解决方案 »
- struts2里面 ,this.addFieldError("loginvo.name", "<font color=red>用户名或密码有误!</font>");请教为什么不可以样写?
- SSH2(struts2.0+spring2.0+hibernater3.2)上传中的空指针问题
- 一个删除的链接怎么写?
- myeclipse里TOMCAT启动不了(信息COPY过来了)
- 已安装了postgresql 7。3的linux用什么命令访问,查看另一台机器上的posgresql数据库?在线等待~~~~~~~~~
- jsp关于页面错误页面
- 关于使用javabean,请问
- 我用response导出excel,在servlet里怎么设置excel单元格的宽度?
- 急急急,在线等,谢谢了
- 怎样更新当前记录集中的当前记录! 急!
- hibernate的小问题
- 将时间插入数据库中遇到的问题
我刚才试验了下 用的一个15000+条数据的表 11列
导出到excel的一个sheet里 几秒时间而已
我觉得lz是poi操作excel部分有问题
而且条件的判断很多,IF语句
在excelAction里调的DAO对数据处理,并反回wd(POI的对象)
我的JDK是1.4的,tomcat是5.0的
不知道是不是这个问题???
后来我是修改的TOMCATE内存来解决的.
tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置
有两种方法:
1. 就需要在环境变量中加上TOMCAT_OPTS, CATALINA_OPTS两个属性,
如 SET CATALINA_OPTS= -Xms64m -Xmx512m;
ms是最小的,mx是最大,64m, 512m分别是指内存的容量.2. 修改Catalina.bat文件
在166行“rem Execute Java with the applicable properties ”以下每行
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% 中的%CATALINA_OPTS% 替换成-Xms64m -Xmx512m
JSP文件报的错
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet execution threw an exception
root cause java.lang.OutOfMemoryError
note The full stack trace of the root cause is available in the Tomcat logs.
--------------------------------------------------------------------------------Apache Tomcat/5.0.16
JAVA ACTION 的代码:import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class xxxAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
String temp="";
Dao ldao=new Dao();
Datime datetime=new Datime();
String tname="XXX";
String mcode="exception";
StringUtil isnul=new StringUtil();
String date=request.getParameter("XXX");
String date2=request.getParameter("XXX2");
String cdate="";
String[] checks=request.getParameterValues("checkbox");
System.out.println(checks);
String XXX=request.getParameter("XXX");
String XXX=request.getParameter("XXX");
String XXX=request.getParameter("XXX");
String XXX=request.getParameter("XX");
String XX="";
String XXX1=request.getParameter("XXX1");
String XXX2=request.getParameter("XXX2");
String XXX3=request.getParameter("XXX3");
String XXX4=request.getParameter("XXX4");
String XXX = null;
String uid="2"; String sqlXXX="(XXX="+XXX1+" or XXX="+XXX2+" or XXX="+XXX3+" or XXX="+XXX4+")";
String datsql="to_date(to_char(Year)|| to_char(lpad(month, 2, '0')) || to_char(lpad(day, 2, '0')), 'YYYYMMDD')";
String sc="";
//判断JSP中的条件文本框
if(!isnul.isNull(XXX)&&!isnul.isNull(XXX)&&!isnul.isNull(XXX)&&!isnul.isNull(XXX)){
if(isnul.isNull(xxx)||isnul.isNull(xxx2)&&isnul.isNull(xx1)&&isnul.isNull(xx2)&&isnul.isNull(xx3)&&isnul.isNull(xx4)){
mcode="exception";
}
if(checks==null){
mcode="exception";
System.out.println("-checks空-");
}
else{
if(!isnul.isNull(XXX1)||!isnul.isNull(XXX2)||!isnul.isNull(XXX3)||!isnul.isNull(xxx4)){
xx=",XXX";
}
else{
xx="";
} if(!isnul.isNull(XXX)&&!isnul.isNull(XXX)&&!isnul.isNull(XXX)&&!isnul.isNull(XXX)){
xx=",XXX,XXX";
}
else{
xx="";
}
if(!isnul.isNull(XXX)&&!isnul.isNull(XXX2)){
xx=",Y,M,D";
}
else{
xx="";
}
temp=XXX+cdate+XXX;
//判断checkbox和其它是否为空
String scheck="";
if(checks!=null){
for(int i=0;i<checks.length;i++){
scheck+=(checks[i]+",");
}
sc=scheck.substring(0,scheck.length()-1)+temp;
//得到CHECKBOX
}
try{ StringBuffer sb2=new StringBuffer();
String sqltude="(XXX >="+XXX+" and XXX <"+XXX+") and (XXX >="+XXX+" and XXX <"+XXX+")";
String sql = "select "+sc+" from "+tname+" where "+XXX+" and ("+datsql+" between to_date('"+XXX+"', 'YYYY-MM-DD') and to_date('"+XXX2+"', 'YYYY-MM-DD')) and "+sqlXX;
String sqlcount="select count(*) from "+tname+" where "+sqlXXX+" and ("+datsql+" between to_date('"+XXX+"', 'YYYY-MM-DD') and to_date('"+XXX2+"', 'YYYY-MM-DD')) and "+sqlXX;
long acount=ldao.getcount(sqlcount);//得到行数
sb2.append(sql);
if(ldao.getlist(sb2.toString())!=null){//判断有无记录
if(acount>65535){//判断行
mcode="counterror";
}
else{
HSSFWorkbook wb2=ldao.getlist(sb2.toString());//得到wb2对象
response.setContentType("Application/ms-excel");
response.setHeader("Content-Disposition","attachment;filename="+"XXXFileName"+".xls");
OutputStream os=response.getOutputStream();
wb2.write(os);
os.flush();
os.close();
//增加日志
String sXXX="";
if(isnul.isNull(XXX1)){
XXX1="";
}
if(isnul.isNull(XXX2)){
XXX2="";
}
if(isnul.isNull(XXX3)){
XXX3="";
}
if(isnul.isNull(XXX4)){
hour4="";
}
shour=XXX1+"-"+XXX2+"-"+XXX3+"-"+XXX4; String adate="to_date('"+Xdate+"', 'yyyy-mm-dd'),to_date('"+Xdate2+"', 'yyyy-mm-dd')";
String ndate="to_date('"+datetime.getDatime()+"', 'yyyy-mm-dd hh24:mi:ss')";
String asql = "insert into zl_download (XXXX,XXX,XXXX,等 ) values("+aXXX+",'"+sXXX+"','"+XXX+"','"+XXX+"','"+XXX+"','"+XXX+"',"+XXX+",'"+uid+"','XXX')";
ldao.addLog(asql);
mcode="excelaction";
}//记录长度else
}
else{
mcode="exception";
}
}//try
catch (Exception e1) {
e1.printStackTrace();
}
}//第一个if里的第一个else
}//第一个if
else{
mcode="exception";
}
System.out.println(mcode);
return mapping.findForward(mcode);
}//方法结束}内存溢不知该如何处理(我会去试下fengran22的方法,谢谢)??可以指定记录数新建sheet再把后面的记录加进去吗?
行数和列数都占内存,我用11列试了下,可以到25000行
但我的列数是33列,都加上就会溢出.能不能将它设定到10000条就新建个SHEET,把后面的加进去??
if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem Start/Stop Script for the CATALINA Server
rem
rem Environment Variable Prequisites
rem
rem CATALINA_HOME May point at your Catalina "build" directory.
rem
rem CATALINA_BASE (Optional) Base directory for resolving dynamic portions
rem of a Catalina installation. If not present, resolves to
rem the same directory that CATALINA_HOME points to.
rem
rem CATALINA_OPTS (Optional) Java runtime options used when the "start",
rem "stop", or "run" command is executed.
rem
rem CATALINA_TMPDIR (Optional) Directory path location of temporary directory
rem the JVM should use (java.io.tmpdir). Defaults to
rem %CATALINA_BASE%\temp.
rem
rem JAVA_HOME Must point at your Java Development Kit installation.
rem
rem JAVA_OPTS (Optional) Java runtime options used when the "start",
rem "stop", or "run" command is executed.
rem
rem JSSE_HOME (Optional) May point at your Java Secure Sockets Extension
rem (JSSE) installation, whose JAR files will be added to the
rem system class path used to start Tomcat.
rem
rem JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
rem command is executed. The default is "dt_shmem".
rem
rem JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
rem command is executed. The default is "jdbconn".
rem
rem $Id: catalina.bat,v 1.29 2002/04/01 19:51:31 patrickl Exp $
rem ---------------------------------------------------------------------------
set JAVA_OPTS=%JAVA_OPTS% -Xms256M -Xmx800M
rem Guess CATALINA_HOME if not defined
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=.
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
set CATALINA_HOME=..
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
set JAVA_OPTS=%JAVA_OPTS% -Xms256M -Xmx800M
rem Get standard environment variables
if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"
rem Get standard Java environment variables
if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat
echo This file is needed to run this program
goto end
:okSetclasspath
set BASEDIR=%CATALINA_HOME%
call "%CATALINA_HOME%\bin\setclasspath.bat"rem Add on extra jar files to CLASSPATH
if "%JSSE_HOME%" == "" goto noJsse
set CLASSPATH=%CLASSPATH%;%JSSE_HOME%\lib\jcert.jar;%JSSE_HOME%\lib\jnet.jar;%JSSE_HOME%\lib\jsse.jar
:noJsse
set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jarif not "%CATALINA_BASE%" == "" goto gotBase
set CATALINA_BASE=%CATALINA_HOME%
:gotBaseif not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
set CATALINA_TMPDIR=%CATALINA_BASE%\temp
:gotTmpdirrem ----- Execute The Requested Command ---------------------------------------echo Using CATALINA_BASE: %CATALINA_BASE%
echo Using CATALINA_HOME: %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
echo Using JAVA_HOME: %JAVA_HOME%set _EXECJAVA=%_RUNJAVA%
set MAINCLASS=org.apache.catalina.startup.Bootstrap
set ACTION=start
set SECURITY_POLICY_FILE=
set DEBUG_OPTS=
set JPDA=if not ""%1"" == ""jpda"" goto noJpda
set JPDA=jpda
if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
set JPDA_TRANSPORT=dt_shmem
:gotJpdaTransport
if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
set JPDA_ADDRESS=jdbconn
:gotJpdaAddress
shift
:noJpdaif ""%1"" == ""debug"" goto doDebug
if ""%1"" == ""embedded"" goto doEmbedded
if ""%1"" == ""run"" goto doRun
if ""%1"" == ""start"" goto doStart
if ""%1"" == ""stop"" goto doStopecho Usage: catalina ( commands ... )
echo commands:
echo debug Start Catalina in a debugger
echo debug -security Debug Catalina with a security manager
echo embedded Start Catalina in embedded mode
echo jpda start Start Catalina under JPDA debugger
echo run Start Catalina in the current window
echo run -security Start in the current window with security manager
echo start Start Catalina in a separate window
echo start -security Start in a separate window with security manager
echo stop Stop Catalina
goto end:doDebug
shift
set _EXECJAVA=%_RUNJDB%
set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\jakarta-tomcat-4.0\catalina\src\share"
if not ""%1"" == ""-security"" goto execCmd
shift
echo Using Security Manager
set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
goto execCmd:doEmbedded
shift
set MAINCLASS=org.apache.catalina.startup.Embedded
goto execCmd:doRun
shift
if not ""%1"" == ""-security"" goto execCmd
shift
echo Using Security Manager
set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
goto execCmd:doStart
shift
if not "%OS%" == "Windows_NT" goto noTitle
set _EXECJAVA=start "Tomcat" %_RUNJAVA%
goto gotTitle
:noTitle
set _EXECJAVA=start %_RUNJAVA%
:gotTitle
if not ""%1"" == ""-security"" goto execCmd
shift
echo Using Security Manager
set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
goto execCmd:doStop
shift
set ACTION=stop
goto execCmd:execCmd
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgsrem Execute Java with the applicable properties
if not "%JPDA%" == "" goto doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
%_EXECJAVA% %JAVA_OPTS% -Xms64m -Xmx512m %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurity
%_EXECJAVA% %JAVA_OPTS% -Xms64m -Xmx512m %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% -Xms64m -Xmx512m -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% -Xms64m -Xmx512m -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end:end
就剩内存溢出的问题了....
我也是按第二种方法走的.....加上33个字段17000条记录,就出错...
晕,是不是要加内存啊.....
@echo off
if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem Start/Stop Script for the CATALINA Server
rem
rem Environment Variable Prequisites
rem
rem CATALINA_HOME May point at your Catalina "build" directory.
rem
rem CATALINA_BASE (Optional) Base directory for resolving dynamic portions
rem of a Catalina installation. If not present, resolves to
rem the same directory that CATALINA_HOME points to.
rem
rem CATALINA_OPTS (Optional) Java runtime options used when the "start",
rem or "run" command is executed.
rem
rem CATALINA_TMPDIR (Optional) Directory path location of temporary directory
rem the JVM should use (java.io.tmpdir). Defaults to
rem %CATALINA_BASE%\temp.
rem
rem JAVA_HOME Must point at your Java Development Kit installation.
rem Required to run the with the "debug" argument.
rem
rem JRE_HOME Must point at your Java Development Kit installation.
rem Defaults to JAVA_HOME if empty.
rem
rem JAVA_OPTS (Optional) Java runtime options used when the "start",
rem "stop", or "run" command is executed.
rem
rem JSSE_HOME (Optional) May point at your Java Secure Sockets Extension
rem (JSSE) installation, whose JAR files will be added to the
rem system class path used to start Tomcat.
rem
rem JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
rem command is executed. The default is "dt_shmem".
rem
rem JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
rem command is executed. The default is "jdbconn".
rem
rem JPDA_SUSPEND (Optional) Java runtime options used when the "jpda start"
rem command is executed. Specifies whether JVM should suspend
rem execution immediately after startup. Default is "n".
rem
rem JPDA_OPTS (Optional) Java runtime options used when the "jpda start"
rem command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
rem and JPDA_SUSPEND are ignored. Thus, all required jpda
rem options MUST be specified. The default is:
rem
rem -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,
rem address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
rem
rem $Id: catalina.bat 498126 2007-01-20 15:38:39Z t $
rem ---------------------------------------------------------------------------
rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%
set JAVA_OPTS= -server -Xms700M -Xmx700M
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=%CURRENT_DIR%
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..
set CATALINA_HOME=%cd%
cd %CURRENT_DIR%
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHomerem Get standard environment variables
if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"rem Get standard Java environment variables
if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat
echo This file is needed to run this program
goto end
:okSetclasspath
set BASEDIR=%CATALINA_HOME%
call "%CATALINA_HOME%\bin\setclasspath.bat" %1
if errorlevel 1 goto endrem Add on extra jar files to CLASSPATH
if "%JSSE_HOME%" == "" goto noJsse
set CLASSPATH=%CLASSPATH%;%JSSE_HOME%\lib\jcert.jar;%JSSE_HOME%\lib\jnet.jar;%JSSE_HOME%\lib\jsse.jar
:noJsse
set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jarif not "%CATALINA_BASE%" == "" goto gotBase
set CATALINA_BASE=%CATALINA_HOME%
:gotBaseif not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
set CATALINA_TMPDIR=%CATALINA_BASE%\temp
:gotTmpdirif not exist "%CATALINA_HOME%\bin\tomcat-juli.jar" goto noJuli
set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
:noJulirem ----- Execute The Requested Command ---------------------------------------echo Using CATALINA_BASE: %CATALINA_BASE%
echo Using CATALINA_HOME: %CATALINA_HOME%
echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
if ""%1"" == ""debug"" goto use_jdk
echo Using JRE_HOME: %JRE_HOME%
goto java_dir_displayed
:use_jdk
echo Using JAVA_HOME: %JAVA_HOME%
:java_dir_displayed
set _EXECJAVA=%_RUNJAVA%
set MAINCLASS=org.apache.catalina.startup.Bootstrap
set ACTION=start
set SECURITY_POLICY_FILE=
set DEBUG_OPTS=
set JPDA=if not ""%1"" == ""jpda"" goto noJpda
set JPDA=jpda
if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
set JPDA_TRANSPORT=dt_shmem
:gotJpdaTransport
if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
set JPDA_ADDRESS=jdbconn
:gotJpdaAddress
if not "%JPDA_SUSPEND%" == "" goto gotJpdaSuspend
set JPDA_SUSPEND=n
:gotJpdaSuspend
if not "%JPDA_OPTS%" == "" goto gotJpdaOpts
set JPDA_OPTS=-Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
:gotJpdaOpts
shift
:noJpdaif ""%1"" == ""debug"" goto doDebug
if ""%1"" == ""run"" goto doRun
if ""%1"" == ""start"" goto doStart
if ""%1"" == ""stop"" goto doStop
if ""%1"" == ""version"" goto doVersionecho Usage: catalina ( commands ... )
echo commands:
echo debug Start Catalina in a debugger
echo debug -security Debug Catalina with a security manager
echo jpda start Start Catalina under JPDA debugger
echo run Start Catalina in the current window
echo run -security Start in the current window with security manager
echo start Start Catalina in a separate window
echo start -security Start in a separate window with security manager
echo stop Stop Catalina
echo version What version of tomcat are you running?
goto end:doDebug
shift
set _EXECJAVA=%_RUNJDB%
set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\jakarta-tomcat-catalina\catalina\src\share"
if not ""%1"" == ""-security"" goto execCmd
shift
echo Using Security Manager
set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
goto execCmd:doRun
shift
if not ""%1"" == ""-security"" goto execCmd
shift
echo Using Security Manager
set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
goto execCmd:doStart
shift
if not "%OS%" == "Windows_NT" goto noTitle
set _EXECJAVA=start "Tomcat" %_RUNJAVA%
goto gotTitle
:noTitle
set _EXECJAVA=start %_RUNJAVA%
:gotTitle
if not ""%1"" == ""-security"" goto execCmd
shift
echo Using Security Manager
set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
goto execCmd:doStop
shift
set ACTION=stop
set CATALINA_OPTS=
goto execCmd:doVersion
%_EXECJAVA% %JAVA_OPTS% -classpath "%CATALINA_HOME%\server\lib\catalina.jar" org.apache.catalina.util.ServerInfo
goto end
:execCmd
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgsrem Execute Java with the applicable properties
if not "%JPDA%" == "" goto doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end
:doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
goto end:end
set JAVA_OPTS= -server -Xms700M -Xmx700M注意 : 这两个如果设置 一样的大小 是非常有好处的: 因为可以加快 回收内存
ctrl + F 查找
%_EXECJAVA% -classpath
将其 替换成 %_EXECJAVA% %JAVA_OPTS% -classpath 即可
第三次是查记录数
最下面有生成日志,对另外一张表插入一条数据会不会跟JDK的版本有关??或者是TOMCAT的版本
我的JDK是1.4的,TOMCAT是5.0的??
System.out.println(Runtime.getRuntime().totalMemory()/(1024*1024) + "M");
System.out.println(Runtime.getRuntime().maxMemory()/(1024*1024) + "M");
System.out.println(Runtime.getRuntime().freeMemory()/(1024*1024) + "M");如何获得JVM的最大可用内存 在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。 实际发现版本上有细微差别的JDK最大容许内存值都不尽相同,因此在实际的应用中还是要自己试验一下看到底内存能达到什么样的值。