问题标签 [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.

0 投票
2 回答
1361 浏览

asp.net - ASP.NET 连接池问题

在托管与同一个数据库通信的不同 Web 应用程序的两个不同物理服务器上使用的相同连接字符串是否从同一个连接池中提取连接?还是池连接仅限于应用程序级别?

我问是因为我继承了一个 7 年历史的 .NET 1.1 Web 应用程序,其中充斥着内联 SQL、未关闭和未处理的 sql 连接和数据读取器对象。最近,我的任务是编写一个小型 Web 应用程序,该应用程序托管在另一台服务器上并与同一个数据库通信,因此使用相同的数据库连接字符串。我创建了一个 LINQ 对象来读取和写入应用程序所需的一个表。现在原始的 .NET 1.1 应用程序正在抛出异常,例如

“超时已过期。在从池中获取连接之前已经过了超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。”

也许这些是无关紧要的,但想得到你的意见,以确保我涵盖了我所有的基础。

谢谢!

0 投票
1 回答
709 浏览

castle-windsor - 与温莎同台竞技

我已经尝试过温莎的共享生活方式。
假设我希望多个 CustomerTasks 与 ILogger 池一起工作。
当我尝试解决的次数超过 maxPoolSize 时,会不断创建新的记录器。

我错过了什么,最大池大小的确切含义是什么?

我使用的 xml 配置是(演示代码):

代码是:

0 投票
1 回答
12512 浏览

c# - npgsql Leaking Postgres DB Connections:监控连接的方法?

背景:我正在将我的应用程序从 npgsql v1 移动到 npgsql v2.0.9。运行我的应用程序几分钟后,我得到一个 System.Exception: Timeout while getting a connection from the pool。

网络声称这是由于连接泄漏(打开数据库连接,但没有正确关闭它们)。

所以

我正在尝试诊断 npgsql 中泄漏的 postgres 连接。

来自各地的各种网络文学;诊断泄漏连接的一种方法是在 npgsql 上设置日志记录,并在日志中查找泄漏连接警告消息。问题是,我在任何地方的日志中都没有看到此消息。

我还发现了监视 npgsql 连接的实用程序,但它不稳定并且崩溃。

所以我只能手动检查代码。对于每个创建 npgsql 连接的地方,都有一个 finally 块处理它。对于每个打开数据读取器的地方,都会使用 CommandBehavior.CloseConnection(并且会释放数据读取器)。

还有其他地方可以检查或有人可以推荐一种方法来查找泄漏的池连接吗?

0 投票
3 回答
1862 浏览

c# - 需要帮助管理 MySql 连接

我很难找到关于连接池的清晰解释。我正在使用从 mysql.com 下载的 .NET 连接器构建应用程序。该应用程序只需要一个数据库连接,但将在我的网络上大约 6 台机器上同时运行。通常,我会在启动时创建连接并离开它。但是我看到很多人说这是不好的做法。我也担心超时。我的应用程序将 24/7 全天候运行,并且可能会在很长一段时间内没有数据库活动。

我倾向于以下:

但我不确定我是否理解后台发生的事情。这实际上是关闭连接并允许 gc 杀死对象,还是有一个内置的池行为可以保留对象并在我下次尝试创建对象时重新传递它?

我当然不希望应用程序在每次访问数据库时都通过网络重新进行身份验证。

谁能给我一些建议?

0 投票
4 回答
1734 浏览

oracle - Oracle OLEDB 连接池和无效连接

我们正在使用 ADO 访问 Oracle 10g 第 2 版,Oracle 10g 的 Oledb 提供程序。我们正面临连接池的一些问题。数据库驻留在远程计算机上,并且连接池正在按应有的方式进行。但是如果远程机器由于某种原因宕机,连接将从池中返回,并且对该连接的查询失败。当此连接关闭时,它会返回到池中而不是无效。随后的连接打开请求成功但查询失败。这是奇怪的行为,根据 OLEDB 规范,提供者必须支持 DBPROP_CONNECTIONSTATUS 属性,因此在无效连接的情况下,它不会返回到池中。

当远程机器启动时,事情变得很奇怪。池中的连接仍然无效,虽然连接打开成功,但连接查询失败。Oracle OLEDB 无法再连接到服务器,我们必须重新启动我们的应用程序。好吧,这是不受欢迎的,因为我们的应用程序是关键应用程序。

关于如何克服这一点的任何想法。

谢谢穆巴希尔

0 投票
6 回答
1218 浏览

multithreading - 管理多流程:常见的策略是什么?

虽然在某些情况下多线程更快,但有时我们只想生成多个工作进程来完成工作。这样做的好处是,如果其中一名工作人员崩溃了,主应用程序不会崩溃,并且用户不需要过多担心互锁的东西。

COM+ 的应用程序池似乎是在 Windows 上实现这一目标的好方法。缺点是我们需要为工作进程编写一个 COM+ 包装器。

但是,当我在 Google 上搜索 Application Pooling 时,它的大部分用法似乎都与 IIS 有关。难道其他应用程序(例如科学/图形)没有发现生成多个工作进程很有用吗?

所以有几个问题:

  • 为什么 COM+ 在 IIS 以外的领域没有更流行?如果我编写一个非 IIS 应用程序并想在 Windows 上使用进程管理,我应该使用 COM+ 还是有更好的替代方案?

  • 跨平台的方法是什么?是否有库可以给我一个“进程池”(工作进程将智能地接工作,可以管理等)

0 投票
2 回答
323 浏览

asp-classic - 来自不同用户的经典 ASP 同时呼叫

我有这个经典的 ASP Web 应用程序。每个用户都必须登录,他们最重要的数据保存在 Session 变量中。后端是 MS-SQL。

当用户提交到特定页面时,这个页面会做很多事情,包括创建文件和访问数据库,因此每个请求可能需要 2-3 秒才能执行。

这是我的问题:当一个用户提交到这个页面时,在他等待的时候,如果另一个用户提交到同一个页面,两个请求就会同时执行,我的 VBScript 变量就会混淆。换句话说,IIS (?) 在发送第二个请求之前不会等待第一个请求完成。

我尝试使用 Application 对象实现某种池,但它失败了。我需要能够逐个威胁每个用户。第二个用户是否等待第一个用户并不重要。

在这种特殊情况下,我使用的是 IIS6,并且我的所有 asp 页面都分配给了一个自定义应用程序池,该池的工作进程设置为 1(我不确定这是否会改变什么?

0 投票
2 回答
389 浏览

connection - 连接池

我可以知道连接池是否也适用于窗口基础应用程序,而不仅仅是网络基础?请指教。谢谢

0 投票
2 回答
2754 浏览

java - Java Future 多线程如何返回结果?

我仍在学习如何在 Java 中使用 Future 和 Callable。偶然发现这个问题:

说我有课:

这是主要方法:

我想要做的是,打破在单独线程中运行的请求的一部分,因为每个请求 Id 都是单独的搜索过程。所以我试图通过将结果存储在未来对象中来利用 Java 池。

我感到困惑的是,在这种情况下,未来将如何运作?对于每个线程完成,它会保存结果吗?在所有过程完成后,我可以循环未来对象以获得正确的结果?

此外,不能保证进程会按顺序运行(1、2、3、4 等),对吧?如果是这种情况,那么如果我想将每个原始请求与未来结果相关联,那么最好的策略是什么?

请指教。

谢谢

0 投票
3 回答
15188 浏览

java - Spring连接池问题

我在 Java 和 Spring 方面没有经验。我尝试编写一个使用 JdbcTemplate 进行数据访问的程序。我使用 DBCP 池,这里是:

我的应用程序执行了几个更新操作,然后抛出异常:

当我更改池设置(池大小)时,应用程序可以运行更多次,但随后崩溃。我认为问题与池有关,但我无法解决。

有什么建议么?