2017-03-28 1 views
0

BIML을 사용하여 생성 된 SSIS에서 변수 값의 모든 변경 사항을 기록하려고합니다. 변수가 값을 변경할 때마다 쓴 이벤트 처리기를 만들었습니다. 로그 할 때 값이 "System.VariableValue"로 설정된 매개 변수를 사용합니다. 이 매개 변수 (variableName 및 PackageName과 함께 togheter)를 StoredProc에 전달하고 로그 테이블에 씁니다. 제 문제는 자주 (항상 그런 것은 아닙니다) 매개 변수에 아무런 가치가없는 것 같습니다. DB 로그 테이블에 새 행이 표시되므로 evnt가 올바르게 제기되고 처리되지만 매개 변수가 비어있는 것입니다. 가장 이상한 점은 때로는 값이 때로는 정확하지만 항상 같은 변수가 아니라 동일한 패키지가 아니라 아주 임의의 방식으로 기록된다는 것입니다.변수 값이있는 OnVariableValueChanged의 SSIS 로깅

여러 변수가 동시에 거의 동시에 값을 변경할 수 있다는 사실이 문제가 될 수 있습니까? (DB의 일부 논쟁)? 행 자체가 DB에 기록되기 때문에 나는 그것을 의심합니다. 나는 심지어 가치로서 '새로운 가치 ='+ '와 같은 것을 쓰려고 노력했다. 즉, 매개 변수 값을 고정 된 문자열에 추가합니다. 고정 부분은 올바르게 쓰여지지만 값은 없습니다. 값을 변경 한 변수의 이름이 항상 올바르게 기록됩니다.

이것이 무엇 때문인가?

해결 방법 SSIS의 기성 로깅 기능을 사용하려고했지만이 경우 SYSSSISLOG 테이블의 메시지 열에서이 새로운 값이 아니라 변경된 변수의 이름을 읽을 수 있습니다.

답변

1

당신은 그렇게 Event Handler를 사용할 수 thankx

. Variables 페이지로 이동하여 Variable Grid Options으로 이동하고 Raise event when variable value changes을 확인하십시오. 변경 사항 (로그)을 추적하는 데 필요한 변수는 으로 변경하여 Raise Change Event, 기본값은 False 인 변수에 대해 하나 이상의 옵션이 표시되어야합니다. 그리고 재설정 된 매개 변수의 값을, 그 값, 가장 가능성이 동일 blank 또는 whitespace에,하지만 여전히, 그 값 변경으로 인식 될 수 Event handler

UPDATE 새로운 라인에 로깅 작업을했습니다. 당신이이 일어 났을 때 매우 확실하지 않은 경우

, 당신은 특정 작업에 Breakpoint를 설정하고 볼 watch window를 추가 할 수있는 방법 값 변경이나

+0

이 주셔서 감사합니다 값이 프로세스의 중간에 blank 충돌 여부 너의 시간. 내 질문에 썼듯이, 나는 이미 그것을 정확히하고있다. 그것은 로깅하지만 새로운 변수 값을 핸들러에 전달하지 않습니다 –

+0

Answer – LONG

+0

지금까지 문제를 이해하지 못했지만 적어도 SSIS에서 중단 점과 시계를 사용할 수 있음을 알았습니다. 고맙습니다. –