iBatis 数据操作超时时间设置

ibatils

sqlmap.config中

<database>
<provider name="sqlServer2.0"/>

<dataSource ...    ConnectionTimeout="600"/>
</database>

 

ibatis.net 的坑

https://www.cnblogs.com/lookup/p/ibatis_net_commandtimeout.html

根据上面文章总结:

Connect Timeout=120;配置才起作用

Data Source=IP地址;uid=数据库用户名;pwd=密码;Initial Catalog=数据库名;Connection Timeout=60000;Connect Timeout=120;max pool size=10240

 

解决过程:

 

IBatisNet.DataMapper.SqlMapSession.CreateCommand 方法中:

 

val.set_CommandTimeout(_connection.get_ConnectionTimeout());

 

 

image.png

从SqlMap.config 和providers.config 找你使用什么数据库

在SqlMap.config中 找到 sqlServer2.0

<database>

<provider name="sqlServer2.0"/>

    。。。

  </database>

在providers.config 找到 

  <provider

    name="sqlServer2.0"

    description="Microsoft SQL Server 7.0/2000 provider in framework .NET V2"

enabled="true"

    default="true"

    assemblyName="System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" connectionClass="System.Data.SqlClient.SqlConnection"

    commandClass="System.Data.SqlClient.SqlCommand"

    parameterClass="System.Data.SqlClient.SqlParameter"

    parameterDbTypeClass="System.Data.SqlDbType"

    parameterDbTypeProperty="SqlDbType"

    dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"

    commandBuilderClass="System.Data.SqlClient.SqlCommandBuilder"

    usePositionalParameters = "false"

    useParameterPrefixInSql = "true"

    useParameterPrefixInParameter = "true"

    parameterPrefix="@"/>

 

通过源码工具找到 System.Data.SqlClient.SqlConnection

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), ResDescription("SqlConnection_ConnectionTimeout")]

public override int ConnectionTimeout

 {

    get{

SqlConnectionString sqlConnectionString = (SqlConnectionString)this.ConnectionOptions;

if (sqlConnectionString == null)

{

return 15;

}

return sqlConnectionString.ConnectTimeout;

}

}

 

SqlConnectionString 中的属性

internal int ConnectTimeout

{

get{

return this._connectTimeout;

}

}

 

正确配置:

Data Source=IP地址;uid=数据库用户名;pwd=密码;Initial Catalog=数据库名;Connect Timeout=120;max pool size=10240

是:Connect Timeout=120;

​而不是 :Connection Timeout=600;

这儿单位是秒

 

ibatis是java的

https://blog.csdn.net/jackie_xiaonan/article/details/8459320

 

posted @ 2021-05-21 17:06  三瑞  阅读(311)  评论(0编辑  收藏  举报