我们的BizTalk应用程序存在问题,其接收位置和发送端口连接到oracle数据库。我们没有连接。
我不知道为什么,但原始开发人员同时使用WCF-Custom和WCF-OracleDB,但我认为两者都使用ODP.NET作为ADO.NET提供者。
因为在ADO.NET中,当然在ODP.NET中,连接池是在连接字符串上键入的(我认为是精确的字符串匹配),所以连接池可以在逻辑上在发送端口和接收位置之间共享。由于我们无法控制连接字符串本身,因此我们必须假设适配器中的连接字符串始终从一个端口生成到另一个端口。
我的问题是:
1-我可以假设接收位置和发送端口可以共享连接池,只要它们在同一主机实例上运行,并且
2-将类似的端口和位置(使用相同连接字符串的端口和位置)分组到一个主机实例中是不是一个好主意?
谢谢你, 米歇尔
答案 0 :(得分:1)
基于以下网站,连接池确实是通过连接字符串的唯一性来确定的:
http://www.connectionstrings.com/oracle-data-provider-for-net-odp-net/
(参见"指定池参数")
解决此问题或至少为您提供更好的洞察力的一种方法是启用ODP.NET跟踪和性能计数器。这将允许您清楚地查看池中正在使用的连接数。
有关如何启用这些内容的详情,请参阅:
http://blog.ilab8.com/2011/09/02/odp-net-pooling-and-connection-request-timed-out/
答案 1 :(得分:-2)
在连接字符串上设置pooling=false
。