Можно ли управлять потоками mysql (застрявшими запросами) из tomcat?

Для некоторого контекста у нас есть действительно большое приложение, работающее на коте, у нас есть много способов создания пользовательских фильтров, и некоторые из них могут быть слишком медленными.

Вопрос в том, есть ли способ контролировать/убивать поток mysql напрямую или через tomcat (возможно, пул потоков)? и если есть способ управлять им из tomcat, если я убью поток, он также уничтожит поток mysql? (не нашел ничего связанного с документацией).

Я пытаюсь создать слой, чтобы предотвратить зависание запросов в базе данных. Например, если запрос продолжает выполняться более 1 минуты, мое приложение может убить его (вместо того, чтобы я переходил на терминал и убивал «вручную»).

Заранее спасибо.

Каков ваш результат SELECT @@version; Вы можете установить ограничение по времени на уровне запроса, в зависимости от версии, которую вы используете. Пожалуйста, также опубликуйте ЗАПРОС, который вы хотели бы убить.

Wilson Hauck 17.05.2022 20:25

@WilsonHauck В настоящее время я работаю над MySQL 5.6.16, но это не конкретный запрос или сценарий, мы обеспокоены возможностью зависания запросов (это уже произошло, и мы исправили проблему), но мы пытаемся избежать новых проблемы. К сожалению, я не могу опубликовать запрос. Я снова прочитаю документацию mysql и поищу ограничение по времени. Спасибо

Willian Valer 17.05.2022 22:14

Из вашей командной строки MySQL, вошедшей в корень, каковы результаты SHOW GLOBAL VARIABLES LIKE 'max_execution%': ваша версия может быть слишком ранней для max_execution_time, чтобы быть доступной для вас.

Wilson Hauck 18.05.2022 00:25

Уильям, в версии 5.7.12 была глобальная переменная. Ваша версия более ранняя и не включает поддержку max_execution_time. Извини. Может быть время для обновления, когда позволяет время, до общедоступной версии более 90 дней назад, чтобы избежать необходимости сообщать об ошибках / ошибках, которые может обнаружить ваше приложение.

Wilson Hauck 18.05.2022 00:31
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
4
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Скорее всего, вы захотите работать с пулом соединений. Если этим управляет Tomcat, вашей точкой входа является источник данных. См. https://tomcat.apache.org/tomcat-9.0-doc/jndi-datasource-examples-howto.html, как это настроить. Благодаря этому вы можете контролировать количество параллельных подключений, которые приложение может иметь к базе данных.

Кроме того, вы хотите настроить тайм-ауты, чтобы бродячий поток не блокировал базу данных навсегда. Видеть

Спасибо, это, вероятно, решит проблему (пока не могу проголосовать, извините)

Willian Valer 17.05.2022 22:19

Другие вопросы по теме