- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
CREATE MATERIALIZED VIEW LEASE_NODES_SUMMARY_SDS
...
AS
SELECT
...
FROM lease_nodes_sds;
DECLARE
v_count NUMBER:=0;
BEGIN
LOOP
SELECT COUNT(1) INTO v_count FROM lease_nodes_summary_sds;
EXIT WHEN v_count>0;
END LOOP;
END;
у меня было такое впечатление что базы так и не научились делать real-time notifications. и не собираются, потому что, типа, они только данные хранят и все. (это отмазка которую я от оракла слышал.)
там есть уведомления, но не real-time:
Oracle Streams Advanced Queuing называется - очередь сообщений с транзакциями и гарантированной доставкой, позволяет вешать различные callback'и (в т.ч. и pl/sql).
лехко интегрируется с другими реализациями очередей (напрямую с JMS, или через messaging gateway с другими реализациями очередей)
Если чо в рил-тайме надо, то через триггеры.
что бы вот до таких дрочений как в ГК не опускатся.
у нас в проекте есть пара модулей которые раз в секунду данные опрашивают в базе. тоже говно. почему у нас народ и забацал свою in-memory DB со всеми причиндалами, используя RDBMS только как бэкап. но для пары вещей та пара модулей так и остались - тихо в сторонке дрочат запросами в вечном цикле - база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных, база дай данных...
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_alert.htm
не вижу как сделать M читающий приложений и N пишущих приложений, ну да это пока сам руками не пощупаешь - не въедешь.
Тоже распространенная задача, например *сообщения пользователя*.
Решается либо процедурами и полным ограничением на привычные CRUD операции.
Либо опять же сервисом. (В большинстве случаев это web-сайт).
---
Или я не прав? Есть еще варианты решения?
В Oracle (с 8i) есть Fine Grained Access Control. Уверен что и в других СУБД есть что-то подобное.
Неужели Вы думаете что Вы первый столкнулись с этой (или любой другой) задачей?
То с чем сталкивается большинство уже десятки (если не сотни раз) было решено. Просто откройте глаза и посмотрите вокруг. И найдете вариант, подходящий для Вашей задачи.
В моём случае Firebird и MSSQL. Про то, что в oracle что-то есть слышал, но так же слышал, что это больше фитча, чем решение.
Я правда может не нашел.
Вот вопрос мой:
http://social.msdn.microsoft.com/Forums/ru-RU/fordataru/thread/99539982-e063-4679-8232-bcf15c8cc9ab
Там отправили на ответ:
http://social.msdn.microsoft.com/Forums/ru-RU/fordataru/thread/21a0b5dc-b33a-4fe1-a662-046d6624cf40
Где советуют WCF.
PS
Еще появилась ссылка на http://technet.microsoft.com/en-us/library/cc966395.aspx
"Implementing Row- and Cell-Level Security in Classified Databases Using SQL Server 2005"
. Посмотрю её тоже.
Я звоню - вызываю такси.
Мне отвечают - "Ваш заказ принят, звоните каждую минуту спрашивайте подъехала ли машина."
На моё удивлённое - "Ни х...я себе!"
Мне отвечают - "Это хорошая реализация. У всех клиентов каждую минуту актуальная информация", "А как Вы узнаете что за Вами приехали" и "Это не дело нашей фирмы раздавать real-time notifications"
Со мной такого не случалось, но если случится я подумаю, что попал в компанию идиотов, и буду вызывать такси в другой фирме.
P.S. у меня намек не слишком тонкий?
Зачем "real-time notifications"? Что хотите получить? Может стоит пересмотреть архитектуру приложения?