当数据库(Oracle)中的某一个表的某行记录有更新时,怎样及时的通知应用程序。
各位高手,请问:现在是需要实时监控数据库的某字段,当数据库(Oracle)中的某一个表的某行数据有更新时,需要通知应用程序,应该程序做相应的变更。注:程序是服务类型,会一...
各位高手,请问:
现在是需要实时监控数据库的某字段,当数据库(Oracle)中的某一个表的某行数据有更新时,需要通知应用程序,应该程序做相应的变更。
注:程序是服务类型,会一直跑,除了用spring添加定时任务,让应用程序每隔一段时间扫一次数据库来判断变化这种低效方法外,有没有能让ORACLE主动通知程序或者其他更好的方法??求指教。
PS:使用的是java+oracle。 展开
现在是需要实时监控数据库的某字段,当数据库(Oracle)中的某一个表的某行数据有更新时,需要通知应用程序,应该程序做相应的变更。
注:程序是服务类型,会一直跑,除了用spring添加定时任务,让应用程序每隔一段时间扫一次数据库来判断变化这种低效方法外,有没有能让ORACLE主动通知程序或者其他更好的方法??求指教。
PS:使用的是java+oracle。 展开
5个回答
展开全部
可以用DBMS_PIPE包利用管道和外部程序通信的。
具体用法:
使用dbms_pipe.create_pipe('mypipe'); 建立一个管道。
在表上建立触发器判断如果是某一行发生变更,使用dbms_pipe.send_message('MyMessage');
向管道发送消息
java做轮询使用dbms_pipe.receive_message('mypipe',15); 接收管道消息。如果有则显示更新。
管道不用了,使用dbms_pipe.remove_pipe('mypipe');将管道删除。
具体用法:
使用dbms_pipe.create_pipe('mypipe'); 建立一个管道。
在表上建立触发器判断如果是某一行发生变更,使用dbms_pipe.send_message('MyMessage');
向管道发送消息
java做轮询使用dbms_pipe.receive_message('mypipe',15); 接收管道消息。如果有则显示更新。
管道不用了,使用dbms_pipe.remove_pipe('mypipe');将管道删除。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用DBMS_PIPE包利用管道和外部程序通信的。
具体用法:
使用dbms_pipe.create_pipe('mypipe'); 建立一个管道
在表上建立触发器判断如果是某一行发生变更,使用dbms_pipe.send_message('MyMessage');
向管道发送消息
java做轮询使用dbms_pipe.receive_message('mypipe',15); 接收管道消息。如果有则显示更新。
管道不用了,使用dbms_pipe.remove_pipe('mypipe');将管道删除。
具体用法:
使用dbms_pipe.create_pipe('mypipe'); 建立一个管道
在表上建立触发器判断如果是某一行发生变更,使用dbms_pipe.send_message('MyMessage');
向管道发送消息
java做轮询使用dbms_pipe.receive_message('mypipe',15); 接收管道消息。如果有则显示更新。
管道不用了,使用dbms_pipe.remove_pipe('mypipe');将管道删除。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
oracle中数据变更无法自动推送到应用程序,只能通过应用程序定时扫描方式解决问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询