Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Актуальные способы опроса БД


Автор: Torsten 26.10.2011, 12:08
В oracle я разбираюсь достаточно плохо (не моя специализация), поэтому и пишу сюда, чтобы получить пищу для размышлений.

Есть приложение (С++), которое в некоторый промежуток времени (предположим 1 сек) опрашивает базу на предмет наличия неких транзакций, которые потом обрабатывает и отдает результат обратно базе. Хочется переделать этот анархаизм в какую-нибудь систему месседжинга/сигналов. Какие актуальные способы/технологии предоставляет судб oracle сейчас для этого? 

Естественно вряд ли есть механизмы отправлять из базы oracle запросы куда-нибудь, да еще и по какому-нибудь протоколу (а вдруг, оказалось что есть smile), и хочется узнать, а как это делается в цивилизованном мире, или сейчас все так же, тревожим базу в какой-то интервал времени и забираем из очереди транзакции?

Автор: LSD 26.10.2011, 12:16
Цитата(Torsten @  26.10.2011,  13:08 Найти цитируемый пост)
Есть приложение (С++), которое в некоторый промежуток времени (предположим 1 сек) опрашивает базу на предмет наличия неких транзакций, которые потом обрабатывает и отдает результат обратно базе. Хочется переделать эту анархаизм в какую-нибудь систему месседжинга/сигналов. Какие актуальые способы/технологии предоставляет судб oracle сейчас для этого? 

http://download.oracle.com/docs/cd/B28359_01/server.111/b28420/toc.htm как он там в С++ выглядит я не знаю, но в Java это обычный JMS.

Автор: Torsten 26.10.2011, 14:25
Java тоже подойдет, спасибо.

Автор: Zloxa 26.10.2011, 14:48
Интересно, как вы из постановки заключили, что вообще требуется хоть что-то помимо самого оракла?  smile 

Автор: Torsten 26.10.2011, 17:53
Честно, не понял вопроса. Или это легкий троллинг smile ?

Автор: Zloxa 27.10.2011, 17:06
Цитата(Torsten @  26.10.2011,  17:53 Найти цитируемый пост)
Честно, не понял вопроса

Я тоже, потому и возник у меня вопрос, на основании чего же даются ответы.

Автор: LSD 27.10.2011, 18:05
Цитата(Zloxa @  27.10.2011,  18:06 Найти цитируемый пост)
на основании чего же даются ответы

Цитата(Torsten @  26.10.2011,  13:08 Найти цитируемый пост)
Хочется переделать этот анархаизм в какую-нибудь систему месседжинга/сигналов.


Автор: Zloxa 27.10.2011, 22:04
Цитата(LSD @  27.10.2011,  18:05 Найти цитируемый пост)
какую-нибудь

Да, понял. Это про жаву - точно.  smile 

Впрочем, если без подколов, если нужно просто считать, обработать, сохранить, зачем вообще за пределы базы выпускать, что то внешнее допиливать?
Ну если там упаковка/распаковка, конверсия картинок или что-то еще, то - да, dbms_photoshop'а нет и не будет, тут жава уместна будет, но к тому ведь нет никаких предпосылов.

Я бы топикстартеру банальную жобу присоветовал б для начала.

Автор: LSD 28.10.2011, 10:00
Цитата(Zloxa @  27.10.2011,  23:04 Найти цитируемый пост)
зачем вообще за пределы базы выпускать, что то внешнее допиливать?

Цитата(Torsten @  26.10.2011,  13:08 Найти цитируемый пост)
Есть приложение (С++), которое в некоторый промежуток времени (предположим 1 сек) опрашивает базу на предмет наличия неких транзакций, которые потом обрабатывает и отдает результат обратно базе.

Ключевое слово есть. Вместо того чтобы просто исправить кривую работу с базой, ты предлагаешь переписать все с нуля и на PL/SQL, это конечно тру дба подход, но как правило кроме дба его никто не понимает и не приветствует. Плюс неизвестно насколько сложная обработка там производится, и какие еще внешние системы в это вовлечены.

Автор: Zloxa 28.10.2011, 10:09
Цитата(LSD @  28.10.2011,  10:00 Найти цитируемый пост)
неизвестно насколько сложная обработка там производится, и какие еще внешние системы в это вовлечены. 

Вот именно этот довод мне не позволяет заключить что "есть", означает "надо".
Интуиция мне подсказыает что на основе транзакций тупо считаются аггрегаты. Тут быть может и просто матвью с фастрефрешем по коммиту сойдет.

Цитата(LSD @  28.10.2011,  10:00 Найти цитируемый пост)
конечно тру дба подход, но как правило кроме дба его никто не понимает и не приветствует

Причем здесь ДБА? Тру ДБА не занимаются реализацией  логики.

Добавлено @ 10:20
Цитата(LSD @  28.10.2011,  10:00 Найти цитируемый пост)
Вместо того чтобы просто исправить кривую работу с базой

Для начала надо бы определиться по каким критериям определяется кривость и что не устраивает в ежесекундном опросе данных. Если в большем количестве запусков там таки находятся данные для обработки, то пусть так и будет. Если же данные поступают раз в сутки, может быть стоит изменить интревал опроса. Если же данные таки трбеуют супер-пупер оперативной обработки, можно просто добавить ожидание на алерте и не надо городить огород с AQ, который будет делать то же самое.

Цитата(LSD @  28.10.2011,  10:00 Найти цитируемый пост)
ты предлагаешь переписать все с нуля и на PL/SQL

Ты предлагаешь переписать все с нуля на Java

Автор: Zloxa 28.10.2011, 10:26
Короче тут много поводов для буйной фантазии.

Автор: LSD 28.10.2011, 10:37
Цитата(Zloxa @  28.10.2011,  11:09 Найти цитируемый пост)
Вот именно этот довод мне не позволяет заключить что "есть", означает "надо".
Интуиция мне подсказыает что на основе транзакций тупо считаются аггрегаты. Тут быть может и просто матвью с фастрефрешем по коммиту сойдет.

Ты не знаешь, что там делается, но вместо того чтобы просто уточнить, решил сразу сделать выводы на основе своей интуиции. Есть сомнения? Задай уточняющий вопрос, в чем проблема.



Цитата(Zloxa @  28.10.2011,  11:09 Найти цитируемый пост)
Причем здесь ДБА? Тру ДБА не занимаются реализацией  логики.

Но любят другим указывать, как должно работать с их ненаглядной базой smile 



Цитата(Zloxa @  28.10.2011,  11:09 Найти цитируемый пост)
Для начала надо бы определиться по каким критериям определяется кривость и что не устраивает в ежесекундном опросе данных. Если большее количество запуска там находятся данные для обработки, то пусть так и будет. Если нет, можно просто добавить ожидание на алерте и не надо городить огород с AQ, который будет делать то же самое.

Кривизна состоит в том, что делается свой велосипед вместо использования стандартного решения.



Цитата(Zloxa @  28.10.2011,  11:09 Найти цитируемый пост)
Ты предлагаешь переписать все с нуля на Java

Я такого не предлагал. Я писал что со стороны Java - AQ выглядит как стандартный Java Message Service, а как он там выглядит со стороны C++ я не знаю. Почему-то из этого был сделан вывод, что надо все переписать на Java. AQ доступен через OCI и никто не запрещает его использовать из C++.

Автор: Zloxa 28.10.2011, 11:04
Цитата(LSD @  28.10.2011,  10:37 Найти цитируемый пост)
Я такого не предлагал

Да, я не правильно тебя понял. Прошу прощения.
Но и я не предлагал переписывать все на pl/sql.

Цитата(LSD @  28.10.2011,  10:37 Найти цитируемый пост)
Задай уточняющий вопрос, в чем проблема

Я его и задал. smile 

Цитата(LSD @  28.10.2011,  10:37 Найти цитируемый пост)
Но любят другим указывать, как должно работать с их ненаглядной базой

Жалко мой ДБА в этом отношении исключение. Если бы он был менее равнодушен, уверен, я бы писал еще более эффективные приложения. smile  

Автор: LSD 28.10.2011, 12:57
Цитата(Zloxa @  28.10.2011,  12:04 Найти цитируемый пост)
Я его и задал.

Ты хочешь сказать потроллил smile 


Цитата(Zloxa @  28.10.2011,  12:04 Найти цитируемый пост)
Жалко мой ДБА в этом отношении исключение. Если бы он был менее равнодушен, уверен, я бы писал еще более эффективные приложения.

Заставить бы тебя писать объяснение на каждую колонку в таблице и на каждый грант, чтобы проникся smile 

Автор: Zloxa 28.10.2011, 13:57
Цитата(LSD @  28.10.2011,  12:57 Найти цитируемый пост)
Ты хочешь сказать потроллил

Где? smile 
Ты предвзят. smile 
Как и я, когда подумал что это ты меня жабой троллишь. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)