后臺報錯,我走斷點跟著發現是我在執行一個SQL查詢的時候報的錯:
<select id="selectTdSSeqctrl" parameterClass="TdSSeqctrl" resultMap="TdSSeqctrlResult">
SELECT * FROM TD_S_SEQCTRL
<include refid="where-all-condition"/>
</select>
查詢結果又兩萬多條。我電腦myeclipse.ini,myeclipse的jdk,tomcat都更改過了記憶體的設定,
我tomcat,jdk已設定了-Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=48m -XX:MaxPermSize=256m -Doracle.jdbc.V8Compatible=true
依然沒有效果。還請各位大神幫忙看看原因,報錯內容如下:
07-07 14:56:59 ERROR sitech.jcf.proxy.Impl.AllBeanProxy:71 - java.lang.OutOfMemoryError: Java heap space
at oracle.jdbc.driver.CharCommonAccessor.getString(CharCommonAccessor.java:404)
at oracle.jdbc.driver.T4CVarcharAccessor.getString(T4CVarcharAccessor.java:436)
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:971)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:494)
at org.apache.commons.dbcp.DelegatingResultSet.getString(DelegatingResultSet.java:224)
at com.ibatis.sqlmap.engine.type.StringTypeHandler.getResult(StringTypeHandler.java:35)
at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getPrimitiveResultMappingValue(ResultMap.java:619)
at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getResults(ResultMap.java:345)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:419)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:336)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.iBatisExecuteQuery(SqlExecutor.java:224)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:186)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:222)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:190)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:295)
at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:1)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:200)
at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:293)
at com.sitech.jcf.core.dao.BaseDao.queryForList(BaseDao.java:295)
at com.sitech.groupcust.common.dao.TdSSeqctrlDao.queryList(TdSSeqctrlDao.java:24)
at com.sitech.groupcust.busi.other.SeqctrlServiceImpl.selectCrmSeq(SeqctrlServiceImpl.java:99)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
uj5u.com熱心網友回復:
我的代碼和同事一樣的,同事的能運行沒問題,而我的有問題,所有應該不可能是代碼的問題。會是查詢時間過長,導致的嗎? 我現在剛剛修改了sqlMapConfig.xml設定defaultStatementTimeout="900" 超時為900s,試一下,稍后看看能不能成功。
uj5u.com熱心網友回復:
設定defaultStatementTimeout="900"了之后也不管用。補充一下報錯內容
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: Java heap space
at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:154)
at org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:135)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1655)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
at java.lang.Thread.run(Thread.java:619)
我本地已修改catalina.bat 增加了
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms1536m -Xmx1536m
-XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m
-XX:MaxPermSize=256m -XX:+DisableExplicitGC"
catalina.sh增加了JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m"之后仍然報錯。
坐等回復!
uj5u.com熱心網友回復:
在啟動專案的時候發現了一個在執行的process
uj5u.com熱心網友回復:
你java程式的記憶體配置太小了加大!
uj5u.com熱心網友回復:
你好,我的.ini檔案 myeclipse的tomcat和jdk都更改過了,Xmx=1024mXX:MaxPermSize=512
應該夠用了。還需要改大嗎?有沒有其他的需要修改的?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/63549.html
標籤:開發
