무결성 제약 조건 에러가 왜 발생하나요?
- 작성자 :
- 이*행
- 작성일 :
- 2012-10-23 17:59:57
- 조회수 :
- 2,154
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(test.COMTSUSERSUMMARY_PK)에 위배됩니다
--- The error occurred in egovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Oracle.xml.
--- The error occurred while applying a parameter map.
--- Check the UserStatsDAO.summaryUserStats-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(test.COMTSUSERSUMMARY_PK)에 위배됩니다
; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in egovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Oracle.xml.
--- The error occurred while applying a parameter map.
--- Check the UserStatsDAO.summaryUserStats-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(test.COMTSUSERSUMMARY_PK)에 위배됩니다
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in egovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Oracle.xml.
--- The error occurred while applying a parameter map.
--- Check the UserStatsDAO.summaryUserStats-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(test.COMTSUSERSUMMARY_PK)에 위배됩니다
--- The error occurred in egovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Oracle.xml.
--- The error occurred while applying a parameter map.
--- Check the UserStatsDAO.summaryUserStats-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(test.COMTSUSERSUMMARY_PK)에 위배됩니다
; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in egovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Oracle.xml.
--- The error occurred while applying a parameter map.
--- Check the UserStatsDAO.summaryUserStats-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(test.COMTSUSERSUMMARY_PK)에 위배됩니다
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in egovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Oracle.xml.
--- The error occurred while applying a parameter map.
--- Check the UserStatsDAO.summaryUserStats-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(test.COMTSUSERSUMMARY_PK)에 위배됩니다
A
안녕하세요.. 이백행님..
오류 부분은 스케쥴러에 의해 호출이 되는데..
매일 이전 하루에 대한 데이터를 집계하도록 되어 있습니다.
설정은 context-scheduling.xml에 다음과 같이 되어 있는 부분입니다. (example)
<bean id="userStats"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="egovUserStatsScheduling" />
<property name="targetMethod" value="summaryUserStats" />
<property name="concurrent" value="false" />
</bean>
<bean id="userStatsTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="userStats" />
<!-- 시작하고 2분후에 실행한다. (milisecond) -->
<property name="startDelay" value="120000" />
<!-- 매 12시간마다 실행한다. (milisecond) -->
<property name="repeatInterval" value="43200000" />
</bean>
현재 설정은.. 테스트를 위해서.. 12시간 마다 호출이 되도록 되어 있으나..
실제 운영은 하루에 한번 실행을 하도록 변경하셔야 합니다.
(또한 WAS가 재기동 될 때에 2분후에 실행하도록 되어 있음)
따라서.. 이 부분은 운영에서는 SimpleTriiger 방식이 아닌 다음과 같은 CronTrigger 방식으로 변경하셔야 합니다.
<bean id="userStatsTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetailFactoryBean" />
<!-- 매 10초마다 실행 -->
<property name="cronExpression" value="0 0 1 * * ?" />
</bean>
위 설정은 매일 새벽 1시에 호출되도록 하는 설정입니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
오류 부분은 스케쥴러에 의해 호출이 되는데..
매일 이전 하루에 대한 데이터를 집계하도록 되어 있습니다.
설정은 context-scheduling.xml에 다음과 같이 되어 있는 부분입니다. (example)
<bean id="userStats"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="egovUserStatsScheduling" />
<property name="targetMethod" value="summaryUserStats" />
<property name="concurrent" value="false" />
</bean>
<bean id="userStatsTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="userStats" />
<!-- 시작하고 2분후에 실행한다. (milisecond) -->
<property name="startDelay" value="120000" />
<!-- 매 12시간마다 실행한다. (milisecond) -->
<property name="repeatInterval" value="43200000" />
</bean>
현재 설정은.. 테스트를 위해서.. 12시간 마다 호출이 되도록 되어 있으나..
실제 운영은 하루에 한번 실행을 하도록 변경하셔야 합니다.
(또한 WAS가 재기동 될 때에 2분후에 실행하도록 되어 있음)
따라서.. 이 부분은 운영에서는 SimpleTriiger 방식이 아닌 다음과 같은 CronTrigger 방식으로 변경하셔야 합니다.
<bean id="userStatsTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetailFactoryBean" />
<!-- 매 10초마다 실행 -->
<property name="cronExpression" value="0 0 1 * * ?" />
</bean>
위 설정은 매일 새벽 1시에 호출되도록 하는 설정입니다.
그럼.. 즐거운 하루되십시오.
감사합니다.