Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Odp.Net-取决于客户端和服务器_C#_Sql_Oracle_Odp.net - Fatal编程技术网

C# Odp.Net-取决于客户端和服务器

C# Odp.Net-取决于客户端和服务器,c#,sql,oracle,odp.net,C#,Sql,Oracle,Odp.net,我有一个理论上的问题。 我的应用程序使用Odp.Net。我添加为参考文件Oracle.DataAccess.dll版本2.112.3.0。 我正在使用Odp.Net查询数据库和注册表查询通知。 在每台计算机上,我都从安装ODAC 11.2版本5(11.2.0.3.20) 我想知道我的Odp.Net版本、Oracle客户端版本(可安装在客户端计算机上)和Oracle服务器版本之间的依赖关系 问题是,在注册查询通知后,我可以在USER\u CHANGE\u notification\u REGS表中

我有一个理论上的问题。 我的应用程序使用Odp.Net。我添加为参考文件Oracle.DataAccess.dll版本2.112.3.0。 我正在使用Odp.Net查询数据库和注册表查询通知。 在每台计算机上,我都从安装ODAC 11.2版本5(11.2.0.3.20)

我想知道我的Odp.Net版本、Oracle客户端版本(可安装在客户端计算机上)和Oracle服务器版本之间的依赖关系

问题是,在注册查询通知后,我可以在USER\u CHANGE\u notification\u REGS表中看到行。但几秒钟后,此通知被取消注册并消失。我读到这与版本问题有关,但我不明白我必须做什么

我的目标是在我的应用程序中使用相同的Odp.Net文件(Oracle.DataAccess.dll+一些额外的依赖项,如oci.dll等)

ODP版本已解密

a、 b.c.d(例如2.112.3.0):

  • (2.Net版本(在您的情况下为2.0以上)
  • b(112)Oracle客户端版本(您的情况下为11.2+)
  • c、 d(3,0)ODP版本(适用于Oracle客户端11.2的.Net 2.0 ODP的3d版本)

另一个示例:“4.100.1.0”-ODP for.Net 4.0+和Oracle Client 10.0+第一版

在11.2.0.1数据库中有一个关于更改通知的错误

以下SQL使Oracle避免使用旧版本的错误代码路径,但建议您升级数据库:

更改系统设置事件“10867跟踪名称上下文永久,级别1”

这并不是一个永久的解决办法。您应该将ODP.NET和修补程序数据库升级到最新的11.2修补程序集

克里斯蒂安·谢伊

Oracle已解决 Oracle server版本11.2.0.1.0和11.2.0.2.0有一个bug。若客户端在其他版本中注册事件,它将在第一次数据库更改后自动注销。要解决此问题,我必须使用persistant命令:
alter system set event='10867 trace name context FORVER,级别1,COMMENT='komentarz'SCOPE=SPFILE

那么,为什么在服务器10.2.0.4.0和客户端10.2.0.3.0上的更改通知工作得很好,但在服务器11.2.0.1.0和客户端10.2.0.3.0上它不工作(就像我在几秒钟后从db编写的通知dissapear)。在这两种情况下,我都使用相同的odp 2.112.3.0我知道您的解决方案,但1)当服务器处于11.2.0.2版本时,我仍然没有收到通知2)在更改系统后。。。所有这些都能正常工作,但只有在我重新启动服务器的时候才能正常工作。我能解决这个问题并添加永久性的系统更改吗?如果这个更改系统修复了这个问题,那么您就遇到了错误。除了要升级的数据库外,还必须升级ODP.NET以修复该错误。我认为在发行说明中应该提到这一点。上述解决方案是一种变通方法,不应长期依赖。正确的修复方法是修补数据库和odp.net客户端。这是一个非常老的bug,最新的补丁集将修复它。