2

좋은 하루!SQL CLR, HttpWebRequest 및 연결 제한

저는 꽤 복잡한 MSSQL 데이터베이스를 상속 받았습니다. CLR 어셈블리 DLL은 저장 프로 시저 내에서 호출되는 코드 내에서 사용됩니다.

이러한 CLR 어셈블리 DLL 내에서 SQL 서버의 .Net 2.0 HttpWebRequest 개체를 통해 제 3 자 웹 서비스에 연락합니다. (I는이 작업을 수행하는 적절한 방법이 아니다는 것을 이해하지만,이 상속 것을 명심하고 우리는이 문제를 해결하는 과정에 있습니다하시기 바랍니다.) 여기

우리가 현재 겪고있는 곤경입니다 :

SQL CLR은 현재 두 개의 아웃 바운드 통신 스레드 (netstat에서 확인)로 제한됩니다.

.Net 구성을 통해 또는 어셈블리를 변경하는 것을 포함하여 다른 방법으로 SQL 서버에서 아웃 바운드 스레드 수를 늘릴 수있는 방법이 있습니까?

항목은 이미 시도 :

  • IIS 작업자 스레드 증가
  • 은 Machine.config에게 : 조정
    • 이 processModel를
    • httpRuntime을 조정
    • system.net connectionManagement 조정

그러나 .Net 구성이나 IIS에서 변경된 사항에 관계없이 아웃 바운드 스레드 수를 늘릴 수 없습니다. 나는

일부 다른 통계

당신은 요청할 수 있습니다, SQL의 CLR, 어셈블리, 권한 유형, 도울 수있는 일 ... 그것은 HttpWebRequests에 관련된 답을 찾으려고하는 internets을 Google'ing 시간을 보냈어요 :

.NET 버전에 기록
  • 코드 2.0
  • 는 SQL 서버 2008 R2 EE는
  • 윈도우 서버 2008 R2, 진정한 clr_enabled 7.5
  • sp_configure를 = EXTERNAL_ACCESS에
  • 조립/SP 세트를 IIS
  • SP는

당신이 제공 할 수있을 수있는 모든 정보를 사전에 감사 암호화로 지어졌습니다. 다른 것이 필요한 경우 언제든지 물어보십시오.

J.R.

답변

4

코드를 이용하여 해결하고, 특히 :

  • ServicePointManager.FindServicePoint(); 및
  • ServicePointManager.DefaultConnectionLimit.

이 두 줄을 CLR에 추가 한 다음 SQL Server에서 어셈블리를 다시 작성해야했습니다.

나중에 도움이되기를 바랍니다.

J.R.