如何用Oracle触发器通知JBoss

时间:2012-06-16 09:49:48

标签: sql oracle hibernate jboss triggers

我需要实现以下内容:

有一个表A,它应该被来自另一个表B上的触发器的DML操作改变。

我想在每次触发器工作时通知Jboss bean。在最好的情况下,我希望有机会在bean中看到OLD和NEW数据。

最好的方法是什么?你能推荐一些材料吗?

2 个答案:

答案 0 :(得分:5)

Alex建议使用Database Change Notification可能是最好的方法。 这里有一些其他选项可用于从Oracle PL / SQL包(可以从触发器调用)向Oracle进程发送事件信号:

  • 使用DBMS_PIPE将消息异步发送到侦听同一管道的Java客户端。
  • 使用DBMS_ALERT向侦听目标警报的Java客户端发送消息。在事务提交之前,将不会收到该消息。
  • 使用UTL_HTTPUTL_SMTPUTL_TCP向侦听目标HTTP,SMTP或TCP端点的Java进程发送消息。
  • 向侦听目标队列/主题的Java客户端发送Oracle/AQ JMS消息。
  • 使用Java创建JMS客户端,并将load the java classes [和依赖项]创建到Oracle数据库中。将该类包装在PL / SQL过程中并调用它以通知侦听目标队列/主题的Java客户端。

在问题Calling/Using JMS from PL/SQL中有关于从PL / SQL发送JMS消息的更多信息。

答案 1 :(得分:0)

您可以让触发器在信号表中插入一行。

然后JBoss进程可以监视信号表,定期检查新信号。