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