问题标签 [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# - ADO.NET 连接池和 AutoClose = True 的含义
设置:
我正在用 C# 创建一个 .NET WinForms 应用程序,以使我们的技术支持人员能够轻松地针对我们产品的 SQL Server 2005 数据库执行常见任务。该应用程序正在使用 ADO.NET ( SqlConnection
) 连接到数据库。开发此应用程序时需要考虑的一个问题是,每次启动任务(查询)时,尽量减少连接/重新连接到数据库的开销。据我了解,造成这种开销的主要原因是数据库具有AutoClose属性设置为“真”。我很想改变这一点,但不幸的是它不在我的控制之下。我也知道创建数据库连接无论如何都会涉及一些开销。我有一个应用程序的工作实现,它在应用程序的整个生命周期中保持一个连接(除非它之前以某种方式关闭)。然后我偶然发现了一篇关于ADO.NET 中的连接池的 MSDN 文章。
阅读文章(以及此处、此处和此处的其他问题/答案)后,即使我的应用程序已正确处理其SqlConnection
对象,ADO.NET 连接池似乎仍将保持与数据库的连接。连接将保留在池中并且可以重复使用,直到它空闲一段时间或以其他方式中断。因此,我在应用程序中维护单个连接的工作似乎是不必要的,而且肯定比SqlConnection
每次需要时简单地创建/处置 a 更危险。
问题:
将 ADO.NET 连接池与“AutoClose”设置为“true”的 SQL Server 数据库一起使用时会出现什么影响?
我意识到,当我描述我认为连接池在幕后工作的方式时,我可能过于简单化了,但除此之外,我的理解准确吗?如果不是,哪里需要修正?
java - oracle10g休眠问题
当我的应用程序启动时,我收到如下错误,谁能详细说明我错过了什么?使用 mysql 时应用程序运行良好。我错过了 config.xml 文件中的任何额外参数吗?
我的配置看起来像这样
sql - 如何在 sql server 2005 实例中将连接池设置为 100
如何在 sql server 2005 实例中将连接池设置为 100
mysql - MySQL连接池和创建临时表
我已经使用 JNDI 在 Glassfish 中设置了 MySQL 连接池。我一次只执行一个查询,但使用相同的 sql 实例。除了创建临时表并使用它们之外,一切似乎都运行良好。简而言之,即使我创建了一个临时表,插入查询也不起作用,因为该表不存在。有什么我可能会研究的配置吗?是否可以创建临时表并在多个语句中使用它。先感谢您!
java - 如何确定 java 连接池是否与 URLConnection 一起使用?
从本文档中可以看出,在使用URLConnection时,在 Java 中 TCP 连接池“工作”之前必须满足一些先决条件。如何确定连接是否正在池中?我可以在 sun jdk 中为此检查任何对象吗?
mysql - 什么是关于如何使用 mysql 和数据库池设置 tomcat 的好教程?
我一直在寻找一些关于如何在 Tomcat 6 中使用连接池连接到 Mysql 5 的良好说明,但似乎没有任何完整的参考资料。我无法将不同的教程拼凑在一起以获得清晰的画面。
我必须承认,我在处理 Tomcat 及其配置方面非常初学者。
tomcat - apache中的连接池(Web服务器)
我想在我的 Web 应用程序中实现连接池。请问我该如何实现。
vb.net - VB.net:使用共享方法获取数据库连接有任何问题吗?
我有一个实用程序类,它创建并返回一个数据库连接:
并发调用是否存在返回相同连接的风险?连接字符串启用池。
database - 系统设计问题:负载平衡 n 层中的数据库连接管理
我想知道为负载平衡的 n 层系统设计数据库连接管理器的最佳方法。
经典的 n 层如下所示:
我看到的负载平衡解决方案将如下所示:
如图所示,业务服务器组件通过多个实例进行负载平衡,硬件网关在它们之间分配负载。
会话服务器可能需要位于负载平衡阵列之外,因为它管理状态,不能重复。
到目前为止,除非设计中出现任何重大错误,否则实现数据库连接管理的最佳方式是什么?
我想出了几个选项,但可能还有其他我不知道的选项:
在 DBServer 和其他组件之间引入一个新的 Broker 组件,让它处理 DB 连接。
- 好处是可以从单点管理所有连接,非常方便。
- 缺点是现在系统中多了一个“单点故障”。对于以某种方式涉及 DB 的每个请求,其他组件都必须经过它,这也成为了瓶颈。
将 DB 连接管理移到 BusinessServer 和 SessionServer 组件中,让每个组件处理自己的 DB 连接。
- 好处是没有额外的“单点故障”或瓶颈组件。
- 缺点是除了 DBServer 本身可以提供的之外,也无法控制可能的冲突和死锁。
还有什么可以做的?
FWIW:技术是 .NET,但没有使用任何供应商特定的堆栈(例如,没有 WCF、MSMQ 等)。