使用Java进行数据库轮询

use*_*577 5 java

我被困在某些地方,我需要在Java代码中获得数据库更改.请求是在db的任何表中更新,添加,删除任何记录; 应该被Java程序识别.怎么可以实现JMS?还是Java线程?

更新:感谢大家的支持我实际上使用Oracle作为DB和Weblogic 10.3研讨会.实际上我想从一张表格中获取更新,其中我只有读取权限,所以大家都有什么建议.我无法更新数据库.我唯一能做的就是读取数据库,如果表中有任何变化,我必须得到某些数据行已被添加/删除或更新的信息/通知.

duf*_*ymo 8

除非数据库可以向Java发送消息,否则您必须有一个轮询的线程.

一个更好,更有效的模型将是一个触发变化事件的模型.内部运行Java的数据库(例如Oracle)可以做到这一点.


Enn*_*oji 6

我们通过使用EJB计时器任务轮询数据库来实现.从本质上讲,我们有一个状态字段,我们在处理该行时会更新.

因此,EJB计时器线程调用一个过程来抓取标记为"未处理"的行.

脏,但也非常简单和强大.特别是在发生碰撞事故之后,它仍然可以从崩溃的地方捡起来,而不会有太多的复杂性.

缺点是DB上的浪费负载,并且响应时间也将受到限制(可能需要几秒钟).