问题标签 [connection-pooling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 管理 SQL Server 连接
SQL 连接的最佳实践是什么?
目前我正在使用以下内容:
我读过这是一种非常有效的 SQL 连接方式。默认情况下,SQL 池是活动的,所以我的理解是,当using
代码结束时,SqlConnection
对象被关闭并释放,但与数据库的实际连接放在 SQL 连接池中。我错了吗?
java - 从 DUAL 中选择 1:MySQL
在查看我的查询日志时,我看到了一个我没有解释的奇怪模式。
在几乎每个查询之后,我都有“从 DUAL 中选择 1”。
我不知道这是从哪里来的,而且我当然没有明确地进行查询。
日志基本上是这样的:
有没有人遇到过这个问题?
MySQL 版本:5.0.51
驱动程序:使用 JDBC 的 Java 6 应用程序。mysql-connector-java-5.1.6-bin.jar
连接池:commons-dbcp 1.2.2
validationQuery 设置为“从 DUAL 中选择 1”(显然),并且当验证查询为非空时,连接池显然默认 testOnBorrow 和 testOnReturn 为 true。
这给我带来的另一个问题是我是否真的需要验证查询,或者我是否可以通过禁用它或至少降低使用它的频率来提高性能。不幸的是,编写我们的“数据库管理器”的开发人员已不在我们身边,所以我不能要求他为我证明这一点。任何输入将不胜感激。我将通过 API 和谷歌挖掘一段时间,如果我发现任何有价值的东西,我会报告。
编辑:添加了更多信息
EDIT2:为以后发现此问题的任何人添加了正确答案中要求的信息
oracle - 能否使 JBoss JDBC 连接失效,使其不会从连接池中重新获得?
我有一种情况,JDBC 连接将它所连接的 Oracle 会话置于特定状态(即 DBMS_FLASHBACK 启用模式)。此模式的退出可能会失败(至少在理论上),这意味着会话错误地处于该状态。在这种情况下,连接可以返回到池中,并由另一个线程获得,Oracle 会话仍处于 DBMS_FLASHBACK 启用模式。
我已经证明这确实会发生。(JBoss 4.2.1)
理想的做法是在模式退出失败时捕获 SQLException,并将连接标记为“坏”,这样一旦它返回到池中,JBoss 就会破坏连接并创建一个新连接。
但是我找不到任何方法来标记立即销毁的连接。有谁知道一种方法?
java - 连接池环境中是否明确要求 statement.close()?
我在我的应用程序中使用连接池。我的问题是:
在连接池环境的情况下,是否明确要求在关闭连接之前关闭语句?
在连接池环境中,连接没有关闭,(但返回到空闲连接池)。我检查了 jdbc 4.0 功能规范。在第 9.4.4 点中,它明确指出:
关闭连接对象 应用程序调用 Connection.close 方法来指示它已完成使用连接。当调用对象的 close 方法时,从给定 Connection 对象创建的所有 Statement 对象都将被关闭。一旦一个 Connection 被关闭,除了 close、isClosed 或 isValid 方法之外的任何访问它的任何方法的尝试都将导致抛出 SQLException。
因此 jdbc 规范要求在关闭连接时关闭所有语句。那么它仅适用于非连接池环境还是也适用于连接池环境?
根据我的说法,在池化环境的情况下这无关紧要,因为我们正在为接口(java.sql.Connection
& java.sql.Statement
)编码。所以我们不关心实现,父类(java.sql.Connection
)没有关于子/实现类(供应商实现类)的任何信息。
asp.net - asp.net 连接池:自动测试和验证连接?
我知道对于某些连接池,您可以指定池管理器可以用来验证连接的测试查询。
有没有类似于 asp.net 的东西?我遇到了一个问题,Web 应用程序和数据库之间有防火墙,它正在关闭空闲连接 - 结果是用户收到“ORA-03135:连接丢失联系”错误。重新加载页面很好,但我想完全删除该错误。
linq - Detect a DB Connection error using Linq?
Is it possible to detect an error in a connection before we get an application "Transport-level error" using Linq?
Lets say that I have a SQL server called SQLServer1, and I am running an application that connects to that server using LinQ to get some information.
I decide to change the server Name to SQLServer2. The next time my application run I will get an error like this:
"A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.)"
Because LinQ doens't know that there was a change!
How can I catch this during runtime? Is it possible to extend the DataContext class to check somehow the connection before getting the data?
Thanks!
c# - 为什么有这么多用于 C# 连接池的 sp_resetconnections?
我们有一个用 C# 编码的 Web 服务,它可以多次调用 MS SQL Server 2005 数据库。该代码使用结合 C# 的连接池的 Using 块。
在 SQL 跟踪期间,我们看到了许多对“sp_resetconnection”的调用。其中大多数都很短 < 0.5 秒,但有时我们会接到长达 9 秒的通话。
从我读到的 sp_resetconnection 与连接池有关,基本上重置了打开连接的状态。我的问题:
- 为什么打开的连接需要重置其状态?
- 为什么这么多电话!
- 什么可能导致调用 sp_reset 连接花费大量时间。
这对我来说是个谜,我感谢任何和所有的帮助!
asp.net - 安装 Visual Studio 是否会更改 .Net 中的垃圾收集?
我正在尝试调试一些资源泄漏 - 特别是 oracle 连接。
在我的本地机器上,当我逐步执行 Page_Load() 时,我可以通过监视 v$session 查看在数据库中创建的连接。
一旦我走出 Page_Load,所有的连接都会关闭。
在开发服务器(W3k,IIS6)上运行的相同代码不会释放资源 - 根据 db 的连接仍然存在。
我在启用和不启用连接池的情况下都试过这个,它是一样的 - 在本地它很好,在它泄漏的服务器上。
我已经验证了两个地方的 .net 框架是相同的,并且代码也是相同的。我错过了什么?
asp.net - OracleClient 命令 - 使用和处置命令的最佳实践
根据 OracleClient.OracleCommand 的 MSDN 文档:
OracleCommand 未包装在 Using 块中。
问:应该吗?OracleCommand 继承自 DbCommand,后者实现了 IDisposable。
我正在查看执行以下操作的代码,并且我们遇到了隐式游标未关闭的问题:
GetDataSet 看起来像:
这会不会泄露资源?
oracle - Oracle (10g) 中的 XAConnection 性能
在我们的项目中,我们使用 Oracle XA 连接池。只有一小部分查询(事务)被分发。其余是相当简单的单个数据库修改。
我想知道使用 XAConnections 与普通的 XAConnections 是否存在性能差异。
我们使用 websphere v6.1 作为服务器。
如果 XAConn 的性能不是很好,那么我计划拥有两个数据源并酌情使用来自它们的连接。
任何指针都会有很大帮助。