2014-11-18 4 views
1

FirebirdSql.Data.FirebirdClient ADO.NET 공급자 v4.5.2.0을 사용하는 .NET 4에서 Windows 서비스를 작성했습니다.파이어 버드 이벤트

서비스는 파이어 버드 Db가 게시 한 이벤트를 캡처하여 작업을 수행합니다.

내가 관련 이벤트를 구독하는 데 사용하는 코드는 다음과 같습니다

<!-- language: lang-cs --> 
public void SetFirebirdEventListeners() 
{ 
    string[] fbEvents = new string[] { "QueueUpdate", "DispensedSupplyUpdate", "QueueInsert", "DispensedSupplyInsert" }; 
    try 
    { 
     fbRemoteEvent = new FbRemoteEvent(fbConn); 
     fbRemoteEvent.AddEvents(fbEvents); 
     // Add callback to the Firebird events 
     fbRemoteEvent.RemoteEventCounts += new FbRemoteEventEventHandler(FbEventHandler); 
     // Queue events 
     fbRemoteEvent.QueueEvents(); 
     WriteEventToLog(); 
    } 
    catch (Exception ex) 
    { 
     log.Error("Error setting firebird event listeners. {0}Message:{1}Stacktrace:{2}", Environment.NewLine + Environment.NewLine, ex.Message + Environment.NewLine, ex.StackTrace); 
     throw; 
    } 
} 

파이어 숙박에 연결 한 서비스가 실행되고 엽니 다.

이것은 일정 기간 (일반적으로 몇 시간 동안) 정상적으로 작동하지만 서비스가 단순히 이벤트 수신을 중지하는 것처럼 보입니다. 예외는 발생하지 않습니다.

누구도 Firebird에서이 문제가 발생하여 원인을 찾았습니까? 나는 문서에서 안절부절 못합니다. 서비스가 더 이상 이벤트에 가입하지 않는다는 경고를받는 방법이 있습니까?

+0

최근 이벤트와 관련하여 버그가 수정되었지만 버전이 최신 버전입니다. http://tracker.firebirdsql.org/browse/DNET에서 버그 리포트를 제출하는 것이 좋습니다. 재현 가능한 테스트 케이스가 있다면 도움이 될 것입니다. –

답변

0

Firebird가 등록하고 이벤트를 알리는 방식에 경쟁 조건이있을 수 있습니다. 이 버그는 Firebird 2.5.8 및 Firebird 3.0.3에서 수정 될 것입니다. 자세한 내용은 CORE-5521을 참조하십시오.