Я хотел создать отчет excel (xlsx) с 500000 записей и почти 10 столбцов. С jboss 512M и apache poi (3.9).
JVM разбился из-за ошибки нехватки памяти, как и ожидалось, поскольку пользовательская модель poi имеет проблемы с памятью.
Поэтому я попытался использовать SXSSFWorkbook, предоставив временный каталог для сброса строк на диск. Отчет сгенерировался без проблем.
Я создаю отчет о веб-приложении, в котором я пишу workbbok для потока OP сервлета. Будет ли это вызывать какие-либо проблемы, если несколько пользователей попытаются получить отчет в одно и то же время, поскольку временный каталог используется несколькими потоками.
Я также дал вызов методу SXSSFWorkbook для очистки временных файлов, будет ли это безопасно, поскольку я сомневаюсь, что он не должен удалять временные файлы, созданные другими потоками (другие запросы пользователей)
Также ниже код безопасен? Так как я распоряжаюсь перед закрытием выходного потока, но после того, как рабочая книга записывается в выходной поток.
workbook.write(out); workbook.dispose(); out.flush(); out.close();