Как преодолеть медленный отклик или ограничение памяти при использовании больших наборов данных в веб-приложении Tomcat? - PullRequest
0 голосов
/ 17 августа 2010

Inventory Приложение, построенное в четырехслойной модели, состоящей из: графического интерфейса пользователя на основе апплета;собственный средний уровень (веб-приложение Tomcat);Бизнес-логика в хранимых процедурах Oracle 10g .;Данные, хранящиеся в Oracle 10g.

Проблема: Средний уровень предназначен для транзакционной связи, а не для перемещения больших наборов данных (более 10 000 строк) в пользовательский интерфейс или в отчеты.Приложение не ограничивает размер результатов поиска, что означает, что пользователи могут выполнять поиск, который возвращает очень большие наборы данных во внешний интерфейс.Такие запросы заставляют средний уровень медленно отвечать на этот запрос, а также на другой параллельный запрос, достигая верхних пределов кучи памяти JVM и, в худших случаях, вызывая сбой среднего уровня./ понимание о лучшем решении будет высоко ценится.Большое спасибо.

1 Ответ

1 голос
/ 17 августа 2010

Вам необходимо ограничить объем данных, которые возвращаются с сервера. Дело в том, что нет смысла представлять пользователю 10 000 строк одновременно (никто не может переварить это). Разбейте его на более мелкие наборы, скажем, 100, и предоставьте пользователю механизмы фильтрации, чтобы иметь возможность находить нужные данные.
Для отчетов вам нужно будет выполнить несколько необычных запросов, которые генерируют наиболее распространенные специальные отчеты. Возможно, вы захотите генерировать ежедневные (или другие периодические) отчеты в автономном режиме с помощью некоторого пакетного механизма, чтобы пользователь мог загрузить их, как только они будут готовы, и таким образом вы не влияете на обработку транзакций. Они будут созданы с помощью какого-либо другого механизма (вне вашего сервера приложений) и записаны в Excel, PDF или другой формат файла для загрузки пользователем по ссылке

...