문제

SQL Server Failover Cluster 또는 Mirror가있는 환경에서 오류를 어떻게 처리하는 것을 선호합니까? 두 가지 옵션이있는 것 같습니다.

  1. 전체 현재 클라이언트 요청에 실패하고 사용자가 다시 시도하십시오.
  2. DAL에서 오류를 잡고 거기에서 다시 시도하십시오.

각 접근 방식에는 장단점이 있습니다. 내가 함께 일한 대부분의 상점은 #1이지만 많은 상점은 엄격한 거래 경계를 따르지 않으며 실패시 문제를 해결하기 위해 열린 상태로 보이는 것처럼 보입니다. 그럼에도 불구하고, 나는 그들을 #2로 말하는 데 어려움을 겪고 있습니다. 이는 또한 더 나은 사용자 경험을 초래해야합니다 (한 가지 캐치는 장애 조치가 발생하는 동안 잠재적으로 긴 지연입니다).

어떤 방식 으로든 어떤 주장도 감사 할 것입니다. 두 번째 접근법을 사용하는 경우 구현을 단순화하는 데 도움이되는 표준 래퍼가 있습니까? 어느 쪽이든, 실패한 명령의 Idempotency 부족과 관련된 문제와 같은 문제를 피하기 위해 코드를 어떻게 구성합니까?

도움이 되었습니까?

해결책

2 번은 무한 루프 일 수 있습니다. 네트워크 관련이거나 로컬 PC가 재부팅 해야하는 경우 어떻게해야합니까?

물론 1 번은 사용자에게 성가시다.

웹 사이트를 통해서만 액세스 할 수 있다면 장애 조치가 중간에 발생하지 않는 한 어쨌든 오류가 표시되지 않습니다. 우리에게는 이것이 가능성이 낮고 최종 사용자가 실현하지 못했습니다.

실제 생활에서는 웹 서버에 멋진 청정 dal이 없을 수 있습니다. 연결이 열린 상태에서 Excel 시트 연결 (대부분의 재무) 또는 Winforms가있을 수 있으므로 하나의 옵션 만 있습니다.

실패는 어쨌든 몇 초 밖에 걸리지 않아야합니다. DB 복구가 그 이상을 취하면 어쨌든 더 큰 문제가 있습니다. 그리고 그것을 다루는 것에 대해 생각해야 할만 큼 자주 발생한다면, 글쎄 ...

요약하면, 당신이 알고 싶어하는 것은 거의없고 1 번은 더 나을 것입니다. IMHO.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top