2012-11-27 3 views
2

기괴한 문제가 있습니다. 먼저 솔루션의 아키텍처에 대해 조금 설명 할 것입니다.한 번만 호출해야하는 경우 여러 번 호출되는 저장 프로 시저

우리는 WCF RESTful 웹 서비스에서 제공하는 Android 및 iOS 용 모바일 응용 프로그램을 보유하고 있습니다. 웹 서비스는 IIS 7에서 호스팅되며 Windows 서비스로 실행되는 서비스 계층에 대한 프록시입니다. 웹 서비스는 WCF TCP 바인딩을 사용하여 서비스 계층과 통신합니다.

서비스 계층은 SQL Server 2008 인스턴스의 저장 프로 시저를 호출합니다. 우리는 .NET Framework 4 및 Microsoft Enterprise 라이브러리 버전 5.0을 사용하고 있습니다. 많은 웹 서비스 호출로 인해 저장 프로 시저 호출이 발생합니다.

이제 문제가 발생했습니다. 웹 서비스 중 하나는 단일 웹 서비스 호출로 인해 하나의 저장 프로 시저가 1 초 이내에 여러 번 호출되는 것입니다. 우리는 SQL Server에서 추적 유틸리티를 사용했으며 동일한 매개 변수 집합을 사용하여 여러 번 호출되는 저장 프로 시저를 볼 수 있습니다. 이것은 우리 웹 사이트에서 거대한 성능 문제를 일으키고 있습니다.

나는 이것이 무엇을 일으키는 지 전혀 모릅니다. 여러 번 호출되는 동일한 저장 프로 시저입니다. 나는 IIS 로그를 보았고 장치는 웹 서비스를 여러 번 호출하지 않으므로 내부 버그 여야합니다. 필자는 웹 서비스와 서비스 계층의 구현을 살펴 보았으며 스토어드 프로 시저가 여러 번 호출되는 루프가 없다.

나는 이것에 대한 통찰력을 가지고 있습니다. 이 문제의 원인을 모르지만 WCF 또는 Enterprise 라이브러리의 버그를 의심합니다.

읽어 주셔서 감사합니다.

+1

개인적인 것은 없지만 WCF 또는 엔터프라이즈 라이브러리의 버그는 아닙니다. http://www.codinghorror.com/blog/2008/03/the-first-rule-of-programming-its-always -your-fault.html – Bridge

+0

여러 번 전화를 걸 었는지 또는 같은 통화와 관련된 여러 개의 일정을 보았습니까? –

+0

예. 우리는 SQL 서버 추적 유틸리티를 실행 중이며 호출이 여러 번 이루어진 것을 볼 수 있습니다. 사실 몇 초 내에 여러 번. –

답변

0

저장된 프로 시저가 실제로 다른 소스가 아닌 우리 소스 코드에서 여러 번 호출되도록하려면 log4net에 대한 호출을 추가하여 SP에 호출을 기록하십시오. 마술처럼, 이로 인해 문제가 사라졌습니다. 나는 왜 그런지 이해하지 못한다. 모든 것이 잘 끝난다.