SQL Server/SQL Server Tip

SSRS SocketException

SungWookKang 2015. 7. 22. 10:36
반응형

SSRS SocketException

 

  • Version : SQL Server 2008, 2008R2, 2012

 

SQL Server 솔루션에 포함된 SSRS(SQL Server Reporting Service)서비스는 SQL Server의 데이터베이스의 데이터를 기반으로 보고서를 생성 및 퍼블리싱 기능을 제공한다.

 

이번 포스트는 CSS SQL Server Engineer에 기재된 내용으로 SQL Server 2008에서 2012로 업그레이드 후 리포팅 서비스에서 발생한 SocketException의 트러블슈팅에 관한 내용이다. 필자가 이해한 내용을 정리하였으며 번역의 오류나 기술적 오류 가능성이 있기에 원문을 참고 한다.

 

SQL Server 2008에서 SQL Server 2012로 업그레이드를 하고 난 뒤 로그에 다음과 같은 오류가 발견되었다.

 

에러 로그에는 Dns.GteAddrInfo가 기록되어 있었으며 이 항목은 Reporting Services 구성관리자와 관련이 있다.

 

문제는 서버의 형식에서 서버이름,PORT(예:myserver.1433)를 사용하려고 할 때 문제가 발생 하였다. 일반적인 연결방식으로는 SQL Native Client 또는 ODBC / OLEDB 공급자를 사용하여 작동한다. 구성관리자는 문자"\"를 파싱하여 명명된 인스턴스를 분석한다. 명명된 인스턴스 이름을 지정하지 않으면 기본 포트를 사용한다.

 

위의 오류는 서버는 명명된 인스턴스이고 UDP 1434 SQL Browser 포트가 서버 사이의 방화벽으로 차단되었다. 명명된 인스턴스에는 실제 포트번호 또는 명명된 파이프로 명명된 인스턴스 이름을 변환하는 SQL Browser를 사용한다. SQL Browser를 사용할 수 없는 경우는 데이터베이스에 연결할 수 있는 실제 포트 번호를 입력해야 한다.

 

 

오류 로그에서 SQL Server 2008의 호출 스택과 SQL Server 2012의 호츨 스택이 다른다는 것에 주의하자.

[SQL Server 2008]

ReportServicesConfigUI.RSDatabase.IsLocalDbServer(String dbServer)

 

[SQL Server 2012]

Microsoft.SqlServer.Configuration.RSExtension.DsnUpgradeBlockers.IsLocalDbServer(String dbServer)

 

 

[참고자료]

 

 

 

2013-08-20 / 강성욱 / http://sqlmvp.kr

 

 

반응형