编辑:我更改了名称,因为有一个类似的SO问题How do I fix SpreadSheetAddRows function crashing when adding a large query?在那里,描述我的问题,所以我认为更简洁...问题是电子表格添加我的查询结果炸弹整个服务器我认为适中的大小(1600行,27列),但听起来比他的18,000行要小得多SpreadsheetAddRows在中等大小的查询上失败
我正在使用通过ColdFusion 9.0.1 cfstoredproc访问的oracle存储过程,完成后为用户创建一个电子表格下载
问题是,比1200行更大的结果集正在返回500内部服务器错误,700行返回正常,所以我我猜这是一个记忆问题?
唯一的消息我收到比标准的ColdFusion看500内部服务器错误等是小字“GC开销超过限制”,这是只在页面刷新一次,这指的是基本的Java的JVM
我什至不知道如何去诊断这个
这里是CFSTOREDPROC和电子表格的末尾OBJ
<!--- variables assigned correctly above --->
<cfprocresult name="RC1">
</cfstoredproc>
<cfset sObj = spreadsheetNew("reconcile","yes")>
<cfset SpreadsheetAddRow(sObj, "Column_1, ... , Column27")>
<cfset SpreadsheetFormatRow(sObj, {bold=TRUE, alignment="center"}, 1)>
<cfset spreadsheetAddRows(sObj, RC1)>
<cfheader name="content-disposition" value="attachment; filename=report_#Dateformat(NOW(),"MMDDYYYY")#.xlsx">
<cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" variable="#spreadsheetReadBinary(sObj)#">
你是否总是得到'gc overhead overhead exceeded'错误?该错误表明JVM在垃圾回收中花费了太多时间。如果您可以为JVM分配更多内存,则可以解决该问题。 http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html – 2013-04-11 11:53:33
不,我只有40次尝试,我们碰到了JVM 3x,问题仍然存在 – 2013-04-11 14:29:42