- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在一个站点上,我可以使用SQL Developer连接到Oracle数据库,将其长时间闲置(例如,> 60分钟),然后返回,就可以了。在第二个站点上,如果它闲置超过5-10分钟(我还没有确切计算),它将使SQL Developer处于新操作将超时的状态,我需要手动“断开连接”,然后按顺序重新连接做任何有用的事情。这似乎是第二个站点的连接超时,我不知道是什么原因造成的(尽管我不是主要问题,但我想知道如何将其关闭)。
我的程序使用ODP.NET并处理突发数据。每隔30分钟(出于讨论目的),它将处理一堆数据,其中涉及许多重复的连接。它还使用连接池。我将连接池设置为使用5分钟的生命周期。
我在第二个站点(而不是第一个站点)看到的是,我的程序将在每次数据突增开始时获得连接超时异常(例如ORA-03113)。我认为正在发生的是在数据突增期间,连接池是按设计使用的。突增结束时,将检查“连接生存时间”,并且连接不是太旧,因此将其保留在连接池中。然后,在30分钟后,当有新数据到达时,就像我在SQL Developer中看到的那样,将连接从池中取出(并且不检查生存期或超时),并且使用该连接并将其超时。
我如何避免连接超时但在突增期间仍然可以利用连接池?从文档(和我的经验)看来,仅在连接进入池时才检查连接的生命周期,而不是在连接断开时才对其进行检查。
最佳答案
这是一个确实很老的问题,但是我在应用程序中遇到了一些类似的问题,因此我认为其中一些信息可能会对遇到此问题的其他人有所帮助。
TL; DR摘要是ODP.NET驱动程序和.NET实现不能很好地配合使用,因此您正常运行的Mill连接池设置似乎并没有达到您期望的效果。
IDLE_TIME
设置为一个值(而不是UNLIMITED
),那么最终这些长时间运行的空闲参数将由数据库变为SNIPED
。这最终可能会在.NET方面引起问题,因为除非您明确检查连接是否仍处于打开状态,否则.NET将为这些SNIPED
连接提供服务,就像它们仍然可用一样(从而引发上述超时ORA错误)。 Data Validation=True;
。这样可以确保.NET在连接到下一个服务调用之前为其提供连接之前,将检查 session 连接。当此验证看到SNIPED
session 时,会将其从.NET连接池中删除。 Connection Lifetime
能够正常工作,那么他将永远不会在该数据库中看到这些超时。
Data Validation = True
参数,您就应该能够解决此问题。
关于.net - ODP.NET:使用连接池避免连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4399224/
我有一个 VS 2012 Web 项目。我安装了 ODP.NET,因为我们是 Oracle Workshop。我继承了一个使用 Oracle.ManagedAccess.Data 和 EF 的项目。
我想念什么? connectionString =“Data Source = TEST_ORACLE;集成安全性=是;”/> [ArgumentException:“集成安全性”是无效的连接字符串属
我必须从 .NET 代码连接 Oracle 11g DB。为此,我在阅读了一些论坛帖子后安装了 ODP.NET,我意识到我也需要安装 Oracle 客户端。 这是真的吗?我看到 Oracle 客户端的
当我尝试使用 ODP.NET 执行创建过程时,我得到了 ORA-24344: success with compiling error 的信息。但是,当我在 SQL Developer 中运行相同的语
最初我使用 oraoledb.oracle 提供程序来连接到 Oracle 数据库,并且很容易构建连接字符串: Provider=OraOLEDB.Oracle;User Id=myId;Passwo
在一个站点上,我可以使用SQL Developer连接到Oracle数据库,将其长时间闲置(例如,> 60分钟),然后返回,就可以了。在第二个站点上,如果它闲置超过5-10分钟(我还没有确切计算),它
我有一个托管在 IIS 7 上的 Web 应用程序,使用 Oracle.DataAcess.dll for .NET 来执行对 Oracle 数据库的连接和查询。 上周突然遇到这个组件抛出的无数错误,
我正在尝试填充数据表,但数据适配器返回异常:OverflowExeption(除以零)。这是我的命令文本: select value1/value2 from table value1和value2在
托管和非托管 Oracle ODP.Net 驱动程序之间是否存在任何性能基准? (即,除了架构/部署简单性之外,迁移到托管驱动程序是否有任何优势) 最佳答案 我想分享一些结果。我认为与部署的简便性相比
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 8 年前。 Improve
我正在使用 ODP.NET 托管驱动程序 12.1.0.2.1(ODAC 12c 第 3 版)并发现了严重错误。如果在命令执行期间超时导致连接池中的线程和连接丢失。 这个测试总是失败: [TestMe
我在尝试为应用程序生成跟踪文件时遇到问题。 正在尝试解决 Oracle 问题,但未写入跟踪文件。这是我的 app.config,它作为 exename.app.config 被移动到 Release
我正在尝试将基于 ODP.NET 11g 构建的现有应用程序升级到 ODP.NET 12c,希望它能提高数据库调用和数据检索的性能。在这方面,我安装了最新的 ODP.NET 12c 并将所有 Orac
干草,我的系统需要使用相同的连接(异步)执行几个主要的 SQL(在 Oracle 数据库上)。 这个问题的最佳做法是什么?1.打开单连接并在不同线程上执行每个SQL语句(线程安全吗?)2. 为每个SQ
我尝试搜索,但没有找到我的问题的明确答案。我正在从 SQL Server 切换到 Oracle,但前端仍然使用 C#。我正在使用 ODP.Net。我在 Oracle 中有一个这样的存储过程: Crea
我最近开始在使用 ODP.NET (Oracle.DataAccess 4.112.3) 的 C# (4.0) 应用程序上进行测试 我将此项目设置为面向任何平台并发布应用。 当我在客户端机器上运行程序
我还没有在任何地方找到明确说明这一点,但我在网上找到的一堆例子都符合我一直在做的事情。 我有一个 C# 类,它使用 ODP.net 连接到 Oracle 数据库并运行程序包中的过程。 我的包有存储过程
我正在尝试使用 ODP.NET 版本 2.111.6.20 为我的 .NET 应用程序配置连接池。数据库是 Oracle 11.1。 我在 .NET 2.0 应用程序中使用以下连接字符串: 数据源=p
在我之前的 question 中描述的应用程序本身.在 DAL 方面,我使用 Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral,
首先我想说我对 Oracle 数据库一点都不熟悉,所以我的措辞可能不正确,我对某些概念的理解可能是错误的......无论如何,我正在尝试使用 ODP.NET 连接到 Oracle 11g 数据库,每次
我是一名优秀的程序员,十分优秀!