2011-04-12 3 views
3

SQL Server 2005 데이터베이스에서 실행되는 예약 된 작업이 있습니다. View에서 데이터를 가져 오는 저장 프로 시저를 실행합니다. 이보기는 연결된 Oracle 서버에 OPENQUERY으로 구성됩니다.연결이 끊어지면 SQL Server에서 Oracle 서버로의 OpenQuery가 무기한 중단됩니다.

Oracle 서버를 제어 할 권한이 없습니다.이 서버는 지리적으로나 가상적으로 SQL Server 설치와 분리되어 있습니다. 보기에는 읽기 전용 액세스 권한이 있으며 30 분마다 데이터를 가져옵니다.

경우에 따라 연결된 서버에 대한 연결이 끊어 지거나 중단되거나 응답하지 않을 수 있습니다. 이 경우 작업 (SQL Server에서) 또한 중지되어 연결이 반환 될 때까지 무기한 대기합니다. 이 시나리오에서는 작업이 실패하거나 완료되지 않으며 사용자가 누락 된 데이터에 대해 불만을 토로 할 때 가장 먼저 알 수 있습니다. 이 OPENQUERY은 (는) 연결의 '의식'을 잃게 연결된 오라클 서버에서 사용하는 경우에만입니다 -가 연결 문제가있을 경우 예상대로 실패 동일한 서버에서 데이터베이스를 쿼리

.

작업을 수행하여 링크 된 서버에 대한 연결이 끊어 지거나 실패하는 것을 인식 할 수 있습니까? 아니면 두 번째 작업을 만들어 첫 번째 작업이 중단되지 않았는지 확인해야합니까?

+0

이것이 아마도 serverfault.com 질문입니까? –

답변

0

우리는 장기 실행 작업과 비슷한 문제가있었습니다. op가 시작되고 (또한 작업을 끝내고 완료) 호출이 반환되지 않습니다. 결국 우리는 이것을 Oracle 서버에 대한 연결을 닫는 방화벽으로 추적 할 수있었습니다.

주기적으로 클라이언트에 "핑 (ping)"을 수행하여 방화벽이 포트를 닫지 않도록하는 SQLNET.EXPIRE_TIME 매개 변수를 서버에서 사용할 수 있습니다. 아마도 이것은 귀하의 경우에도 도움이 될 것입니다.

+0

맞아요, 문제가 해결 될 것 같네요! 불행하게도 이것은 오라클 환경과 비슷하게 보입니다 (즉, 다른 국가, 다른 법적 실체 등에서 지리적으로). 오라클과 '이야기하는'SQL Server와 비슷한 것이 있다면 우리는 사업에 뛰어들 수 있습니다! – Widor

관련 문제