我们有一个第 3 方软件,它使用一堆内部中间件和服务来连接到外部数据库。通过这个 API,我只有一点关于它在联系 Oracle 数据库时使用的连接对象的信息。
更新:这不是连接到 Oracle 的池。这是处理大量统计数据的软件的对象/连接池,这些数据又与 Oracle 有自己的连接。我们需要池的原因是这个软件每秒可以访问 50-200 次,并且可能需要 20 多秒来实例化 Initiate 对象。
我想知道 .NET 是否有任何我可以继承/使用的类来帮助我构建比当前编写的更好的对象池系统。我自己编写没有问题,但如果我可以继承一个,我宁愿不重新发明轮子。
请注意,这几乎是对象池,但对象具有连接的能力。
更新: 一旦创建池,当前系统就会工作。它有一个工作线程,确保池是干净的和工作的。当应用程序长时间没有事件时,问题就出现了。当一个请求进来时,系统会寻找一个连接并且它们都被清理干净了(我相信是因为缓存不见了)。因此它会重新生成它们,但这可能需要 1 分钟以上的时间来完成 100 多个连接,并且由于这是通过 SOA 访问的,因此请求可能会超时。
最佳答案
您可以使用对象池设计模式实现您自己的模式: http://sourcemaking.com/design_patterns/object_pool
关于c# - 创建一个连接(对象)池——有什么库可以使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7210930/