IBATIS - Тайм-аут хранимой процедуры - PullRequest
2 голосов
/ 14 июля 2010

У меня есть этот оператор процедуры

<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 голосов
/ 09 июня 2015

Мы можем добавить Connection Timeout в xml configuration или web.config.

  • В xml с помощью defaultStatementTimeout.
  • В 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>
...