뒤끝 데이터 베이스 관련으로 질문드립니다.

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

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

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

  • 뒤끝 SDK 버전 : 5.18.6
  • 프로젝트명 : 용감한 댕댕이2 Test
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

System.Exception: Query failed: Request failed after 3 retries: WebRequest failed: HTTP/1.1 503 Service Unavailable (Code: 503, Result: ProtocolError)
at BACKND.Database.BTask1[T].get_Result () [0x00022] in .\Library\PackageCache\com.backnd.database@0.0.11\Tools\BTask.cs:455 at BACKND.Database.BTaskAwaiter1[T].GetResult () [0x00000] in .\Library\PackageCache\com.backnd.database@0.0.11\Tools\BTask.cs:651
at BackndManager.GetDataBaseCoupon[T] (System.Int32 retry) [0x000ee] in D:\GitHub\puppyNA\Assets\Script\Backnd\BackndManager.cs:2881

=====================================

var coupon = await dbClient.From()
.Where(c => c.UUID == userUUID).FirstOrDefault();

현재 위와 같은 에러가 발생중이고, 아래 코드를 통해서 발생하는 중입니다.어떤 부분이 문제인지 알 수 있을까요?

안녕하세요 개발자님,
보다 정확한 확인을 위해 관련 코드 전문을 공유해주실 수 있을까요?

public async Task<string> GetDataBaseCoupon<T>(int retry = 0) where T : BaseModel, IBackndDatabaseCoupon, new()
    {
        if (retry >= 5)
        {
            Logger.LogError($"{GetType()} : 쿠폰 발급 재시도 초과");
            return string.Empty;
        }

        try
        {
            Logger.Log($"{GetType()} : UUID체크 {userUUID}");

            //데이터베이스에서 발급받은 쿠폰이 있는지 탐색
            var coupon = await dbClient.From<T>()
            .Where(c => c.UUID == userUUID).FirstOrDefault();

            if(coupon != null)
            {
                Logger.Log($"{GetType()} : 이미 발급받은 쿠폰 {coupon}");
                return coupon.couponCode;
            }

            //데이터베이스 쿠폰 중 10개를 불러옴
            var couponList = await dbClient.From<T>().
            Where(c => c.UUID == null).Take(10).ToList();

            if(couponList != null && couponList.Count > 0)
            {
                int rand = UnityEngine.Random.Range(0,couponList.Count);
                var myCoupon = couponList[rand];

                int number = coupon.couponNo; //쿠폰의 인덱스
                myCoupon.UUID = userUUID; //현재 쿠폰 사용한 사람을 나로 설정

                //쿠폰을 내가 사용했다고 업데이트
                var result = await dbClient.From<T>()
                .Where(c => c.couponNo == number && c.UUID == null)
                .Update(myCoupon);

                Logger.Log($"{GetType()} : 업데이트 결과 {result.AffectedRows}");

                if(result.AffectedRows > 0)
                {
                    Logger.Log($"{GetType()} : 쿠폰 발급 성공");
                    return coupon.couponCode;
                }
                else
                {
                    Logger.Log($"{GetType()} : 다른 유저가 선점, 재시도 진행");
                    var retryCouponCode = await GetDataBaseCoupon<T>(retry + 1);

                    return retryCouponCode;
                }
            }
            else
            {
                Logger.Log($"{GetType()} : 사용 가능한 쿠폰이 없습니다");
                return string.Empty;
            }
        }
        catch(System.Exception e)
        {
            Logger.Log($"{GetType()} : 쿠폰 처리 에러 {e}");
            return string.Empty;
        }
    }

호출하는 함수코드 전문입니다

테이블 정의 C# 코드 및 초기화 관련 코드까지 관련 코드를 모두 공유해주실 수 있을까요?

using BACKND.Database;

[Table("coupontest", TableType.FlexibleTable)]
public class Coupontest : BaseModel,IBackndDatabaseCoupon
{
    public int couponNo { get => CouponNo; set => couponNo = value; }
    public string couponCode { get => CouponCode; set => CouponCode = value; }
    public string UUID { get => GamerUuid; set => GamerUuid = value; }

    [PrimaryKey(AutoIncrement = true)]
    [Column("coupon_no", DatabaseType.Int32, NotNull = true)]
    public int CouponNo { get; set; }

    [Column("coupon_code", DatabaseType.String)]
    public string CouponCode { get; set; }

    [Column("gamer_uuid", DatabaseType.String)]
    public string GamerUuid { get; set; }
}
//데이터 베이스 초기화
    public IEnumerator InitDataBase()
    {
        dbClient = new Client(userUUID);
        yield return dbClient.Initialize();

        Logger.Log($"{GetType()} : 뒤끝 데이터베이스 초기화");
    }

이 두 코드를 말씀하시는게 맞으실까요?

var coupon = await dbClient.From<Coupontest>()
.Where(c => c.GamerUuid == userUUID).FirstOrDefault();

위 안내드린 방식으로 출 하여도 같은 오류가 발생 하는지 확인 부탁 드립니다.
서버 다운 혹은 재시작 로그가 확인되지 않으며, 해당 호출에 대한 서버 로그도 확인되지 않고 있습니다.
내부에서 간단한 접속 테스트도 진행 하였지만 문제 없이 통신이 되는 것으로 확인이 됩니다.

System.Exception: Query failed: Request failed after 3 retries: WebRequest failed: HTTP/1.1 503 Service Unavailable (Code: 503, Result: ProtocolError)
at BACKND.Database.BTask1[T].get_Result () [0x00022] in .\Library\PackageCache\com.backnd.database@0.0.11\Tools\BTask.cs:455 at BACKND.Database.BTaskAwaiter1[T].GetResult () [0x00000] in .\Library\PackageCache\com.backnd.database@0.0.11\Tools\BTask.cs:651
at BackndManager.GetDataBaseCoupon (System.Int32 retry) [0x00094] in D:\GitHub\puppyNA\Assets\Script\Backnd\BackndManager.cs:2874

 try
        {
            var coupon = await dbClient.From<Coupontest>()
            .Where(c => c.GamerUuid == userUUID).FirstOrDefault();
        }
        catch(System.Exception e)
        {
            Logger.Log($"{GetType()} : 쿠폰 처리 에러 {e}");
        }

위 코드만 실행해도 동일한 에러가 발생중입니다.

//데이터 베이스 초기화
    public IEnumerator InitDataBase()
    {
        dbClient = new Client(userUUID);
        yield return dbClient.Initialize();

        Logger.Log($"{GetType()} : 뒤끝 데이터베이스 초기화");
    }

위 초기화 코드로 인해 발생하는 문제로 확인됩니다.

userUUID가 아닌 프로젝트의 데이터베이스 고유 UUID를 넣어서 시도 바랍니다.

답변해주셔서 감사합니다!