当前位置: 首页 > 面试题库 >

Oracle表更改监视器

华建同
2023-03-14
问题内容

我有一个Java应用程序连接到远程Oracle数据库上的视图。

有谁知道Java中监视此表更改的方法吗?即,如果有更新的插入等,我需要做出反应。


问题答案:

您可以在表上放置INSERT / UPDATE / DELETE触发器,以在对表进行“数据”更改时执行某些操作。(而不是更改表的结构)

我相信10g也支持视图触发器。

但是我不确定您如何通过轮询来通知其他Java进程。

抱歉。

您可能会创建一些解决方案,其中Java应用程序具有“侦听”服务器,而数据库会将其推回一条消息。但这听起来很难维持。

贾斯汀·凯夫(Justin
Cave)
在评论中建议您可以配置Oracle
Streams来发送Java应用程序可以通过JMS订阅的逻辑更改记录(LCR)。或者触发器可以将记录写入Java可以通过JMS订阅的Advanced
Queue。

您仍然需要对Oracle转换保持警惕。由于Oracle事务的工作方式,触发器将在更改时触发,但它也可能触发多次。

并且在任何情况下,除非执行了提交,否则Java应用程序将无法“看到”更改。



 类似资料:
  • 问题内容: 我正在编写一个bash脚本,我想监视文件在目录中的更改(添加,删除和重命名),并相应地执行不同的操作。 有没有一种方法可以直接从我的脚本中执行此操作(除了定期创建目录和make之外)? 问题答案: 您可以使用以下命令(假设您的发行版支持inotify,大多数情况下这样做):

  • 问题内容: 就像一个类似的SO问题一样,我正在尝试监视Linux机器上的目录以添加新文件,并希望在这些新文件到达时立即对其进行处理。关于实现此最佳方法的任何想法? 问题答案: 看inotify。 使用inotify,您可以监视用于文件创建的目录。

  • 问题内容: 我正在使用WatchService来监视目录中的更改,尤其是在目录中创建新文件。下面是我的代码- 当我在“ mk”目录中创建文件时,我正在收到通知。但是,当我在此目录中复制某些文件时,打开该复制文件时出现异常。 我的猜测是Windows Copier对话框仍然锁定了该文件,而我无法打开该文件。因此,基本上我想知道是如何通知文件已被其他进程关闭。 上面代码的输出就像- 我已创建文件“ ”

  • 问题内容: 是否可以“监视”指令上的ui更改?像这样的东西: 问题答案: 是。您可以使用,如果你在属性利用插值。 但是,如果这不是一个插值属性,并且您希望它可以从应用程序中的其他位置更改(绝对不建议这样做,请阅读Common Pitfalls ),那么函数可以返回: 无论如何,对您来说最好的方法可能是更改更改元素类的代码。它何时更改?

  • 问题内容: 我正在使用node.js服务器在Web应用程序和数据库之间创建一个“接近实时”套接字。当前,我使用的是MySQL,它每秒在节点中轮询一次,以检查表是否有任何更改(基于时间戳)。 我想知道是否有使用MySQL进行此类操作的特定技术?目前,我只是在运行SQL查询并在下一次轮询之前使用setTimeout。 我知道在这样的实例中使用NoSQL数据库更为普遍,但我对技术并不满意,我宁愿使用SQ

  • 问题内容: 根据PROC手册,可以监控用于通过开口安装点的变化在linux系统“的/ proc /安装”,以及将所述的文件描述符读取在呼叫。 以下代码可在Ubuntu 9.04上运行,而不能在Ubuntu 10.04(带有2.6.32 linux内核)上运行: 可编译的代码段。 文件描述符始终在一台机器上可读,因此在select调用中会不断弹出。即使坐骑没有变化。 我在这里想念什么吗? 在此先感谢