2011-12-19 4 views
0

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

Мне нужно закончить это в ближайшие 2.5 недели.

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

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

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

Благодаря

+0

Вы можете использовать PLSQL? –

+0

Да. Но я подумывал написать автономную программу java, которая получит сообщение из очереди, а затем я могу отправить электронное письмо. Я не уверен, что это можно сделать или нет. Но вот ссылка: http://docs.oracle.com/cd/B10500_01/appdev.920/a96587/apexampl.htm#59717 У меня может быть поток, который будет выполнять dequeue так, как показано в этом примере. Может ли кто-нибудь сказать мне, могу ли я это сделать? – Mike

ответ

1

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

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

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

0

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

2

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

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

ULT_MAIL
DBMS_SCHEDULER
Example showing how to send an email

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