컬럼당 압축가능 크기는 최대 400kb 관련

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 :
  • 프로젝트명 : 쉐도우 / 다크 서바이벌
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

안녕하세요. 뒤끝 데이터 Write 사용을 할 때, Json이 크기가 너무 커서에러가 발생할 때,
Backend.GameData.TransactionWriteV2 : statusCode : 400
errorCode : TransactionCanceledException
message : Transaction cancelled, please refer cancellation reasons for specific reasons [ValidationError, None]
이렇게 에러가 발생하고 있습니다.

기존에는 에러 내역이 달랐던거 같은데 혹시 메시지가 바뀐걸까요? 아니면 해당 메시지가 400KB 초과 메시지가 맞나요~?

안녕하세요 개발자님
해당 에러는 트랜잭션 실패시 안내되는 에러메시지로, [ ] 안의 값으로 어떤 param 요청으로 인해 문제가 발생한지 이유가 표시되며 안내됩니다.

확인시 첫번째 요청 param 요청에서 실패한 것으로 확인되며,
item 테이블 요청에 대한 데이터가 400kb 를 초과하여 발생한 것으로 확인됩니다.
동일 에러 내역 확인시 모두다 item 테이블 요청에 대한 데이터가 400kb를 초과해 발생한 내역들로 확인되니 요청값을 확인하여 주시면 감사하겠습니다.

에러가 나는 상황을 인지하고 있습니다. 다만 해당 에러가 발생했을 때, 에러로그를 통해서 유저에게 “인벤토리가 가득 찼으니 비워주세요” 라는 안내를 하고 싶습니다.

조금 더 부연설명을 드리자면, 현재는 Transaction 실패로 안내가 오고 있기 때문에 이것이 Item 테이블 용량 초과로 인한 것인지, 아니면 다른 이유인지 구분을 못하고 있습니다~!

관련 정보 조금 더 상세히 확인해 안내드리겠습니다.

좋아요 1

트랜잭션 에러의 ValidationError 에러는 다음과 같이 다양한 경우에 발생할 수 있는 것으로 확인됩니다.

  • 하나 이상의 매개 변수 값이 잘못된 경우
  • 업데이트할 항목이 허용된 최대 크기를 초과한 경우
  • 업데이트 식의 피연산자에 잘못된 데이터 유형이 있는 경우
  • 크기가 지원되는 범위보다 큰 숫자 또는 숫자 오버플로를 저장하는 경우
  • 업데이트할 속성에 대한 유형이 일치하지 않는 경우
  • 중첩 수준이 지원되는 제한을 초과한 경우

요청 값 상으로는 허용된 크기를 초과한 경우에도 해당하는 상황입니다.

추가적으로 트랜잭션으로 400kb를 초과하는 데이터 혹은 그에 준하는 데이터를 쓰기/읽기 요청할 경우
일반 update나 get 요청에 비해 DB 처리량이 배로 발생합니다.

Item 테이블의 경우 트랜잭션 쓰기를 이용하시기보다는 독립적으로 update를 이용하시고, 400kb 초과하는 경우 발생하는 Item size to update has exceeded the maximum allowed size 에러에 따라 후속 처리를 해주는 방향을 추천드립니다.

음… 그러면 Transaction 이용하는 경우엔 Item size to update has exceeded the maximum allowed size 이 에러를 확인할 수 없단 말씀이신거죠?

상세 에러발생 내역을 확인하였을 때는 두 에러가 모두 확인되고 있습니다.

트랜잭션 요청에 있어 Item size to update has exceeded the maximum allowed size와
ValidationError 에러 발생이 모두 확인되고 계시는 상황이시고,
ValidationError 와 관련하여서는 위 안내드린것처럼 크기 외에 다른 경우들이 있을 수 있습니다.
에러가 발생한 요청값과 관련해 일단 update 요청을 진행해보시거나,
해당 요청값들에 변화를 주며 에러의 정확한 원인을 확인해 이용해주셔야 합니다.

또한 인벤토리 가득참과 관련하여서는 현재와 같이 DB요금이 많이 발생하는 데이터 크기로써 적용하시기보다는
정확한 아이템 수량의 한계를 정해주고 이용하시는 방향을 권장드립니다.