2017-03-21 2 views
0

J'ai récemment remarqué mes fichiers journaux NSB où grandir de manière significative en raison d'un avertissement que je n'ai jamais remarqué auparavant.NServiceBus avertissement à propos de TimeoutPersisterReceiver ne parvient pas à récupérer les délais d'attente du stockage de délai

2017-03-21 12: 17: 50,554 WARN NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver Échec de la récupération de délais d'attente de stockage de temporisation System.NullReferenceException: La référence d'objet à pas ne est definie une instance d'un objet. à NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver.Poll (Objet obj) dans C: \ BuildAgent \ work \ 3206e2123f54fce4 \ src \ NServiceBus.Core \ Timeout \ Hébergement \ Windows \ TimeoutPersisterReceiver.cs: ligne 90 à System.Threading .Tasks.Task.Execute() 21/03/2017 12: 17: 50,560 INFO NServiceBus.CircuitBreakers.RepeatedFailuresOverTimeCircuitBreaker le disjoncteur pour TimeoutStorageConnectivity est maintenant dans l'état armé

Cet avertissement apparaît toutes les secondes afin que vous puissiez Imaginez la taille de mes fichiers journaux.

J'ai remarqué cet avertissement lorsque j'ai ajusté le niveau de journalisation NServiceBus car plusieurs pannes inexpliquées se sont produites dans mon service. J'ai trouvé que cet avertissement fait planter mon service après un moment provoquant une exception FatalExecutionEngineError (voir la capture d'écran ci-dessous).

FatalExecutionEngineError screenshot

J'utilise NServiceBus 5.2.21.

Est-ce que quelqu'un peut m'aider à me débarrasser de cet avertissement?

+1

Il semble que vous ayez des problèmes de délai de connexion à la base de données de persistance? Cela conduira le disjoncteur à armer et à lancer et à éteindre le point de terminaison ... –

Répondre

0

J'ai résolu mon problème en utilisant une ancienne version de NServiceBus (5.2.14). Au-dessus de cette version, le problème apparaît et tout fonctionne correctement à partir de cette version. Selon mes tests, il semble que les plantages n'apparaissent pas lorsque la fonction de journalisation NServiceBus est désactivée. Comme je n'utilise pas les délais dans NServiceBus, tout fonctionne correctement lorsque les journaux sont désactivés. Il semble qu'un problème d'accès conccurent entre les threads se produit.

Peut-être que ce bogue n'a jamais été vu puisqu'il s'agit d'une ancienne version et que la version actuelle de NServiceBus est 6.x (7.x à venir), elle n'a jamais été corrigée.

0

Ceci est dû à un changement de rupture sur les contrats de timeout. Assurez-vous que non seulement vous utilisez la dernière version du Core, mais aussi pour la persistance.