【问题标题】:Email notification on events - Oracle Queue事件的电子邮件通知 - Oracle 队列
【发布时间】:2011-12-20 17:16:35
【问题描述】:

我在 Oracle 数据库中有事件表。每当记录插入 Oracle 表时,我想发送电子邮件通知。我正在使用 Tomcat,但我没有 JMS 或任何其他支持。

我需要在接下来的 2.5 周内完成这项工作。

我可以使用 Oracle Advanced Queuing 将事件表中的数据排入队列吗?但是我不确定我是否可以使用独立的 Java 程序将其出列?

谁能通过示例向我推荐一些实现此目的的方法?

注意:我只能将 JAVA 用作我们的要求。

谢谢

【问题讨论】:

  • 你可以使用plsql吗?
  • 是的。但我正在考虑编写独立的 java 程序,它将从队列中获取消息,然后我可以发送电子邮件。我不确定这是否可以完成。但这里是链接:docs.oracle.com/cd/B10500_01/appdev.920/a96587/… 我可以运行一个线程,它将按照本示例中显示的方式执行出列。有人可以告诉我是否可以通过方式做到这一点吗?

标签: java oracle jms oracle11g tomcat6


【解决方案1】:

您必须使用 Java 发送电子邮件吗?过去,当插入一行时,我使用 UTL_MAIL 和触发器从数据库中发送电子邮件。

您需要创建一个发送电子邮件的进程,可以使用 dbms_scheduler。 AQ 当时是一种成本选项,所以我没有使用它。

ULT_MAIL
DBMS_SCHEDULER
Example showing how to send an email

您需要在 Oralce 数据库中安装 UTL_MAIL,因为它不是默认安装的一部分,并且根据您的邮件服务器的配置,将数据库添加到您的“安全发件人”列表中

【讨论】:

    【解决方案2】:

    我从未做过,但您可以直接从 Java 中使用 Oracle AQ。最坏的情况是,您可以编写一些 PLSQL 来使下一条消息出列并从 Java 调用该标准存储过程。尝试搜索 oracle AQ java。

    对于您的问题,我会使用触发器在每次将行插入表时将消息放入队列,或者更改用于插入表的 API 以将消息排入队列。

    然后您可以有一个单独的进程,从队列中读取每条消息并发送电子邮件。

    【讨论】:

      【解决方案3】:

      完成它的一种更简单的方法是在该表上创建一个 INSERT 触发器,这将调用电子邮件存储过程到电子邮件通知。当然,您必须与您的电子邮件管理员一起确定要使用的正确电子邮件服务器地址/名称 - 如果交换使用邮件。举个例子。如果您需要脚本方面的帮助,请通过这篇文章告诉我。

      【讨论】:

        【解决方案4】:

        使用 Oracle AQ 将更容易完成任务。 检查链接-

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-03-25
          • 2017-05-31
          • 2022-08-13
          • 1970-01-01
          • 2011-12-16
          • 2015-11-26
          • 1970-01-01
          相关资源
          最近更新 更多