Мы выяснили что через некоторое время наш модуль убивает наш сервис из-за роста памяти.
После исследования я обнаружил, что у меня есть ConcurrentHashMap, который растет и растет со временем обработки сообщений. . Проверка последних узлов показывает, что существует множество типов значений org.hibernate.type.descriptor.jdbc.ArrayJdbcType#.....
В сервисе их нет используйте простые методы org.springframework.data.repository.Repository, но настраиваемый запрос для ускорения процесса нашей базы данных.
Наши запросы выглядят следующим образом:
Код: Выделить всё
@Modifying
@Query(value =
"""
INSERT INTO my_table (id, key, name)
SELECT id, key, name
FROM UNNEST(:ids\\:\\:uuid[], :keys\\:\\:varchar[], :names\\:\\:varchar[])
"""
, nativeQuery = true)
void insertData(UUID[] ids, String[] keys, String[] names);
Я уверен, что эти запросы являются причиной того, что спящий режим создает дескрипторы типов, но ..
< ol>
[*]Это нормальный рост памяти?
[*]Есть ли способ предотвратить это?
[*]Есть ли лучший способ способ выполнения таких запросов как с использованием памяти, так и с эффективностью в БД и в службе?
[*]Я начал создавать UserType, чтобы объявить свой параметр, который будет храниться ( id,key,name), но я много с этим боролся и не уверен, что это вообще сработает. Можно?
[*]Я открыт для любых других предложений по моей проблеме.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/791 ... e-to-cache
Мобильная версия