Insert 트리거 시 외부 프로그램을 실행하도록 할 수 있을까요?

조회수 2093회

MSSQL Server 2012? 를 사용중이고, 여기에 맞게 개발된- 그리고 추가 개발의 여지가 없는 전용 공장제어 프로그램이 있습니다.

지금, 이 공장제어 프로그램이 MSSQL에 데이터를 꼬박꼬박 잘 쏴 주고 있는데,

인서트 트리거를 걸어서 다른 DB-InfluxDB 에 인서트 되는 값을 쏘게 만들고 싶습니다.

그러니까....

----여기서부터 맞는 발상을 하고 있는지 의심되는 구간----

기존의 값을 받던 테이블에 인서트 트리거를 걸어서, 외부 프로그램을 호출하고 싶습니다.

그 외부 프로그램은 지금 MSSQL이 받은 값들(한 변수 10여개)의 구조체를 자신의 특정 포트로 쏘는 소켓 정도를 구상하고 있습니다.

그 포트에는 그 구조체를 받아 InfluxDB에 쏘는 프로그램이 있습니다.

원래 MSSQL에 쏘는 프로그램이 InfluxDB에 얹으면 되는거 아니냐고 하실 수 있는데, 아직 그 단계까지 가지 못했습니다. ActiveX 못하겠습니다....

이거 저거 뒤져봤는데,

MSSQL의 작업에서 외부 프로그램을 실행하게 만들 수는 있는데, 이게 트리거에 연결되지는 않는 거 같습니다? 작업에 CmdExec로 무언가 얹기는 하는데, 이게 트리거는 아니니....

방법이 있을까요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    프로시저에서 MSXML2.XMLHTTP 을 이용해서 웹서비스를 호출할 수 있습니다.

    이벤트(트리거)시 프로시저를 호출하고 프로시저내에서 타시스템의 웹서비스를 호출할 수 있습니다.

    물론 이런경우 트랜잭션 처리는 안되니 양쪽 DB의 동기화가 문제될 수 있습니다.

    • 예..... 답변은 감사하지만, 사내 다른 고수분들께 이거 어떨까요 했다가 까였습니다. 저도 이게 이상하다는 느낌은 있었는데, 여지없이 그걸 지적하시더라고요.... 다른 방법을 알아봐야겠습니다. 광자 2018.4.19 17:58

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)