2008-10-15 3 views
3

매일 아침 우리는 지난 2 개월 동안 AS400/iSeries/i6 (현재 IBM이 무엇이든간에)에 DB2에 수많은 쿼리 (~ 10000)를 발행하는 프로세스가 있습니다. 운영자는 질의가 야간 처리를 완료하지 못하게하는 파일 몇 개를 잠그고 있다고 불평했습니다. 쿼리는SQL Server 2000의 DB2/AS400에서 OpenQuery로 잠금을 발생

Select [FieldName] from OpenQuery('<LinkedServerName>', 'Select [FieldName] from [LibraryName].[FieldName] where [SomeField]=[SomeParameter]') 

나는 집의 iSeries의 측 전문가 아닙니다 누군가가 AS400/DB2의 관점에서 잠금 에스컬레이션에 어떤 통찰력이 있다면 궁금 예컨대, 매우 simplisitic 있습니다. 잠금을 유발하는 ID는 연결된 서버를 등록한 ID로 확인되었으며 [Library]와 [FileName]이 우리가 발행하는 쿼리와 일치하기 때문에 가장 가능성이 높습니다.

최근에 막 시작되었습니다. AS400이 잠금을 확대시키는 원인이되는 select 명령문이 가능합니까? 문제는 수동 개입없이 해제되지 않는다는 것입니다.

답변

3

"FOR READ ONLY"를 쿼리에 추가하면 레코드를 검색 할 때 레코드가 잠기지 않습니다.

0

RPG/COBOL/JPL 작업 프로그램에서 AS/400 측면의 파일에 기록하면 파일 잠금이 발생합니다 (기본적으로 생각합니다). 이 작업은 귀하가 독서 중일 때이 자물쇠를 얻을 수 없습니다. 우리가 사용하는 솔루션은 ... 작업이 실행 중일 때 파일을 읽지 않습니다. 우리는 Excel에서 큰 일람표를 작성하고 모든 SQL Server를 '/ 400'의 작업을 중요도 및 서버에 대한 색상 코드가있는 시간 슬롯에 배치했습니다. 그런 식으로 충돌이나 오래된 파일을 추출하지 않습니다.

+0

읽기 전용 읽기는 파일을 잠그지 않습니다. 다른 작업에서 파일을 업데이트하는 중이면 읽기 작업에서 잠금 문제가 발생해야합니다. 그러나 이와 같은 문제를 예방하기 위해서는 두 가지 작업을 서로 다른 시간에 예약해야합니다. –

0

반복 읽기에 대한 잠금을 초래하는 확약 제어가있을 수 있습니다. 확약 제어를 변경하려면 <linkedServerName>과 연관된 SQL Server ODBC 연결을 점검하십시오.

관련 문제