Недавно я обновил свой сервер с Tomcat 8 до Tomcat 11. Мне также пришлось сменить библиотеки Java на Jakarta и т. д. Раньше у меня были блокировки, но после обновления они стали более распространенными. После работы сервера в течение нескольких часов (около 12-20 часов) я начинаю получать эти ошибки в catalina.out.
Код: Выделить всё
com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
Сервер запускается с задержкой, а через 1-2 часа он становится очень тормозным и рушится. Журнал показывает, что на сервере закончилась память.
Код: Выделить всё
java.lang.RuntimeException: jakarta.servlet.ServletException: java.lang.OutOfMemoryError:
GC overhead limit exceeded
Моя конфигурация источника данных в файле server.xml
Java OPTS должен обеспечивать достаточно памяти. Я не думаю, что это связано с памятью, поскольку оно начинается с «замков». Я предполагаю, что каким-то образом процессы зависают, и память тоже блокируется.
Код: Выделить всё
JAVA_OPTS="-Djava.awt.headless=true -Xmx2G -XX:MaxPermSize=2G -XX:+UseConcMarkSweepGC"
Заранее спасибо
Подробнее здесь:
https://stackoverflow.com/questions/782 ... g-outofmem