1

ITextを使用してPDFを生成していますが、使用しているサーバーのメモリが時間の経過とともに不足しているように見えることに気付きました。ITextを使用する機能をオフにしましたが、サーバーは正常に見えます。そのため、ITextの実装内に、メモリリークの原因となっているものがあると確信しています。ITextの構造は次のとおりです。

Document document = new Document(PageSize.A4);
file = new File("/tmp/Hotel-Fax-" + voucher.getVoucherID() + ".pdf");

PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
writer.setStrictImageSequence(true);
document.open();

PdfContentByte cb = writer.getDirectContent();

//Some methods here which just create PDFPTables and add some text / images

cb.stroke();

document.close();

return file;

ドキュメントを閉じても、PdfWriterまたはPdfContentByteがメモリを保持している方法があるのではないかと思います。つまり、次にコードが呼び出されると、新しいオブジェクトが作成され、最終的にメモリが不足します。

4

0 に答える 0