사용자 통계 집계 pk 오류
- 작성자 :
- 최*용
- 작성일 :
- 2012-03-07 11:32:04
- 조회수 :
- 2,115
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
안녕하세요 다름이아니라 프레임워크로 작업을 하던 중 오류가생겨서 질문합니다.
개발환경에서 작업하는도중 콘솔창에 사용자통계집계에 관한 오류가 종종 발생합니다.
/src/main/resources/egovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Oracle.xml 에서 <!-- 사용자 통계 집계 --> <insert id="UserStatsDAO.summaryUserStats"> 이부분에서 에러가 발생합니다.
오류의 내용은 ORA-00001: unique constraint (HOSPITAL.COMTSUSERSUMMARY_PK) violated
pk규칙에 맞지않아 생기는 오류같은데 어떻게 수정해줘야할지 궁금해서 질문합니다.
바쁘시겠지만 빠른시일 내에 답변좀 부탁드릴게요~
에러 메시지는 따로 첨부했습니다.
개발환경에서 작업하는도중 콘솔창에 사용자통계집계에 관한 오류가 종종 발생합니다.
/src/main/resources/egovframework/sqlmap/com/sts/ust/EgovUserStats_SQL_Oracle.xml 에서 <!-- 사용자 통계 집계 --> <insert id="UserStatsDAO.summaryUserStats"> 이부분에서 에러가 발생합니다.
오류의 내용은 ORA-00001: unique constraint (HOSPITAL.COMTSUSERSUMMARY_PK) violated
pk규칙에 맞지않아 생기는 오류같은데 어떻게 수정해줘야할지 궁금해서 질문합니다.
바쁘시겠지만 빠른시일 내에 답변좀 부탁드릴게요~
에러 메시지는 따로 첨부했습니다.
A
안녕하세요.. 최진용님..
해당 부분은 스케쥴러에 의해 호출이 되는데..
매일 이전 하루에 대한 데이터를 집계하도록 되어 있습니다.
설정은 context-scheduling.xml에 다음과 같이 되어 있는 부분입니다.
<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에 다음과 같이 되어 있는 부분입니다.
<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시에 호출되도록 하는 설정입니다.
그럼.. 즐거운 하루되십시오.
감사합니다.