我有一个java应用服务器使用JDBC与oracle 11.2数据库服务器通信。客户端的请求被发送到应用程序服务器,该服务器运行调用数据库中第一个存储过程的java方法。
我希望java方法在调用存储过程之后坐下来等待来自数据库的信号(该信号表明某些结果已准备好从数据库中检索)。
为了避免轮询数据库,可以使用DBMS_ALERT来通知java方法(或方法,因为多个实例可能正在运行,每个唯一用户一个实例),结果已准备好检索,在这种情况下,java方法可以继续执行其余的代码?
有人可以在这种情况下提供使用DBMS_ALERT的简单示例吗?也就是说,如何在数据库中配置它以便当表中的预定字段改变时(例如,到预定值,例如“完成”)发送警报,以及如何配置java方法使得它可以接收警报消息(包括如何处理此消息以检查其内容,例如if (received_message == 'done')
等)?
答案 0 :(得分:3)
这是我正在寻找的一个很好的例子:
https://web.archive.org/web/20111203004656/http://www.oracleutilities.com/Packages/dbms_alert.html
它显示了java应用程序如何使用DBMS_ALERT与Oracle数据库一起工作。
其他一些有用的参考链接:
http://www.morganslibrary.org/reference/pkgs/dbms_alert.html
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1101233460502