SQL Server/SSIS 강좌

WMI 이벤트 감시자 작업

SungWookKang 2015. 7. 16. 10:43
반응형

WMI 이벤트 감시자 작업

 

안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://blog.naver.com)

이번 시간에는 [WMI 이벤트 감시자 작업]에 대해서 알아 보도록 하겠습니다.

 

WMI 이벤트 감시자 작업은 시스템에서 발생하는 이벤트 정보를 인식하는 작업 입니다. WMI이벤트란 파일의 생성이나 삭제, 응용 프로그램 실행, 프로그램 설치, 서비스 종료 등과 같은 행위를 말합니다.

WMI 이벤트 감시자를 이용한 작업

지정된 폴더에 원하는 파일이 전송되는 경우 파일을 읽어서 테이블에 로딩하는 작업을 수행.

특정 폴더로 파일이 생성되면 자동으로 여러 대상으로 배포하는 작업을 수행

특정 서비스 또는 응용 프로그램이 종료될 때 사용자가 지정한 작업을 수행하도록 함.

 

이번 실습에서는 특정 폴더로 파일이 복사 되었을 때 이벤트를 감지하여 SSIS 작업을 실행하는 방법을 알아 보도록 하겠습니다.

 

 

[BIDS]를 실행하여 [Integration Services 프로젝트]를 실행 합니다.

 

 

[제어 흐름]탭에서 [WMI 이벤트 감시자 태스크]를 마우스를 이용하여 드래그 앤 드롭으로 끌어다 놓습니다.

 

 

[WMI 이벤트 감시자 태스크]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

 

[WMI 이벤트 감시자 태스크 편집기]창이 나타납니다.

[일반] 탭에서는 태스크의 이름과 설명을 설정 합니다.

 

 

[WMI 옵션]탭에서는 연결 관리자 및 옵션 등을 지정 합니다.

WMI 옵션

  • WmiConnection – WMI 연결을 지정.

 

 

  • WqlQuerySourceType – WMI 이벤트를 인식하기 위한 WQL 쿼리의 입력 형태를 지정. 직접 입력 또는 변수에 WQL 쿼리를 저장한 후 이 변수를 사용하도록 지정 할 수도 있으며 별도의 파일로 만든 후 이 파일을 사용하도록 지정할 수도 있습니다.

  • WqlQuerySource – 직접 입력으로 지정한 경우 WQL 쿼리를 입력.

SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA "CIM_DirectoryContainsFile" AND TargetInstance.GroupComponent = "Win32_Directory.Name=\"D:\\\\SSIS_TEST\""

 

 

 

 

  • ActionAtEvent – 이벤트가 발생 되었을 때 행할 수행 동작을 설정.
    • 이벤트 기록 – 단순히 이벤트가 발생된 것을 감지하고 AfterEvent 속성에 지정된 대로 진행.
    • 이벤트를 기록하고 SSIS 이벤트를 실행 – AfterEvent 속성에 지정된 대로 진행할 뿐만 아니라 이벤트 처리기에서 WMI 이벤트 발생 시 수행 되도록 설정한 이벤트 처리 작업을 실행. 즉 이벤트 처리기의 WMIEventWatcherEventOccurred 부분에 구성된 작업들이 수행.

 

 

 

 

  • AfterEvent – 이벤트가 발생 될 경우 작업 결과를 성공 또는 실패로 반환하고 작업을 종료 하거나 다시 감시하도록 설정. 이벤트를 다시 감시하도록 설정할 경우 아래에 있는 NumberOfEvents의 횟수만큼 반복하게 됨.
  • ActionAtTimeout – Timeout 속성에서 지정된 시간(초)이 지난 경우 작업 결과를 성공 또는 실패로 반환하고 작업을 종료하거나 다시 감시하도록 설정. 이벤트를 다시 감시하도록 설정한 경우에는 NumberOfEvents 의 횟수 만큼 반복.
  • NumberOfEvents – 이벤트를 다시 감시할 횟수 설정. 이 값을 0으로 설정되면 계속해서 감시하게 됨.
  • Timeout – 이벤트가 발생 할 때 까지 대기하는 시간. 값이 0으로 설정되면 이벤트가 발생 할 때까지 무한 대기

 

 

[제어 흐름]탭에서 [스크립트 태스크]를 끌어다 놓습니다.

 

아래 그림과 같이 코드를 입력 합니다.

 

 

편집이 완료 되었으면 패키지를 실행 합니다.

패키지를 실행하면 아래 그림과 같이 대기 상태로 진행 됩니다.

 

 

바탕화면의 텍스트 파일을 WQL에서 입력한 폴더의 위치로 복사해 보도록 하겠습니다.

 

 

이벤트가 감지 되는 순간 작업이 실행되며 나머지 패키지가 실행 됩니다.

 

이 작업을 응용하여 여러가지 이벤트 발생시점에 따라 다양한 작업을 실행 할 수 있을 듯 합니다.

 

반응형