Как обнаружить события базы данных с, например, Java
Вопрос
Есть ли способ обнаружить события базы данных, например, вставить, обновлять и удалять, сравнимые с мониторами доступа к файлу, такими как jnotify (могут обнаруживать чтение, создавать, изменять файлы и каталоги)?
Ищете что-то вроде слушателей событий для базы данных, потому что я не хочу делать опрос.
Спасибо!
Решение
В общем нет. AFAIK, такого объекта не существует в JDBC или в стандартах SQL.
Это может быть возможно для определенных баз данных / конфигураций с использованием функций конкретной базы данных. Например, если база данных может быть настроена для запуска ARBTRARY Java-кода в триггере, вы сможете получить его для отправки события в систему Pubbub, которая доставит ее к вашему приложению.
Но я думаю, что было бы лучше изменить вашу код приложения-базы для создания самого событий.
Другие советы
Это зависит от используемой базы данных, поскольку некоторые позволяют вам запустить код, который позволил бы позвонить на сервер через триггер, но затем вы возьмете на эти модификации, поэтому вы хотите использовать WebService, который не отправляет никакой информации, чтобы ограничить удар производительности.
Он также зависит от того, если вы используете сервер, как тогда вы можете использовать ASPECTJ для мониторинга любого из запросов обновлений.