2017-03-21 2 views
0

최근 NSB 로그 파일에주의를 기울 였기 때문에 경고 메시지가 나타났습니다. 17 : 라 참조 디부 오브제 n'est 싶어서 définie à : 50.554이 NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver가 System.NullReferenceException 타임 아웃 스토리지에서 시간 제한을 가져 오지 못했습니다 WARNTimeoutPersisterReceiver가 제한 시간 저장소에서 시간 초과를 가져 오지 못하는 것에 대한 NServiceBus 경고

2017년 3월 21일 (12) 인스턴스가없는 개체. à NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver.Poll (Object obj) C : \ BuildAgent \ work \ 3206e2123f54fce4 \ src \ NServiceBus.Core \ Timeout \ Hosting \ Windows \ TimeoutPersisterReceiver.cs : ligne 90 à System.Threading .Tasks.Task.Execute은() 2017년 3월 21일 12 : 17 : 50.560 정보 NServiceBus.CircuitBreakers.RepeatedFailuresOverTimeCircuitBreaker TimeoutStorageConnectivity의 회로 차단기가 무장 상태에서 지금

이 경고는 당신이 할 수 있도록 모든 초를 나타납니다 내 로그 파일의 크기를 상상해보십시오.

내 서비스에서 설명 할 수없는 몇 가지 충돌이 있었기 때문에 NServiceBus 로그 수준을 조정할 때이 경고가 나타났습니다. 이 경고로 인해 FatalExecutionEngineError 예외가 발생하면서 서비스가 중단되는 것을 발견했습니다 (아래 스크린 샷 참조).

FatalExecutionEngineError screenshot

나는 NServiceBus 5.2.21을 사용하고 있습니다.

누구든지이 경고를 없앨 수 있습니까?

+1

지속성 데이터베이스에 연결 시간 초과 문제가있는 것 같습니다. 그것은 회로 차단기로 연결되어 엔드 포인트를 시작하고 종료합니다. –

답변

0

이전 버전의 NServiceBus (5.2.14)를 사용하여 문제를 해결했습니다. 이 버전 위에는 문제가 나타나며이 버전 아래에서 모든 것이 잘 작동합니다.

내 테스트에 따르면 NServiceBus 로깅 기능을 사용하지 않으면 충돌이 발생하지 않는 것으로 보입니다. NServiceBus에서 시간 제한을 사용하지 않으므로 로그를 사용할 수 없으면 모든 것이 올바르게 작동합니다. 스레드 간의 conccurent 액세스 문제가 발생하는 것 같습니다.

아마도이 버그는 이전 버전이고 NServiceBus 현재 버전이 6.x (7.x)이므로 수정 된 적이 없었을 것입니다.

0

이것은 시간 초과 계약의 변경으로 인한 것입니다. 코어의 최신 버전뿐만 아니라 지속성을 사용하고 있는지 확인하십시오.

관련 문제