Closed eric-bicknell closed 6 years ago
Yes, just in case it's not clear Eben, 8.0.13 was the update that you did on the old version for us to resolve the issue with messages getting reprocessed after a database access failure while polling.
Some of our services are using .NET 4.6.2, and we noticed that they still exhibit the problem if there is a database failure. ie. they replay the last message.
Eric determined that it was because the assembly in the nuget package for .NET 4.6.2 does not appear to have the fix. Not sure how this could happen, but it's as though the assemblies for the different .Net versions were built from different versions of the code?
I'll have a look and get back to you as soon as I can.
OK, it seems as though Shuttle.Esb 8.0.13 should not be listed. I have unlisted it so you could go back to 8.0.12. I have a suspicion I inadvertently built and released 8.0.13 since I deleted the release from GitHub but I never unlisted in NuGet (build and publish happen in the same release msbuild script).
However, the actual fix was done in Shuttle.Esb.Sql.Queue on release 9.0.1. Perhaps you can check whether the same issue is present there. The code really should be the same since the build script simply iterates through the frameworks over the same code so it would be super odd if there are differences.
I'll be on https://gitter.im/Shuttle/Lobby if you'd like to chat.
All our production services are built to the 8.0.13 DLL you have pulled from NuGet, which puts us in a rather uncomfortable position should we need to patch them.
From what I can see, 8.0.12 does not contain the fix Clayton outlined above, and does not include a 462 DLL anyway, so downgrading is not an option.
Since we were running against the 9.1.3 DLL, and it still presented the "reprocessing of old messages" behaviour Clayton mentioned, can you please advise which version we should be looking to upgrade to in order to resolve the issue?
Can you also advise as to whether we need to upgrade all services at the same time, or if it is safe to run some on the old 8.0.13 version, and some on whatever the new version is?
Hi Eric,
I'm terribly sorry. It appears as though I wasn't quite concentrating yesterday :(
The reason why the .NET 4.6.2 was 9.1.3 is that the .NET 4.6.2 builds came in later and when I did the 8.0.13 build that assembly was still in the output folder from the 9.1.3 build.
Anyhow, I have relisted 8.0.13 although one can always get an unlisted version by explicitly specifying the version.
I have also created a new 8.0.14 version that also includes a .NET 4.6.2 build although I don't think any of the other components at that time had a 4.6.2 build
Apologies for the misunderstanding. Let me know if it works out.
Did you guys manage to this sorted?
I am updating to 8.0.14 and getting some tests run against it today - have been out of the office for a couple of days
The version of the DLL contained in Shuttle.Esb.8.0.13\lib\net462-full is stamped with version information for 9.1.3, and does not appear to contain the fix for clearing RM and TM on receive processing.
Attached is the contents of the NuGet package.
Shuttle.Esb.8.0.13.zip