다음: SQL Azure 데이터베이스 사용 하 여 유용한 배포 (2)
SQL Azure 연결 더 이상 거래에 대 한 기존 연결을 끊습니다 또는 트랜잭션이 유휴 오랜 시간 동안 연결 하는 동안. 않으려면 SQL Azure에 의해 차단 되 고, 5 분 이내에 위의 두 가지 문제를 해결 해야 합니다. 얼마나 빨리 그 5 분 처리 합니까?이 유휴 거래를 피하기 위해 가능한 가장 짧은 시간에 연결을 유지 해야 합니다. 명령으로 할 때 신속 하 게 제한 된 시간에 연결 하 고 풀에 링크를 반환 합니다.
데모 코드는 다음과 같습니다.
사용 하 여 (SqlConnection cn = 새로운 SqlConnection (...))
{
cn입니다. 오픈 ();
사용 하 여 (SqlCommand cmd = CN. CreateCommand ())
{
Cmd.commandtext =...;
...
}
}
때 연결 풀에 배치 됩니다, 연결 실패의 확률이 최소화 됩니다. 그러나, 명령 5 분 이상 실행 하는 경우 처리 하기 어려운, 연결 SQL Azure에 의해 해제 됩니다. 업데이트 일괄 처리 수에 대 한 작은 작업으로 나눌 수 있습니다. 또한, 데이터베이스 잘 색인이 생성 되도록 해야 합니다.
SQL Azure 데이터베이스 작업을 제한 하는 경우 시스템 오버 로드 된 때문에 연결이 연결이 끊어집니다.
어떤 경우에 분리를 방지 하기 위해, 연결 오류를 처리 하 고 사용자 개입 없이 투명 하 게 다시 연결할 수 있도록 하는 SQL Azure 응용 프로그램을 개발 해야 합니다.
또한, 코드는 시간 제한 때문에 다시 시도 된 데이터베이스 업데이트 처리 또는 분리를 추가 할 수 있습니다. 이 추가 코드를 많이 있을 것입니다 하지만 다행히도 Microsoft는 몇 가지 작업을 완료 했습니다. "SQL Azure 클라이언트 응용 프로그램에서에서 과도 상태를 처리 하는 것에 대 한 유용한" Microsoft AppFabric 고객 자문 그룹의 웹사이트에 검색 했다. 이 문서에서는 연결 오류가 발생할 수 및 그들을 처리 하는 방법에 대 한 샘플 코드를 제공 합니다. 샘플 코드를 다운로드할 수 있습니다이 문서의 끝에 링크가 되어있습니다.
마지막 팁 하는 방법을 SQL Azure에 대 한 고객 지원을 받을입니다. 응용 프로그램 문제가 발생 하는 경우 도움이 필요, 응용 프로그램 세션의 ID를 얻을 있는지 확인 하십시오. SQL Azure 오류 및 그들의 웹 사이트 활동을 기록합니다. 만약 당신이 그들에 게는 세션 ID, 지원 팀 무슨 일인지 알아 내려고 쉽게 만들 수 있습니다.
다음 C# 코드에서는 연결의 세션 ID를 검색 하는 방법을 보여 줍니다.
Cmd.commandtext = "선택" 변환 (nvarchar) context_info ());
SessionId = 새 Guid (cmd. ExecuteScalar의 행정구역 ToString ());
이 문서는 개발자와 데이터베이스 관리자가 SQL Azure를 다룰 때 발생할 수 있습니다 및 이러한 문제를 처리 하는 방법에 지침과 모범 사례를 제공 합니다 몇 가지 문제를 설명 합니다.