2014-05-23 2 views
1

문제점이있어서 그 이유가 확실하지 않습니다. 테스트 용으로 임의로 생성 된 이벤트를받는 InputAdapter가 있습니다.StreamInsight : CleanseInput이 이벤트를 삭제합니다.

다음 코드는 많은 이벤트를 삭제하는 쿼리를 만듭니다. 나는 실제로 그것을 지키고 싶다.

var atgs = new AdvanceTimeGenerationSettings(config.Input.EventCount, 
        TimeSpan.FromSeconds(config.Input.Delay), true); 
       var ats = new AdvanceTimeSettings(atgs, null, AdvanceTimePolicy.Adjust); 

       var dstream = CepStream<Dataclass>.Create("Data Input Stream", typeof (InAdapterFactory), 
        config.Input, EventShape.Point, ats); 



       Query output = dstream.ToQuery(myApplication, 
        "Sample unbounded query", 
        "Query with no output adapter", 
        EventShape.Point, 
        StreamEventOrder.FullyOrdered); 
       output.Start(); 

       var instream = output.ToStream<Dataclass>(); 

사람이의 DataInputStream 및 DatainputStream_CleanseInput 모든 이벤트의 다섯 번째 사이를 통과받을 이유는 아이디어가 있습니까? 다음 그림을 참조하십시오. 그걸 피할 ​​수있는 방법이 있습니까?

https://dl.dropboxusercontent.com/u/15482726/CleanseIssue.jpg

나는 어떤 도움에 매우 감사드립니다.

안부, 조

답변

1

는 그 이벤트로 인해 CTI 위반으로 감소 될 것입니다. AdvanceTimePolicy를 Adjust로 설정하는 동안 문제의 CTI 범위를 교차하는 간격 이벤트에만 적용됩니다. 즉, Interval 이벤트가 마지막 발행 CTI 이전 시작 시간 및 마지막 발행 CTI 이후 종료 시간을 갖는 경우 Interval 이벤트의 시작 시간 만 조정됩니다. 포인트 이벤트는 이며 항상가 삭제됩니다.

+0

이벤트가 CTI를 위반하는 이유는 무엇입니까? 어떻게 피할 수 있습니까? – ProggerJoe

+0

입력 어댑터를 보지 않고서는 말할 수 없습니다. 그것은 전적으로 이벤트의 시작 시간을 설정하는 방법에 달려 있습니다. 이벤트를 기록하면 CTI 위반으로 인해 어떤 이벤트가 삭제되는지 실제로 확인할 수 있습니다. Input 연산자에 나타나지만 InputAdapter_Cleanse에 "get"전에 떨어집니다. 디버거는 또한 얼마나 많은 이벤트가 삭제되는지에 대한 통계를 제공합니다. – DevBiker

+0

나는 그 문제를 해결했다. 나는 혼합 출력에 책임이있는 별도의 스레드에서 Inpud Adapter를 시작했다. 어쨌든 도움을 주셔서 감사합니다. – ProggerJoe