Как очистить базу данных, не останавливая tomcat, используя Java - PullRequest
1 голос
/ 27 августа 2011

Я использую sql server и tomcat для своего веб-приложения. Чтобы обновить / очистить мою базу данных, я должен закрыть tomcat для успешной очистки Есть ли способ с помощью Java, что я могу очистить базу данных, не закрывая tomcat

Ответы [ 3 ]

2 голосов
/ 27 августа 2011

Вы можете прервать внешние подключения к вашей базе данных, используя:

USE master;
GO
ALTER DATABASE dbname SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
USE dbname;
GO
-- now you can perform your "database cleanup" as you are the only
-- user allowed in.

Когда вы закончите очистку:

USE master;
GO
ALTER DATABASE dbname SET MULTI_USER;
GO

Теперь, что происходит с пользователями, которые пытаются получить доступ кприменение в течение этого времени, и как кот реагирует, .Кажется, намного понятнее просто выключить tomcat, в зависимости от того, что вы хотите, чтобы пользователи видели во время очистки.

0 голосов
/ 27 августа 2011

Вы должны закрыть все соединения с базой данных, которые были открыты в ваших веб-приложениях tomcat.

Чтобы сделать это, не останавливая tomcat, вы должны как-то сказать своим веб-приложениям либо временно отключить их соединения с БД во время обновления базы данных (слишком много хлопот), либо просто просто закрыть веб-приложения, использующие соединения с базой данных, удалив их из папка веб-приложений.

Лучше всего использовать комбинацию из двух методов: подать сигнал веб-приложениям на отключение, а затем убить их.

0 голосов
/ 27 августа 2011

Вы можете выполнять команды SQL из своего кода Java, такие как DELETE и DROP TABLE

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...