Как отследить команды sql для конкретного подключения к db2? - PullRequest
0 голосов
/ 23 января 2010

Я нахожусь в процессе настройки центрального сервера сборки. Сервер отвечает за создание официальных артефактов сборки, которые будут развернуты во всех средах. Для одного из приложений есть шаг сборки, который записывает в базу данных. Во время развертывания нам нужно выполнить этот шаг сборки в соответствующей среде. Поскольку надежно воспроизвести этот этап компоновки позже трудно / дорого, родилась идея захватить sql-запуск только сценарием sql позднее во время развертывания.

У меня нет контроля над исходным кодом, который генерирует sql. Это Java-программа, которая использует Hibernate. Я еще не выяснил, куда поместить log4j.properties/log4j.xml для использования функции трассировки гибернации. И может быть проблема с подготовленными утверждениями, показывающими '?' вместо фактического значения.

Кто-нибудь имеет опыт работы с Activity Monitor DB2 и как его использовать? Или есть другие (более простые) варианты, такие как замена драйвера db2 в конфигурации гибернации? Я все еще хочу использовать драйвер DB2Dialect.

РЕДАКТИРОВАТЬ: У меня нет контроля над структурой базы данных. Структура базы данных может быть обновлена, или в будущем процесс может записать в другие таблицы. Это не должно повлиять на решение, которое я сейчас настраиваю.

Ответы [ 2 ]

0 голосов
/ 23 января 2010

Взгляните на p6spy:

P6Spy - платформа с открытым исходным кодом для поддержка приложений, которые перехватывают и при желании изменить базу данных заявления. Распределение P6Spy включает в себя следующие модули:

P6Log. P6Log перехватывает и регистрирует база данных заявлений любого приложения который использует JDBC. Это приложение особенно полезно для разработчиков отслеживать операторы SQL, создаваемые EJB-серверы, позволяющие разработчику написать код, который достигает максимума эффективность на сервере. P6Spy это предназначен для установки в считанные минуты и не требует никаких изменений кода.

http://www.p6spy.com/

0 голосов
/ 23 января 2010

Если таблица не существует / пуста до заполнения идентификатора, вы также можете экспортировать полученную таблицу, включая записи, и импортировать ее в свою производственную базу данных во время развертывания.

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

...