Что происходит, когда коллекция в Java увеличивается до предела?
У меня есть служба, которая помещает все звонки в память, потому что мы неМы не хотим потерять данные, и в то же время нам нужен этот сервис, чтобы он никогда не работал из-за какой-либо внешней зависимости (например, от БД). Затем эти поэтапные вызовы обычно обрабатываются в фоновом режиме.
Если по какой-либо причине, если звонков слишком много и у нас не хватает памяти, мы должны быть встревожены.
Итак, вопрос, который проще сказать, заключается в следующем: какое исключение мне нужно отследить или отследить, чтобы уведомить меня, если добавление в список не удается из-за недостатка ресурсов? Приведет ли это к ООМ в самой ВМ, или также существует ограничение на уровне коллекции?
Если нет ограничения на уровне сбора, как бы вы порекомендовали мне отслеживать использование службы? В настоящее время у нас есть метрики использования кучи и памяти. Этого достаточно? Кроме того, JVM настроены на уничтожение при ошибке OOM (это потому, что диспетчер виртуальных машин затем перезапускает любой процесс, которым он управляет при уничтожении).