我有一个想法是创建一个小型Java桌面应用程序,当它在oracle db中找到新记录时显示通知。
我不希望所有桌面客户端都运行查询,所以我想我会做的是创建一个运行查询的主进程,让所有其他进程知道何时显示通知。
我仅限于Oracle 9i,因此我无法使用更改通知。 AskTom说dbms_alert是Oracle 9i的一个很好的替代品。
所以从我现在的想法是,我将编写一个sqlplus脚本来运行crontab,它将定期运行一个查询,然后发出一个dbms_alert。
对于我的桌面应用程序,我有点困惑。 dbms_alert有像waitany和waittone这样的方法。这是否意味着我的桌面应用程序需要将实时活动会话保持为数据库,以便他们接收dbms_alerts?
我不能让我的桌面应用程序定期连接到数据库并获取他们尚未接收到的任何警报吗?
由于
答案 0 :(得分:1)
我会创建一个执行查询的db作业。此外,我会创建一个维护表,在那里留下通知,包括。如果找到新的recored,则为timestamp。每个(Java)客户端都有自己的维护表最后一次查询的时间戳,因此如果找到新的recored,则会进行注册。但是您必须确保每个客户端在特定时间段内对维护表进行查询。