Particular.PlatformSample on ARM device

Hi there, I’m trying to get the Particular.PlatformSample working on my ARM-device but receiving the error below. Has anyone else encountered this before? Is the sample supported on ARM-devices?

I have ensured that Microsoft Visual C++ 2015 Redistributable Package or newer has been installed.

Thanks in advance for your help on this!

System.AggregateException

  • HResult=0x80131500*
  • Message=One or more errors occurred. (Unable to start the RavenDB Server*
    Error:
    Unhandled exception. Unhandled exception. System.TypeInitializationException: The type initializer for ‘Sparrow.Server.Platform.Pal’ threw an exception.
  • —> Sparrow.Utils.IncorrectDllException: librvnpal version might be invalid, missing or not usable on current platform. Initialization error could also be caused by missing ‘Microsoft Visual C++ 2015 Redistributable Package’ (or newer). It can be downloaded from Latest supported Visual C++ Redistributable downloads | Microsoft Learn. Arch: Arm64, OSDesc: Microsoft Windows 10.0.26100*
  • —> System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (0x8007000B)*
  • at System.Runtime.InteropServices.NativeLibrary.LoadLibraryByName(String libraryName, Assembly assembly, Nullable`1 searchPath, Boolean throwOnError)*
  • at Sparrow.Utils.DynamicNativeLibraryResolver.Resolver(String libraryName, Assembly assembly, Nullable`1 dllImportSearchPath) in /_/62001/src/Sparrow/Utils/DynamicNativeLibraryResolver.cs:line 70*
  • at System.Runtime.InteropServices.NativeLibrary.LoadLibraryCallbackStub(String libraryName, Assembly assembly, Boolean hasDllImportSearchPathFlags, UInt32 dllImportSearchPathFlags)*
  • at Sparrow.Server.Platform.Pal.rvn_get_pal_ver()*
  • at Sparrow.Server.Platform.Pal…cctor() in /_/62001/src/Sparrow.Server/Platform/Pal.cs:line 24*
  • — End of inner exception stack trace —*
  • at Sparrow.Server.Platform.Pal…cctor() in /_/62001/src/Sparrow.Server/Platform/Pal.cs:line 43*
  • — End of inner exception stack trace —*
  • at Sparrow.Server.Platform.Pal.rvn_get_pal_ver()*
  • at Raven.Server.Utils.Cli.RavenCli.GetInfoText() in /_/62001/src/Raven.Server/Utils/Cli/RavenCli.cs:line 590*
  • at Raven.Server.Program.Main(String args) in /_/62001/src/Raven.Server/Program.cs:line 146*

nevermind what I was saying, I had incorrect information.

If you want to see what the platform does without installing, an option is going to Performance insights for NServiceBus systems • Particular Software which will demonstrate the platform. But that video is on an older version of the platform, but it’ll still demonstrate most of its abilities.

@roel-charita,

To add to what Dennis said, you can run the Platform using containers and the LearningTransport, effectively achieving what the PlatformSample does, using a docker compose file like the one I use on my Apple Silicon. You’ll have to tweak the volume mappings, adjusting them to your needs. Note that running the platform using the LearningTransport is not a production-supported thing.

@roel-charita When you were trying a run a project that uses PlatformSample, you mentioned using an ARM device, but what OS were you using?

The error you’re seeing comes from the RavenDB server that we run as part of ServiceControl. RavenDB does support ARM, but only on Linux and macOS.

Based on the error you’re seeing, I suspect that you’re trying to use an ARM version of Windows. If that’s true, then unfortunately it won’t work until RavenDB supports ARM on Windows.

Okay thanks @Dennis, I will have a look at the video, but I want to really have an interactive local running instance. :slight_smile:

Hi @mauroservienti, alright thanks, this is probably a good direction to have it running locally. :slightly_smiling_face:

Hi @bording, it’s an ARM-device running Windows 11. If I understand correctly RavenDB is not supported for this combination so I will never (even with a classic installation) be able get this working on my device?

Unfortunately, until RavenDB itself starts supporting ARM on Windows, you are correct that no native Windows version of our Platform will work for you.

However, if your goal is to have some sort of version of our Platform running locally, we do have Linux-based containers that will work for you.

Take a look at PlatformContainerExamples/docker-compose at main · Particular/PlatformContainerExamples · GitHub for an example Docker Compose file that you should be able to use and customize.