context-transaction.xml 설정에 대한 질문입니다.
- 작성자 :
- 이*배
- 작성일 :
- 2013-11-12 23:07:55
- 조회수 :
- 1,259
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
안녕하세요.
context-transaction.xml 설정에 대한 질문입니다.
현재 전자정부프레임워크2.5를 사용중입니다.
spring 에서 제공하는 transaction 을 사용하려합니다.
context-transaction.xml 파일을 수정중입니다.
기본적으로 egov sample 데이터를 수정하였습니다.
수정내역은 아래와 같습니다.
<aop:pointcut id"requiredTX" exepression="execution(* egovframework.rte.sample..impl.*Impl.*(..)) && execution(* egovframework.rte.sample.test..impl.*Impl.*(..)))" />
위와 같이 &&로 test도 적용가능하게끔 한부분을 더 추가하였습니다.
제가 이해한것이 맞는지 위 구문에 대한 간략한 설명좀 부탁드립니다.
그리고 트랜잭션을 적용하려면 루핑 구문들을 Impl에서만 해야한다는대 맞는건가요?
하나더. 오류없이 구동은 되며 실제 sql 실행시 아래와 같이 로그가 올라옵니다.
PROPAGATION REQUIRED,ISOLATION DEFAULT,-Exception
위 문구가 무엇인지 알고 싶습니다.
마지막으로 50개의 데이터를 업데이트가 발생할때 트랜잭션을 적용하려하는대 위와 같이 적용하여 정상적으로 작동할때 다른 유져가 똑같은 데이터 50개를 동시에 업데이트를 할경우 어떻게 되는건가요?
두 유져 모두 정상적으로 업데이트가 되기를 희망합니다.
위 설정ㅇ로 가능한가요?
그리고 Exception 발생되었을때 트랜잭션 롤백이 된다고 보았는대 모든 상황에 적용할수는 없는건가요? 방법좀 알려주세요.
내용이 장황하고 길지만 조언 부탁드립니다.
바쁘시더라도 위 질문들 빼먹지 마시고 답변 부탁드립니다.
감사합니다.
context-transaction.xml 설정에 대한 질문입니다.
현재 전자정부프레임워크2.5를 사용중입니다.
spring 에서 제공하는 transaction 을 사용하려합니다.
context-transaction.xml 파일을 수정중입니다.
기본적으로 egov sample 데이터를 수정하였습니다.
수정내역은 아래와 같습니다.
<aop:pointcut id"requiredTX" exepression="execution(* egovframework.rte.sample..impl.*Impl.*(..)) && execution(* egovframework.rte.sample.test..impl.*Impl.*(..)))" />
위와 같이 &&로 test도 적용가능하게끔 한부분을 더 추가하였습니다.
제가 이해한것이 맞는지 위 구문에 대한 간략한 설명좀 부탁드립니다.
그리고 트랜잭션을 적용하려면 루핑 구문들을 Impl에서만 해야한다는대 맞는건가요?
하나더. 오류없이 구동은 되며 실제 sql 실행시 아래와 같이 로그가 올라옵니다.
PROPAGATION REQUIRED,ISOLATION DEFAULT,-Exception
위 문구가 무엇인지 알고 싶습니다.
마지막으로 50개의 데이터를 업데이트가 발생할때 트랜잭션을 적용하려하는대 위와 같이 적용하여 정상적으로 작동할때 다른 유져가 똑같은 데이터 50개를 동시에 업데이트를 할경우 어떻게 되는건가요?
두 유져 모두 정상적으로 업데이트가 되기를 희망합니다.
위 설정ㅇ로 가능한가요?
그리고 Exception 발생되었을때 트랜잭션 롤백이 된다고 보았는대 모든 상황에 적용할수는 없는건가요? 방법좀 알려주세요.
내용이 장황하고 길지만 조언 부탁드립니다.
바쁘시더라도 위 질문들 빼먹지 마시고 답변 부탁드립니다.
감사합니다.
A
안녕하세요. 이영배님.
다음과 같이 답변 드리겠습니다.
우선 &&가 아니라 ||로 2개의 poinout 표현식을 묶으셔여 합니다. &&는 2개의 조건을 모두 만족해야 하기 때문에 일반적으로 여러 개를 하나만 해당이되는 경우에 or 조건을 사용합니다.
추가적으로 질문 상의 두번째 표현식은 첫번째와 겹치기 때문에 추가 지정하실 필요가 없습니다.
구문에 대한 부분은 답변으로 설명드리기에 내용이 많아서 저희 교육교재(실행환경 부분) 등을 참조하시면 되실 것 같습니다.
루핑 구문은 반복적은 DB 처리를 말씀하시는 건가요?
반복적인 처리 부분은 impl 안에서 반복이 되시면 됩니다.
impl로 지정하신 클래스의 메소드들이 transaction 지정이 되어 있기 때문에 impl 안쪽의 클래스 메소드를 반복할 경우 개별 transaction으로 처리됩니다.
transaction으로 묶으시려면 반드시 impl 안의 클래스 메소드에서 호출이 시작되어야 합니다.(내부적으로 DAO를 반복하시거나 다른 impl을 반복적으로 호출하는 방법 가능)
로그 상의 정보는 transaction이 시작된 정보를 표시하는 정상적인 로그입니다.
transaction 속성에 대한 기본 설정이 propagation_required, isolation_default가 기본이고 Exception이 발생한 경우 rollback을 처리하도록 설정된 정보를 표시하는 것입니다.
마지막 질문은 기본적으로 두 사용자 모두 정상 업데이트가 됩니다.
추가적으로 질문하시는 모든 상황이라는 말씀의 의미 파악이 어려운 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
다음과 같이 답변 드리겠습니다.
우선 &&가 아니라 ||로 2개의 poinout 표현식을 묶으셔여 합니다. &&는 2개의 조건을 모두 만족해야 하기 때문에 일반적으로 여러 개를 하나만 해당이되는 경우에 or 조건을 사용합니다.
추가적으로 질문 상의 두번째 표현식은 첫번째와 겹치기 때문에 추가 지정하실 필요가 없습니다.
구문에 대한 부분은 답변으로 설명드리기에 내용이 많아서 저희 교육교재(실행환경 부분) 등을 참조하시면 되실 것 같습니다.
루핑 구문은 반복적은 DB 처리를 말씀하시는 건가요?
반복적인 처리 부분은 impl 안에서 반복이 되시면 됩니다.
impl로 지정하신 클래스의 메소드들이 transaction 지정이 되어 있기 때문에 impl 안쪽의 클래스 메소드를 반복할 경우 개별 transaction으로 처리됩니다.
transaction으로 묶으시려면 반드시 impl 안의 클래스 메소드에서 호출이 시작되어야 합니다.(내부적으로 DAO를 반복하시거나 다른 impl을 반복적으로 호출하는 방법 가능)
로그 상의 정보는 transaction이 시작된 정보를 표시하는 정상적인 로그입니다.
transaction 속성에 대한 기본 설정이 propagation_required, isolation_default가 기본이고 Exception이 발생한 경우 rollback을 처리하도록 설정된 정보를 표시하는 것입니다.
마지막 질문은 기본적으로 두 사용자 모두 정상 업데이트가 됩니다.
추가적으로 질문하시는 모든 상황이라는 말씀의 의미 파악이 어려운 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.