练了五年的实习生 2019-01-07 14:45 采纳率: 0%
浏览 710

C#使用OracleDependency不触发

1.Oracle服务器版本11.2.0.1

2.数据库用户赋值change notification权限。

需求对某个表的数据的变化情况进行监听,网上介绍说使用OracleDependency类,我照着做了,但是一直不触发,请问有没有做过的?是我哪里漏掉了吗?

图片说明
图片说明

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 09:11
    关注

    首先,我们需要确认一下代码中使用的Oracle.DataAccess是否是最新的版本。其次,我们需要检查一下数据库的配置是否符合要求,例如DBMS_AQADM包是否已经授权给了当前用户。此外,我们还需要确保数据库中启用了Change Notification功能。

    关于C#使用OracleDependency不触发的问题,还有以下一些可能的原因:

    1. 数据库的配置参数设置不正确。比如,MAX_DISPATCHERS和MAX_QUEUESIZE参数的值可能设置得不正确。
    2. 数据库已经在侦听请求,但是OracleDependency的实例已经被垃圾回收清除掉,因此无法收到通知。
    3. 数据库的缓存中可能还存在相同的查询语句,缓存中的结果可能会被返回,而不会触发实际的查询操作。
    4. C#代码中可能存在某些错误,比如事件处理器可能没有正确注册、可能因为多线程问题导致程序出现竞争条件等等。

    在排查问题时,可以尝试使用SQL Trace功能来查看数据库与C#应用程序之间的通信,以便更准确地定位问题的根本原因。同时,也可以参阅一些官方文档与学习资源,例如Oracle官方文档、Stack Overflow等开源社区,以便更好地解决该问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换