创建连接(对象)池 - 要使用的任何库?

时间:2011-08-26 21:52:21

标签: c# connection-pooling

我们有一个第三方软件,它使用一堆内部中间件和服务连接到外部数据库。通过这个API,我只有一些关于它在联系Oracle DB时使用的连接对象的信息。

更新:这不是连接到Oracle的池。这是一个对象/连接池,用于处理大量统计数据的软件,而这些统计数据又与Oracle有自己的连接。我们需要池化的原因是这个软件每秒可以访问50到200次,实例化Initiate对象可能需要20多秒。

我想知道的是,如果.NET有任何类我可以继承/使用它来帮助我构建一个比当前编写的更好的对象池系统。我编写自己的问题没有问题,但如果我能从一个人继承,我宁愿不重新发明轮子。

请注意,这几乎是对象池,但对象具有连接能力。

更新: 创建池后,当前系统将起作用。它有一个工作线程,确保池清洁和工作。当应用程序长时间没有活动时,问题就出现了。当一个请求进来时,系统会查找一个连接,并且它们都被清除了(我相信因为缓存已经消失)。所以它重新生成它们,但这可能需要花费1分钟来完成100多个连接,并且由于通过SOA访问,请求可能会超时。

1 个答案:

答案 0 :(得分:2)

您可以使用对象池设计模式实现自己的模式: http://sourcemaking.com/design_patterns/object_pool

或使用这个: C# Object Pooling Pattern implementation