简体   繁体   English

Oracle ODP.NET对生产稳定吗?

[英]Is Oracle ODP.NET stable for Production?

I've been wandering on the net and I encountered a lot of message like this one http://geekswithblogs.net/rakker/archive/2006/10/31/95640.aspx 我一直在网上徘徊,遇到了很多这样的消息http://geekswithblogs.net/rakker/archive/2006/10/31/95640.aspx

ODP.NET and it's stability. ODP.NET及其稳定性。 Wow, ODP.NET 10.2.0.20 is not horribly stable yet. 哇,ODP.NET 10.2.0.20还不是很稳定。

I find rather astonishing that such big editor releases a product that is not stable but it seems so, so should ODP be used ? 如此大的编辑器发布的产品不稳定,但看起来确实如此,我感到非常惊讶,因此应该使用ODP吗? Is there anything more sure ? 还有什么确定的吗?

I always had the impression that Oracle doesn't care a great deal about .NET and MS technologies in general (which is understandable). 我总是给人一种印象,即Oracle一般不太关心.NET和MS技术(这是可以理解的)。 ODP.NET doesn't fit the ADO.NET 2.0 model very well (the way it handles transactions, command parameters bound by order rather than name...). ODP.NET不太适合ADO.NET 2.0模型(它处理事务,命令参数受命令而不是名称约束的方式...)。 But anyway, since Microsoft has deprecated its own Oracle provider (System.Data.Oracle), you don't really have a choice... Sure, there are third party ADO.NET providers for Oracle (like the one from DevArt ), but they're not free. 但是无论如何,由于Microsoft已经弃用了自己的Oracle提供程序(System.Data.Oracle),您实际上没有选择……当然,有一些针对Oracle的第三方ADO.NET提供程序(例如DevArt中的提供程序 ),但他们不是免费的。 So if you want a free ADO.NET Oracle provider, you're stuck with ODP.NET anyway 因此,如果您想要一个免费的ADO.NET Oracle提供程序,那么无论如何您都将被ODP.NET所困扰

To answer the question more directly : I wouldn't say that ODP.NET is not stable. 要直接回答这个问题:我不会说ODP.NET不稳定。 It might have a few bugs, but it's very widely used in production environments all over the world, which wouldn't be the case if it was really unstable. 它可能有一些错误,但是它在全世界的生产环境中得到了广泛使用,如果确实不稳定,情况就不会如此。 So I'd say it's quite unlikely that you will encounter major bugs. 因此,我想您不太可能遇到重大错误。

The post you are quoting is 2 years old. 您引用的帖子已经2岁了。 Current stable version is 11.1.0.7.20. 当前的稳定版本是11.1.0.7.20。 I haven't used it personally but I would use it for production. 我没有亲自使用过它,但是我会把它用于生产。

If there will be problems with that (or any other components of your application) the testing should find the problems before deployment. 如果该组件(或应用程序的任何其他组件)有问题,则测试应在部署之前发现问题。

Get the latest stable version from Oracle's site. 从Oracle网站获得最新的稳定版本。 But even then you'd realize that there are still connection leaks. 但是即使那样,您仍然会意识到仍然存在连接泄漏。 Even though the following steps might not solve your problems completely, they certainly help: 即使以下步骤可能无法完全解决您的问题,但它们肯定会有所帮助:

  1. Use the using(){} construct 使用using(){}构造
  2. Write a batch process to drop all connection to your db on a regular basis. 编写批处理过程以定期删除与数据库的所有连接。 In my experience every other week for a VERY BUSY website. 根据我的经验,每隔一周就要访问一个非常繁忙的网站。

Let me know if there is a better way! 让我知道是否有更好的方法!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM