Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мониторинг БД, MySQL, ByteFX 
:(
    Опции темы
VisualProgrammerNET
Дата 21.7.2006, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Не знал, в какой раздел задать вопрос. Пусть будет в этом.

Пишу программу, которая будет удалённо управлять сайтом (т.е. посылать к БД сайта запросы, тем самым, управляя содержимым страничек сайта). Суть в том, что надобно постоянно следить за изменениями БД. Например, когда в некой таблице БД появляется новая строка, приложение должно отреагировать на это сообщением. Есть ли какой-нибудь эвент или как можно реализовать такой мониторинг? Не посылать же каждые пять секунд запросы к БД с целью сканирования всего и вся?

ЗЫ. Для коннекта использую ByteFX 


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
arilou
Дата 21.7.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



VisualProgrammerNET, только по таймеру проверять БД. Других путей для MySql нет. 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
VisualProgrammerNET
Дата 21.7.2006, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Кошмар...  smile  


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
Kefir
Дата 21.7.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 2
Всего: 87



да. придётся сканить. нету, по-моему таких механизьмов.
ну добавь в таблицы поле updated или new будевское - типа флаг. выставь по дефолту его в true и делай выборки каждый раз по нему, затем ставь флаг в false. не надо будет перебирать всё и вся. 
PM MAIL WWW Skype   Вверх
Evghenii
Дата 21.7.2006, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 25.6.2006
Где: Молдова, Кишинёв

Репутация: нет
Всего: нет



Цитата

Других путей для MySql нет. 


А есть какие-нибудь БД где этот механизм реализован? 
PM MAIL WWW   Вверх
Kefir
Дата 21.7.2006, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: 2
Всего: 87



Evghenii, не знаю таких... 
PM MAIL WWW Skype   Вверх
VisualProgrammerNET
Дата 21.7.2006, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Ну я и собирался сделать с true/false. Просто я думаю, если по 10 раз в минуту запросы делать, нагрузка на БД большая получится... хотя хз... 


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
arilou
Дата 22.7.2006, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Evghenii, Sql Server 2005. 
Цитата(VisualProgrammerNET @  21.7.2006,  20:45 Найти цитируемый пост)
если по 10 раз в минуту запросы делать

Да это фигня для нормальной СУБД. 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
mr.DUDA
Дата 22.7.2006, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Evghenii @  21.7.2006,  20:06 Найти цитируемый пост)
А есть какие-нибудь БД где этот механизм реализован?

Есть. 

В MS SQL Server есть такая штука как trigger - это хранимая процедура, которая автоматически выполняется при обновлении (или создании, или удалении) записи в указанной таблице.  


--------------------
user posted image
PM MAIL WWW   Вверх
Evghenii
Дата 22.7.2006, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 64
Регистрация: 25.6.2006
Где: Молдова, Кишинёв

Репутация: нет
Всего: нет



Цитата

В MS SQL Server есть такая штука как trigger - это хранимая процедура, которая автоматически выполняется при обновлении (или создании, или удалении) записи в указанной таблице.  


А разве триггер может вызвать событие в программе? 
PM MAIL WWW   Вверх
mr.DUDA
Дата 22.7.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Evghenii @  22.7.2006,  20:49 Найти цитируемый пост)
А разве триггер может вызвать событие в программе? 

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

Добавлено @ 21:27 
З.Ы. но можно копнуть в сторону Notification Services, встроенных в SQL Server. 


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 22.7.2006, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Evghenii, mr.DUDA, цитирую сам себя

Цитата(arilou @  22.7.2006,  14:11 Найти цитируемый пост)
Evghenii, Sql Server 2005. 


Добавлено @ 21:36 
В 2000 Notification Services хромые - они внутри себя сами по таймеру проверяют, нет ли изменений  smile  


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
mr.DUDA
Дата 22.7.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Значит 2005-й SQL Server, и всё. 


--------------------
user posted image
PM MAIL WWW   Вверх
VisualProgrammerNET
Дата 24.7.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Почётный халявщик
**


Профиль
Группа: Участник
Сообщений: 461
Регистрация: 30.10.2005
Где: Зеленоград

Репутация: 4
Всего: 6



Это MS. А я юзаю мускул.

И ещё вопрос почти по теме.
Где лучше хранить переменные, содержащие имя сервера, имя юзера, пароль и прочее? В виде локальных переменных? Или где-то отдельно? Просто программа, в перспективе, будет распространяться среди множества пользователей, и не дай бог кто выведает пароль от сервера =) Конечно... можно создать нового пользователя БД... но всё равно, где лучше хранить такие "важные" данные, чтобы люди не прознали? 


--------------------
3 ГОДА НА user posted image 
PM MAIL ICQ   Вверх
mr.DUDA
Дата 24.7.2006, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(VisualProgrammerNET @  24.7.2006,  21:18 Найти цитируемый пост)
Где лучше хранить переменные, содержащие имя сервера, имя юзера, пароль и прочее? В виде локальных переменных? Или где-то отдельно?

Вопрос, конечно, интересный ©

Обычно эти данные хранятся в конфиге на сервере. Для IIS это web.config, для PHP это обычный заголовочный файл. Так как к этому файлу  юзер не имеет доступа, проблема безопасности снимается. Но в данном конкретном случае, когда есть множество приложений, работающих с БД, я бы например добавил прослойку между базой данных и клиентскими приложениями - в виде веб-сервисов. Тогда аутентификация между БД и приложениями напрямую производиться не будет, а только через business layer. И у каждого юзера будет свой логин и пароль, под которыми он будет обращаться к веб-сервису (можно, например, добавить данные аутентификации в каждый веб-метод, или даже написать своё расширение). Логин и пароль можно будет хранить в отдельной таблице БД - логин будет ключом, а пароль будет храниться в захешированном поле (в MySQL даже отдельный тип полей на это есть). 


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0552 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.