我在Oracle数据库中有事件表。我想在将记录插入Oracle表时发送电子邮件通知。我正在使用Tomcat&我没有JMS或任何其他支持。
我需要在接下来的2.5周内完成这项工作。
我可以使用Oracle将队列中的数据排入队列的Oracle高级队列吗?但是我不确定我是否可以使用独立的Java程序来解决它?
任何人都可以通过示例示例向我推荐一些方法吗?
注意:我只能将JAVA用作我们的要求。
由于
答案 0 :(得分:2)
您是否必须使用Java发送电子邮件?在过去,我使用UTL_MAIL和触发器在插入行时从数据库中发送电子邮件。
您需要使用dbms_scheduler创建一个发送电子邮件的流程。 AQ当时是一种成本选择,所以我没有使用它。
ULT_MAIL
DBMS_SCHEDULER
Example showing how to send an email
您需要在Oralce数据库中获取UTL_MAIL,因为它不是默认安装的一部分,并且根据您的邮件服务器配置,将数据库添加到“安全发件人”列表中
答案 1 :(得分:1)
我从未这样做过,但您可以直接使用Java中的Oracle AQ。最糟糕的情况是,您可以编写一些PLSQL来使下一条消息出列,并从Java调用该标准存储过程。尝试谷歌搜索oracle AQ java。
对于您的问题,每次在表中插入行时,我都会使用触发器在队列中放置消息,或者更改用于插入表中的API,以便将消息排入队列。
然后你可以有一个单独的进程从队列中读取每条消息并发送电子邮件。
答案 2 :(得分:0)
完成它的一个更简单的方法是在该表上创建一个INSERT触发器,它将调用电子邮件存储过程到电子邮件通知。当然,您必须与您的电子邮件管理员合作,以确定要使用的正确电子邮件服务器地址/名称 - 如果交换使用邮件。举个例子。如果您需要有关脚本的帮助,请通过此帖告诉我。
答案 3 :(得分:0)
使用Oracle AQ将更容易完成任务。 检查链接 -
http://docs.oracle.com/cd/B10501_01/appdev.920/a96587/apexampl.htm#59717