Если вы терпите крах JVM только с тремя или четырьмя запросами, то я, вероятно, начну смотреть на архитектуру того, что сделано.Как упоминал Qwerky, вы создаете все возвращаемые объекты?Эти объекты тяжелые?Не могли бы вы использовать более легкие объекты для возврата данных?Вы должны вернуть все данные сразу?Сколько (количество записей / объект) данных вы потенциально можете вернуть?Насколько большой (размер в КБ, МБ и т. Д.)?На сервере достаточно памяти?Установлены ли минимальные и максимальные значения памяти сервера при запуске в значения, которые помогают ему работать лучше?Есть утечка?Я слишком быстро создаю слишком много объектов в куче?
И в ожидании, что это не что-то с приложением само по себе, а как насчет кластеризации и балансировки нагрузки (для распределения запросов).
Кроме того ... в зависимости от количества данных, которые вы возвращаете ... иногда веб-сервис не является хорошей вещью.В моей компании был случай, когда мы пытались разработать веб-сервис, который должен был обрабатывать отсылку около 30 тыс. Строк данных.Это было слишком много, чтобы справиться с этим.Мы фактически превратили этот процесс в пакетный процесс.Результаты этого процесса были использованы нашим веб-интерфейсом и веб-сервисами.Поскольку пользователям все равно не понадобились данные до следующего дня, это просто упростило управление обработкой данных.
Просто некоторые разные мысли, которые помогут вам по-другому взглянуть на это.