2010-06-24 5 views
0

매시간 실행되는 예약 된 SSIS 패키지에 대해 임의로 오류가 발생합니다. 가장 재미있는 점은 검사 점 파일을 삭제하고 패키지를 다시 실행해도 문제가 없지만 오류가 나중에 실행될 수 있다는 것입니다. 왜 이런 일이 일어나는지 전혀 모른다. 다음은 전체 오류 메시지입니다."변수 잠그지 못함"SSIS 오류

Executed as user: UserNameChanged. Microsoft (R) SQL Server Execute Package Utility Version 10.0.2531.0 for 64-bit Copyright (C) Microsoft Corp 1984-2005. All rights reserved.
Started: 09:21:40 Error: 2010-06-24 09:21:45.83 Code: 0xC0014054
Source: Save MaxLSN & Extract Date
Description: Failed to lock variable "User::UpdateProcessControlQuery" for read access with error 0xC0010001 "The variable cannot be found. This occurs when an attempt is made to retrieve a variable from the Variables collection on a container during execution of the package, and the variable is not there. The variable name may have changed or the variable is not being created.". End Error Error: 2010-06-24 09:21:45.84 Code: 0xC0024107 Source: Save MaxLSN & Extract Date Description: There were errors during task validation. End Error DTExec: The package execution returned DTSER_FAILURE (1). Started: 09:21:40 Finished: 09:21:45 Elapsed: 4.875 seconds. The package execution failed. The step failed.

이 항목을 추가하려면 100 개 이상의 패키지가 한 그룹에 20 개 패키지, 한 시간에 5 개 그룹으로 실행되어야합니다. 그리고이 '가변 잠금'오류는 매주기마다 적어도 한 번 이상 나타납니다. 그래서 근본 원인을 찾아야합니다. 누구든지 도울 수 ...

답변

3

I이 병렬로 실행하는 복수의 구성 요소에 기입 된 동일한 변수의 존재와 관련된 것으로 의심되는 것이다. 본질적으로 이것은 해당 변수에 대한 경쟁 상태입니다.

예를 들어, 구성 요소 A와 구성 요소 B가 동시에 실행될 수 있고 주어진 변수에 쓰는 경우 구성 요소 B가 실행을 시도 할 때 구성 요소 A가 해당 변수에 쓸 수 있습니다 (사용할 수 없도록 렌더링 할 수 있습니다). 두 작업의 시작 시간이 실행 ​​사이에 달라 지므로 패키지가 임의로 실패하는 경우가 발생할 수 있습니다.

이 문제를 해결하려면 추가 변수를 추가하여 공유되지 않도록하거나 종속성을 통해 다른 구성 요소가 시작되기 전에 한 구성 요소를 완료해야합니다.

희망이 도움이됩니다.

0

변수가 시퀀스 패키지에 없으면 다른 작업 또는 상위 패키지에서 가져올 필요가 있습니다. 나는 변수의 범위 나 런타임에 가변 값을 생성하는 문제를 생각한다.

감사 prav

+0

아니요. 그렇다면 검사 점 파일을 삭제 한 후에 패키지가 실행되는 이유는 무엇입니까? – Faiz

0

작업 편집기에서 연결 관리자 속성을 확인하고 확인하십시오. 다른 패키지에서 작업/연결 관리자를 복사하면 모든 속성이 올바르게 다시 정의되었는지 확인해야합니다.

0

나는 동일한 문제가있었습니다. 수정 날 위해 일한 :

근본 원인 : 나는 변수를 생성하고 "행 수"의 값을 보유하기 위해 "데이터 흐름"내부에서 사용했습니다. 이 후, "control Flow"> "Script Task"에서이 변수를 사용하려고했습니다. 그것은 작동하지 않았고 나에게 게시 된 것과 같은 오류를 주었다.

수정 : 변수를 생성하고 "스크립트 작업"에서 사용했습니다. 스크립트 작업에 사용 된 후 데이터 흐름> 행 개수에서 행 개수 값을 할당했습니다.

나에게 이상하게 보였지만 효과가 있었다. :)

관련 문제