2010-07-14 4 views
2

은 내가iBATIS는 - 저장 프로 시저 제한 시간

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

</statements> 

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

저장 프로 시저 해시 테이블에 전달된다 "iosxml"라는 문자열을 기대하고있다 SP_InsertIOs의 이름 (키 이름이 iosxml 또한이 절차의 문장을 가지고). 데이터베이스에 10000 개의 엔티티를 삽입하는 데 사용하고 정상적으로 작동합니다. 내가 50000 엔티티를 삽입하는 데 사용할 경우 시간 초과 SqlException이 발생합니다. 프로 시저에 대한 시간 초과를 어떻게 설정할 수 있습니까? 나는 프로 시저 ID = "InsertIOs"타임 아웃 = "200"을 시도하지만 결과

+2

문제에 대한 예시 해결 난 연결 문자열 연결 초과 = 120을 첨가 . – ion

답변

0

으로 우리는 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; 
      [email protected]; 
      Connect Timeout=200" 
      ProviderName="System.Data.SqlClient"/> 
</connectionStrings>