트랜잭션 오류 관련 문의

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

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

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

  • 뒤끝 SDK 버전 : 5.11.8
  • 프로젝트명 : Commandos
  • 스테이터스 코드 : 400
  • 에러 코드 : ValidationException
  • 에러 메시지 : Invalid UpdateExpression: Expression size has exceeeded the maximum allowed size

칼럼은 290개를 넘지 않고 있는데, 아무래도 용량이 오버된 것 같습니다.
Param 사이즈를 체크해서 보내고 싶은데 유용한 방법이 있을까요?

아 근데 다시보니 4mb 를 넘지는 않을거 같긴 합니다.
< “idx”:000000,“level”:0 > 과 같은 식으로 칼럼에 들어가는 정보들인데요. 해당 칼럼이 290개가 되더라도 4mb 를 넘지는 않을 것 같습니다.
그리고 에러가 났을 때 param 의 개수는 290개 이하이기도 했습니다.

의 내용을 참고하여 param 의 사이즈를 측정해봤는데, 6081 로 표시가 됩니다. param 의 개수는 285개 입니다.

안녕하세요 개발자님,
해당 에러는 param(요청된 컬럼)의 수가 많아 발생된 에러로 확인됩니다.
요청 내역의 처리에 있어 param 으로 추가된 285개의 값 외에,
뒤끝의 인증 데이터를 처리하기 위한 기본 컬럼 정보들로 인해 290개가 초과되며 에러가 발생한 것으로 확인됩니다.
콘솔에서 확인 가능한 gamer_id, inDate, owner_inDate, updatedAt 등의 정보 외,
노출이 되지 않는 일부 정보까지 포함되어 계산되기에 이점 참고하여 너무 많은 param값이 요청되지 않도록 테이블의 컬럼을 적절하게 구성/조정하여 주시면 감사하겠습니다.

추가적인 테스트를 진행했는데, 171개 칼럼을 수정했을 때 에러가 발생합니다. 168개까지는 문제가 없었습니다. 171개 칼럼의 용량은 3649바이트 입니다.

안내가 다소 지연되어 죄송합니다.

관련 내용 상세 확인 시,
트랜잭션 요청의 경우 TransactionValue로 설정되는 컬럼 이름의 길이에 따른 UpdateExpression 조건이 약 4kb를 초과할 수 없어 에러가 발생하는 것으로 확인됩니다.

((컬럼1 이름 byte + 4) * 2 ) + ((컬럼2 이름 byte + 4) * 2 ) + … 의 합이 약 4kb를 넘을 수 없어,
현재 처리하고 계신 컬럼 8byte를 기준으로는 169개까지 처리가 가능합니다.

테이블 내 수 많은 컬럼이 존재하는 경우,
데이터 변동이 있는 컬럼에 한하여 처리될 수 있도록 TransactionValue를 적용하여 주시면 감사하겠습니다.
관련 내용은 개발자 문서 내에도 정확히 안내될 수 있도록 하겠습니다.

아 그렇군요. 답변 감사드립니다!

아 칼럼 이름 용량에 gamer_id, inDate, owner_inDate 등도 포함되는거죠?

TransactionValue 의 경우 해당 컬럼명들은 포함되지 않습니다.
단, updateAt 및 일부 노출되지 않는 인증 정보가 포함되어 영향은 발생하기에 약간의 영향이 있는점 참고 부탁드립니다.

넵 답변 감사드립니다~