Уведомление по электронной почте о событиях - Oracle Queue - PullRequest
0 голосов
/ 20 декабря 2011

У меня есть таблица событий в базе данных Oracle. Я хочу отправлять уведомления по электронной почте всякий раз, когда запись вставляется в таблицу Oracle. Я использую Tomcat, и у меня нет JMS или какой-либо другой поддержки.

Мне нужно закончить это в следующие 2,5 недели.

Можно ли использовать Oracle Advanced Queuing, в которой Oracle будет ставить в очередь данные из таблицы событий? Но я не уверен, смогу ли я снять его с автономной Java-программы?

Может ли кто-нибудь порекомендовать мне несколько способов добиться этого на примере примера?

Примечание: я должен использовать JAVA только как требование для нас.

Спасибо

Ответы [ 4 ]

2 голосов
/ 20 декабря 2011

Вам нужно использовать Java для отправки электронной почты?В прошлом я использовал UTL_MAIL и триггер для отправки электронных писем из базы данных, когда была вставлена ​​строка.

Вам потребуется создать процесс для отправки электронной почты, возможно с использованием dbms_scheduler.В то время AQ был опцией стоимости, поэтому я его не использовал.

ULT_MAIL
DBMS_SCHEDULER
Пример, показывающий, как отправитьэлектронная почта

Вам нужно будет установить UTL_MAIL в базе данных Oralce, так как он не является частью установки по умолчанию и, в зависимости от конфигурации вашего почтового сервера, к вам будет добавлена ​​база данных.список «надежных отправителей»

1 голос
/ 20 декабря 2011

Я никогда не делал этого, но вы можете напрямую использовать Oracle AQ из Java.В худшем случае вы могли бы написать несколько PLSQL для удаления очередного сообщения и вызвать эту стандартную хранимую процедуру из Java.Попробуйте поискать googling для oracle AQ java.

Для вашей проблемы я бы либо использовал триггер для помещения сообщения в очередь каждый раз, когда строка вставляется в таблицу, либо изменил API, используемый для вставки в таблицу, натакже поместите сообщение в очередь.

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

0 голосов
/ 20 декабря 2011

Использование Oracle AQ будет намного проще выполнить задачу. Проверьте ссылку -

http://docs.oracle.com/cd/B10501_01/appdev.920/a96587/apexampl.htm#59717

0 голосов
/ 20 декабря 2011

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

...