4

我有一张包含事件详细信息的表格。新的记录将被另一个进程不断地插入到这个表中。该表有一个 Event-end-time 列。

我必须设计一种机制来调用 java 方法以在到达事件结束时间时处理事件。我有一些选择是:

  1. 持续查询数据库(每 1 分钟)并找到下一个要处理的最新报告并在到达结束时间时调用它。
  2. 找出 ORACLE 数据库中是否有任何内置机制来向 java 应用程序发送通知/Oracle itslef 在到达事件结束时间时调用 java 方法。

如果记录被插入/更新/删除(基于触发器),我已经看到了通知选项,但是到目前为止,如果要自定义通知条件(如果达到记录列中指定的时间),我还没有运气。

对此的任何建议将不胜感激。

问候, 迪帕克

4

2 回答 2

3

我所知道的最好的方法是通过Oracle AQ(一个 JMS 实现)

还有数据库更改通知,我没有任何经验,但可能是你所追求的,我相信它实际上是建立在 AQ 之上的。

于 2012-05-10T05:16:38.013 回答
1

/* 删除触发想法,因为事件结束数据已经在表中,并且当到达事件日期/时间时应该触发动作 */

由于您想在某个时间过去后触发您的事件,因此可以简单地添加一个开始日期与事件结束时间相同的 Oracle 调度程序作业。请参阅Oracle 文档站点上的CREATE_JOB 过程。Oracle Scheduler 非常强大,可以启动各种操作,如 pl/sql 代码、过程和 shell 脚本,可以使用凭据在本地和远程进行。

于 2012-05-10T05:54:18.897 回答