我需要实现以下内容:
有一个表 A,它应该被来自另一个表 B 上的触发器的 DML 操作更改。
我想在每次触发器工作时通知Jboss bean。在最好的情况下,我希望有机会查看 bean 中的旧数据和新数据。
最好的方法是什么?您能推荐一些阅读 Material 吗?
最佳答案
Alex 建议使用 Database Change Notification可能是最好的方法。 以下是从 Oracle PL/SQL 包(您可以从触发器调用)向 Java 进程发出事件信号的操作的一些其他选项:
- 使用DBMS_PIPE异步向监听同一管道的 Java 客户端发送消息。
- 使用DBMS_ALERT向监听目标警报的 Java 客户端发送消息。在事务提交之前不会收到该消息。
- 使用UTL_HTTP或UTL_SMTP或UTL_TCP向监听目标 HTTP、SMTP 或 TCP 端点的 Java 进程发送消息。
- 发送 Oracle/AQ JMS向监听目标队列/主题的 Java 客户端发送消息。
- 使用 Java 创建 JMS 客户端并 load the java classes [和依赖项] 到 Oracle 数据库中。将类包装在 PL/SQL 过程中,并调用它来向监听目标队列/主题的 Java 客户端发出信号。
问题 Calling/Using JMS from PL/SQL 中有更多关于从 PL/SQL 发送 JMS 消息的信息。 .
关于sql - 如何用Oracle触发器通知JBoss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11062404/