编辑:我更改了名称,因为有一个类似的 SO 问题How do I fix SpreadSheetAddRows function crashing when adding a large query? 那里描述了我的问题,所以我用更简洁的措辞...问题是我的查询结果的电子表格地址以我认为中等大小(1600 行,27 列)轰炸了整个服务器,但这听起来比他的 18,000 行少得多
我正在使用通过 Coldfusion 9.0.1 cfstoredproc 访问的 Oracle 存储过程,该过程在完成时会创建一个电子表格供用户下载
问题是大于 1200 行的结果集返回 500 内部服务器错误,700 行返回正常,所以我猜这是内存问题?
除了标准coldfusion外观中的500 Internal server error之外,我收到的唯一消息是小字体“超出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)#">