編輯:我更改了名稱,因爲有一個類似的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