고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.
커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.
문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.
- 뒤끝 SDK 버전 : 5.14.1
- 프로젝트명 : 픽셀 법사 키우기(DEV)
- 스테이터스 코드 : 400
- 에러 코드 : TransactionCanceledException
- 에러 메시지 :
안녕하세요.
우편 기능 사용중 에러가 발생하여 문의드립니다.
문제 상황
1.동일한 컴퓨터에서 LD 플레이어 두 개를 실행하여 각각 다른 계정으로 제 게임을 플레이 중입니다.
2. LD 플레이어의 멀티 컨트롤 기능을 사용해 두 인스턴스에서 동일한 마우스 입력을 동기화했습니다.
3. 두 계정 모두 관리자 우편을 받아보는 작업을 진행했으며,Backend.UPost.ReceivePostItem
API를 호출했습니다.
4. 이 과정에서 한쪽 인스턴스에서 스테이터스코드: 400, 에러코드: TransactionCanceledException 에러가 발생했습니다.
문제 발생 예상 시나리오
- 관리자 우편 발송 시, 동일한
inDate
값을 가진 우편을 받습니다.- LD 플레이어 멀티 컨트롤로 인해 두 개의 인스턴스에서 동시에 동일한
inDate
우편을 처리하려는 요청이 서버로 전송됩니다.- 뒤끝 서버가 트랜잭션 관리 과정에서 동일한
inDate
에 대한 중복 요청으로 인해 하나의 요청만 처리하고, 다른 요청은 충돌 방지를 위해 취소합니다.- 이에 따라 TransactionCanceledException 에러가 발생한 것으로 보입니다.
의심되는 문제 원인
- 관리자 우편의 동일한
inDate
관리자 우편이 모든 계정에 동일한inDate
값으로 제공되어, 서버가 이를 동일 데이터로 처리하려고 한 것 같습니다.- LD 플레이어 멀티 컨트롤로 인한 동시성 문제
LD 플레이어의 멀티 컨트롤 기능으로 인해 두 개의 인스턴스에서 동일한 타이밍에 요청이 발생하면서 서버에서 트랜잭션 충돌이 발생했을 가능성 있을거 같습니다.- 뒤끝의 트랜잭션 관리 정책
동일한inDate
를 사용하는 두 요청이 동시에 도착할 경우, 하나의 요청만 처리하고 나머지를 취소하는 트랜잭션 관리 로직이 적용되어 있을 수도 있을거 같습니다.
위 내용 확인 한번 부탁드립니다.
감사합니다.