編集:同様のSOの質問があるため、名前を変更しました大きなクエリを追加するときにSpreadSheetAddRows関数がクラッシュするのを修正するにはどうすればよいですか? 私の問題を説明しているので、より簡潔に言い表せます...問題は、クエリ結果のspreadsheetAddrowsであり、サーバー全体を適度なサイズ(1600行、27列)で爆撃しますが、それは彼の18,000行よりもかなり少ないように聞こえます
私は、coldfusion 9.0.1 cfstoredproc 経由でアクセスする Oracle ストアド プロシージャを使用しており、完了時にユーザーがダウンロードするスプレッドシートを作成します。
問題は、結果セットが 1200 行を超えると 500 内部サーバー エラーが返され、700 行が正常に返されるということです。メモリの問題だと思いますか?
標準的なコールドフュージョンの外観で 500 Internal server error 以外に受け取った唯一のメッセージは、小さな活字の「gc オーバーヘッド制限を超えました」であり、それはページの更新時に 1 回だけでした。これは、基盤となる 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)#">