Как имитировать сбой базы данных для тестирования фиксации фазы 2 -в Java

Я реализую 2-фазную фиксацию -с использованием распределенных ресурсов. Как имитировать отказ участвующей базы данных? Вытягивание сетевого кабеля не работает, так как приводит к взаимоблокировке таблицы. В настоящее время я использую хуки в своем коде приложения, которые выдают StaleConnectionExceptionв разных точках, например, до выполнения запроса, после выполнения запроса. Меня беспокоит этот подход:

  • Есть ли лучший способ смоделировать отказ БД?
  • Что происходит с объектом соединения, когда соединение с БД нарушается? Сохраняет ли он свое значение или становится нулевым?
  • Что на самом деле происходит, когда приложение пытается повторно подключиться к БД? Какое значение получает объект подключения? Использует ли он существующее значение из пула подключений?

Я также хотел бы протестировать в промежуточных точках, например, во время выполнения запроса, во время фиксации (после отправки prepare и т. д. ). Прямо сейчас я помещаю приложение в режим отладки, вхожу в вызов функции и отключаю его между ними. Но этот подход является ручным и не будет работать для масштабного тестирования.

Есть ли симулятор/эмулятор или инструмент, который может помочь мне в этом?

11
задан P̲̳x͓L̳ 10 August 2017 в 16:22
поделиться