Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Subsonic lage数据库上的亚音速3.0.0.3 t4模板生成连接不足_Subsonic_Subsonic3_Connection Pooling - Fatal编程技术网

Subsonic lage数据库上的亚音速3.0.0.3 t4模板生成连接不足

Subsonic lage数据库上的亚音速3.0.0.3 t4模板生成连接不足,subsonic,subsonic3,connection-pooling,Subsonic,Subsonic3,Connection Pooling,在对一个包含1400多个表的数据库运行模板时,我得到以下错误。服务器显示了数百个连接。是否有人知道这通常是模板生成的问题,还是这些模板的问题。其他的,较小的DBs为我生成ok 正在运行转换:System.InvalidOperationException:超时已过期。从池中获取连接之前经过的超时时间。发生这种情况的原因可能是所有池连接都在使用中,并且已达到最大池大小 位于System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbCo

在对一个包含1400多个表的数据库运行模板时,我得到以下错误。服务器显示了数百个连接。是否有人知道这通常是模板生成的问题,还是这些模板的问题。其他的,较小的DBs为我生成ok

正在运行转换:System.InvalidOperationException:超时已过期。从池中获取连接之前经过的超时时间。发生这种情况的原因可能是所有池连接都在使用中,并且已达到最大池大小

位于System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection-owningConnection) 位于System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory) 在System.Data.SqlClient.SqlConnection.Open()处 在Microsoft.VisualStudio.TextTemplating8D8967BD3E8719BDA6DD9945992440F1.GeneratedTextTransformation.GetCommand(字符串sql)中,使用c:\POS\POS.Win\Templates\SQLServer。t包括:第13行 在Microsoft.VisualStudio.TextTemplating8D8967BD3E8719BDA6DD9945992440F1.GeneratedTextTransformation.LoadFKTables(字符串表格名)中的c:\POS\POS.Win\Templates\SQLServer.t包括:第179行 在c:\POS\POS.Win\Templates\SQLServer中的Microsoft.VisualStudio.TextTemplates8D8967BD3E8719BDA6DD9945992440F1.GeneratedTextTransformation.LoadTables()中。t包括:第131行
在c:\POS\POS.Win\Templates\ActiveRecord.tt:line 21

中的Microsoft.VisualStudio.TextTemplating8D8967BD3E8719BDA6DD9945992440F1.GeneratedTextTransformation.TransformText()中,我可能建议在1400个表上运行T4可能不是最好的主意。鉴于此,您可以使用T4代码(在SQLServer.tt中)查看如何加载表(在LoadTables中)并根据需要修改连接


生成1400个类-猜测最终输出的文件大小会很有趣…

对于一个非常大的数据库(大量的表、视图和SP),我也有同样的问题。我在Sql Server 2005的web.config连接字符串中添加了以下内容-Connect Timeout=60

这似乎奏效了

您还可以深入查看.tt和.ttinclude文件,并设置cmd.CommandTimeout

此外,以下是要为特定表设置的常量:

常量字符串表_SQL=@“选择* 来自信息\u SCHEMA.TABLES
其中TABLE_TYPE='BASE TABLE'和TABLE_name='myTableA'或TABLE_name='myTableB'

我在250个表的数据库中遇到了这个确切的问题。在SQLServer.t目录中,我发现:

var cmd=GetCommand(sql);   
cmd.Parameters.AddWithValue("@tableName",table);   
var result=cmd.ExecuteScalar();  
cmd.Dispose();  
if(result!=null)  
    pk=result.ToString();  
将其更改为:

using (var cmd=GetCommand(sql))  
{  
        cmd.Parameters.AddWithValue("@tableName",table);  
        int x = 0;  
 if (table == "tbl_Address")  
  x++;  
 var result=cmd.ExecuteScalar();  

 if(result!=null)  
  pk=result.ToString();     

 cmd.Connection.Close();      
} 
连接没有关闭,并且池中的连接在100后用完。任何超过100个表的DB都会遇到此问题。我可以在不接触SubSonic.Core的情况下修复此问题,这真是太棒了


现在,如果我能花点时间了解Git,我会将此修复发回亚音速项目。:-D

亚音速2.1处理得很好。这是一个不同的应用程序域和不同的代码。正如我提到的-代码就在T4模板中-为您的1400个表进行优化:)当然,您是对的,我非常感谢您的支持指导。只是想我需要,令人敬畏:)这里“如果(表==”tbl_地址)的意义是什么?嗯。我三年前发布了这个。我想知道这是否只是一些调试代码,我在那里得到我的方位。看起来重要的一点是关闭连接。