IBATIS - 存储过程超时

时间:2010-07-14 06:16:35

标签: stored-procedures ibatis ibatis.net

我有这个程序声明

<procedure id="InsertIOs" parameterMap="InsertIOsParams">
      SP_InsertIOs
    </procedure>

 </statements>

  <parameterMaps>
    <parameterMap id="InsertIOsParams">
      <parameter property="iosxml" column="iosxml" dbType="VarChar"/>
    </parameterMap>   
  </parameterMaps>

存储过程的名称是SP_InsertIOs,它期望一个名为“iosxml”的字符串,该字符串在哈希表中传递(键名也是iosxml)。 我用它在数据库中插入10000个实体,它工作正常。如果我用它来插入 50000个实体我得到超时SqlException。如何为程序设置超时? 我尝试过程id =“InsertIOs”timeout =“200”但没有结果

1 个答案:

答案 0 :(得分:0)

我们可以在Connection Timeoutxml configuration中添加web.config

  • 使用xmldefaultStatementTimeout
  • web.config在连接字符串中添加Connection Timeout = 200

xml中完全配置的设置元素的示例如下:

<settings>
  <setting name="cacheEnabled" value="true"/>
  <setting name="lazyLoadingEnabled" value="true"/>
  <setting name="multipleResultSetsEnabled" value="true"/>
  <setting name="useColumnLabel" value="true"/>
  <setting name="useGeneratedKeys" value="false"/>
  <setting name="autoMappingBehavior" value="PARTIAL"/>
  <setting name="defaultExecutorType" value="SIMPLE"/>
  <setting name="defaultStatementTimeout" value="25"/>
  <setting name="safeRowBoundsEnabled" value="false"/>
  <setting name="mapUnderscoreToCamelCase" value="false"/>
  <setting name="localCacheScope" value="SESSION"/>
  <setting name="jdbcTypeForNull" value="OTHER"/>
  <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>

web.config

的示例
<connectionStrings>
    <remove name="LocalSqlServer"/>
    <add name="ConnectionString" 
         connectionString="Data Source=;
             Initial Catalog=;
             Persist Security Info=True;
             User ID=sa;
             Password=sa@123;
             Connect Timeout=200"
             ProviderName="System.Data.SqlClient"/>
</connectionStrings>